å Googleãšã³ãžãã¢ã®ã¡ã³ã¿ãŒã«ããè¬çŸ©ãå ¬é ââããšã¿èªåè»ãå®è·µãããFlutterãç ä¿®ã®å 容ãšã¯ïŒ
Googleãéçºããã¢ãã€ã«ã¢ããªçšã®ãã¬ãŒã ã¯ãŒã¯ã§ãããSDKïŒSoftware Development KitïŒã§ããFlutterãããšã¿èªåè»ã§ã¯ãèªåè»ã®ã³ãã¯ãããã®UX/UIèšèšã»éçºãããŒã®äžéšã§ãåããŒã«ãæ¡çšããŠãããä»åã®ãTOYOTA Developers Nightãã§ã¯ãGoogleãYouTubeã§æŽ»èºããè¬åž«ãæããŠå®æœããŠããFlutterã®ç ä¿®ããã°ã©ã ãææã玹ä»ãããã¢ãŒã«ã€ãåç»
â ç»å£è ãããã£ãŒã«

颿²¢ çåŸ æ°
ããšã¿èªåè»æ ªåŒäŒç€Ÿ
ã³ãã¯ãã£ããã«ã³ãã㌠ã³ãã¯ãã£ããå
è¡éçºéš
ããžã¿ã«ã³ã¯ããããœããéçºå®€ãã°ã«ãŒãé·
åå€å±å€§åŠå€§åŠé¢ãä¿®äºåŸã2007幎ã«ããšã¿ãžå
¥ç€ŸãLexus LFAãã¯ãããåçš®è»äž¡ã®é»åãã©ãããã©ãŒã éçºããTOYOTA LQã®AIãšãŒãžã§ã³ãéçºãžåŸäºã2020幎ããçŸè·ã

Tim Mansfieldæ°
italist.inc CTO
ä»è€æ°ç€Ÿã®æè¡åœ¹å¡å
Ό
ç±³åœYouTubeãGoogleã§ã®éçºãçµãŠãã·ãªã³ã³ãã¬ãŒã®ã¹ã¿ãŒãã¢ããã§ã®æ°å€ãã®ãããã¯ãéçºããã¡ãçŸåšè€æ°ã®äŒæ¥ã®æè¡é¡§åãCTOãå
Œä»»ããŸããã¢ã¡ãªã«ã®ãšã³ãžãã¢ããŒããã£ã³ãäºæ¥ã®ã«ãªãã¥ã©ã 責任è
ãšããŠã®çµéšãæã¡ãçŸåšã¯ãTECH PLAY ACADEMYã«ãŠæ¥æ¬ã®éçºçµç¹ã®è²æäºæ¥ã«ãããã«ãªãã¥ã©ã éçºã»ã¡ã³ã¿ãŒçã宿œã
ã³ãã¯ãããã®UX/UIããªãããã¯ã€ãã¯ã«éçºããããã«Flutterãå°å ¥
ãŸãã¯ãã³ãã¯ãããã®UX/UIéçº ãããžã§ã¯ãã®ãªãŒããŒãåãã颿²¢çåŸæ°ãç»å£ãéçºã«ããããã€ã³ãããæ¬¡ã®ããã«èª¬æããã
ãâæ°ããäœéšäŸ¡å€âãã©ãã ãã客æ§ã«æäŸã§ããããç§ãã¡ãã³ãã¯ãããã®UX/UIéçºã«çœ®ããŠãæãéãã眮ããŠãããã€ã³ãã§ãããããŠå®çŸã«ã¯ããŠãŒã¶ãŒãšåãåããUX/UIã®æ¹åãç¶ããŠããå¿ èŠããããŸããäžã§ãUIãœãããŠã§ã¢é åïŒã¹ã©ã€ãç¹ç·å²ã¿ïŒã¯ãç¹ã«ã¯ã€ãã¯ãªéçºãšæ¹åãå¿ èŠã ãšèããŠããŸããïŒé¢æ²¢æ°ïŒ

Flutterãå°å ¥ããã®ã¯ããŸãã«ãã®ãããªéçºææ³ãå®çŸã§ãããã¬ãŒã ã¯ãŒã¯ã§ããããã«ã»ããªããªããå ·äœçã«ã次ã®ããã«Flutterã®é åã説æããã
ã髿§èœãªã¬ã³ããªã³ã°ãšã³ãžã³ã§ããããšãè»å®€å ã§ããã¢ãã€ã«ãšåæ§ã®ã¿ããã¹ã¯ãªãŒã³ã®UX/UIãæäŸã§ããããšããããŠãããŒã«ãªãã³ã«éçºç°å¢ãåªããŠããããšã§ããïŒé¢æ²¢æ°ïŒ
ã€ãŸããFlutterã§ã³ãã¯ãããã®éçºãé²ããã°ãã¹ããã®ãããªãªãããªUX/UIããã¹ããŒãã£ãŒã«éçºã§ãããšããããšã ã
ãšãããå°å ¥ãé²ãããšãæ°ãããã¬ãŒã ã¯ãŒã¯ãšããããšããããFlutterãæ±ããUIãšã³ãžãã¢ãè¶³ããªããšãã課é¡ã«ã¶ã¡åœãããããã§ãFlutterã®ã¹ãã«ãæã€ãšã³ãžãã¢ããã£ãªã¢æ¡çšãããšãšãã«ã瀟å ã§è²æããããšãèšç»ããã®ç ä¿®ããã°ã©ã ããæ¬¡ã«ãã£ã æ°ã玹ä»ããå 容ã ã
ããããã¹ããŒã¯ãã«ããŒã«â幞ãâãæäŸããããšãç ä¿®ã®ããã·ã§ã³
GoogleãYouTubeãªã©ã®å€§æã¹ã¿ãŒãã¢ããã§ãšã³ãžãã¢ãšããŠæŽ»èºããçŸåšã¯ããšã¿èªåè»ã«éãããã¢ããã€ã¶ãŒãCTOãšããŠãå€ãã®äŒæ¥ã§æŽ»èºããŠãããã£ã æ°ã
ãã£ã æ°ã¯ãããšã¿èªåè»ãäœãæ±ããŠããã®ãããæ€èšãã以äžã®3ã€ã®å 容ããç ä¿®ãéããŠèº«ã«ã€ããããããããã°ã©ã ãçµãã ãšããã
ãç ä¿®ã§èº«ã«ã€ããå
容ã
ã» Flutterã®äœ¿ãæ¹
ã»ä»ã®ããŒã«
ã»ãªãåŠã¶ã®ãïŒåŠç¿ãã®ãã®ãåŠç¿ããïŒ
3ã€ç®ã®ããªãåŠã¶ã®ããã«ã€ããŠããã£ã æ°ã¯ããæ·±ã説æããŠãã£ãã
ã人ã ã幞ãã«ããããšããç ä¿®ã®ç®çã§ãããããšã¿ãæ±ããŠããããšã§ãã人ãšãããœãããŠã§ã¢ãã¡ã«çãªããŒããŠã§ã¢ãããã«ã¯ãµãã©ã€ã€ãŒãã顧客ã瀟äŒãã³ãã¥ãã±ãŒã·ã§ã³ãªã©ãããšã¿ãšé¢ããããããã¹ããŒã¯ãã«ããŒãèåããããšã§ãããšã¿ãŠã§ã€ãšããå¯äžç¡äºã®äŸ¡å€ãçã¿åºãããã®çµæãå€ãã®äººã幞ãã«ãªããã€ãŸãã幞ããéç£ããããšãããã¬ãŒãã³ã°ã®ããã·ã§ã³ã§ãããšæ±ºå®ã¥ããããŸãããïŒãã£ã æ°ïŒ

ããšã¿ãŠã§ã€ãšã¯ãããããäŒæ¥ç念ã§ãããããšã¿ã§ã¯ã°ããŒãã«ã¡ã³ããŒãå ±æãã¹ã䟡å€èгãåãææ³ãšããŠå®çŸ©ããŠããã
*ããšã¿ãŠã§ã€2020
https://global.toyota/jp/company/vision-and-philosophy/toyotaway_code-of-conduct/
幞ãã¯åœç¶ãä»åç ä¿®ã«èšããœãããŠã§ã¢ãšã³ãžãã¢ã«ã該åœãããåå 容ã«ã€ããŠãããã£ã æ°ã¯æ¬¡ã®ããã«èšåããã
ããšã³ãžãã¢ã«ãšã£ãŠã¯ãæ°ããæè¡ããã©ãããã©ãŒã ã䜿ããããšããã®ãããªæè¡ã¹ã¿ãã¯ãæ¡çšããŠããäŒç€Ÿã«å€ããããšãã幞ãã§ãããã®ãããªèгç¹ããããFlutterãæŽ»çšããããšã¿ã®åãçµã¿ã¯åèŽããŸããïŒãã£ã æ°ïŒ
Flutter5ã€ã®ç¹åŸŽ
ç¶ããŠãã£ã æ°ã¯ãFlutterã®ç¹åŸŽã解説ããŸãã¯å€§ãŸããªæŠèŠãè¿°ã¹ãåŸã倧ãã5ã€ã®ãã€ã³ãã«ã€ããŠãå®éã®éçºç»é¢ãªã©ã亀ããªãã詳ãã玹ä»ããŠãã£ãã
ãFlutterãå©çšããã°ãã²ãŒã ãäžåç£ã¢ããªã§èŠããããããªãè€éã§ãŠããŒã¯ãª3次å ãã¶ã€ã³ããäœã¹ãã¬ã¹ãã€åæ»ã»å®æçã«ãéçºããããšãã§ããŸããæ°æ©èœã®éçºãªãã³ã«ãªãªãŒã¹ãããŠããç¶ç¶çã«è¡ããŸãããã®çµæãå ã®å¹žããå®çŸããŸããããšãã°ãFlutterãå°å ¥ããããšã§ãAndroidãiOSã®ã¢ããªã®æ°æ©èœã®éçºæéãã1ïœ2é±éæžã£ããšã®ææãå ±åãããŠããŸããã€ãŸãããšã³ãžãã¢ã®ã¯ãŒã¯ã©ã€ããã©ã³ã¹ã«ãããŠãã幞ããå®çŸããSDKãšèšããŸããïŒãã£ã æ°ïŒ
ã»ãã«ããã©ãããã©ãŒã
iOSãAndroidãWebãWindowsãMacãLinuxãªã©ãç°ãªã仿§ã®ãã©ãããã©ãŒã ã«å¯ŸããŠãå
šã³ãŒãã®ãã¡90ïŒ
ã«ãããŠã¯ãã²ãšã€ã®ã³ãŒãããŒã¹ã倿Žããããã°ããŸãã«ãã«ãã«ããã¹ãŠã®ãã©ãããã©ãŒã ã«å¯Ÿå¿ã§ããã³ãŒãã«æŽæ°ãããã
ã»å¹ççãªã¬ã³ããªã³ã°ãšã³ãžã³
Flutterã¯çŽæ¥GPUãšããåãããèšèšã®ãããã²ãŒã ã¢ããªã«æèŒãããŠãããšã³ãžã³ã®ãããªæèŠã§ãããŒã¿ãé«éã«ã¬ã³ããªã³ã°ãããŠãããå
·äœçã«ç®æããŠããFPSïŒãã¬ãŒã ã¬ãŒãïŒã¯60以äžããã¬ãçªçµãªã©ã¯çŽ30FPSã§ãããäžç¬ã®å€æãæ±ããããã²ãŒã ã§ã60FPSããã²ãŒã ãšã³ãžã³ã®ãããªæèŠããšãã£ã æ°ã¯èª¬æããã
ã»ãŸããŸã倧ãããªãWidgetã©ã€ãã©ãªãŒ
ããããèŠãç®ããŸãã«UIã®ç¹åŸŽãšããããWidgetãFlutterã§ããã°ããã®WidgetããŒãããŒã¹ã§æ§ç¯ããããšãªããæ°å€ãããã©ã€ãã©ãªãŒããéžãã§å©çšããããšãã§ãããæ°ãèšå€§ã§ãæ¡åŒµããããããšãã£ã æ°ã¯èª¬æãå®éã«å
¬åŒãµã€ãã®ã©ã€ãã©ãªãŒã玹ä»ããããªãFlutterã§ã¯ãèŠãç®ã ãã§ãªããããã¯ã®äžŠã¹æ¹ãç»é¢ã«æšç§»ã«ã€ããŠãWidgetãšåŒãã§ããããEverything is a Widgetããšå®çŸ©ãããŠããã

* å®éã®ã©ã€ãã©ãªãŒïŒhttps://api.flutter.dev/flutter/widgets/widgets-library.html
ã»ããããªããŒã
ã³ãŒã倿Žããéãéçºè
ãæãåããïŒãªããŒãïŒããšãªããFlutterã§ããã°èªåã§ãªããŒããã€ãŸãããããªããŒãããŠãããã
ã»ãã€ãã£ããã©ãããã©ãŒã ã¢ã¯ã»ã¹
å
ã«ç޹ä»ãã90ïŒ
ã®ããŒã¹ã³ãŒã以å€ãæ®ãã®10ïŒ
ã®ã³ãŒãã«ã€ããŠã¯ãããããã®ãã©ãããã©ãŒã ã«åãããããã¡ã§èšè¿°ããå¿
èŠãããããããåäœæ¥ã«ãããŠããFlutterã§ã¯JavaScriptçéã®èšèªã倿Žããéã«äœ¿ãããŒã¿äº€æãã©ãŒãããJsonãšäŒŒããããªæ©èœãæããŠãããåãã€ãã£ãã¬ãã«ã®èšèªã«ç°¡åã«å€æã§ããã
ãèªç¥ã»è² è·ããã¡ã¿çãã¢ãã«åããããšã§è§£æ±ºããŠãã
ç¶ããŠãã£ã æ°ã¯ãç ä¿®å 容ã®è©³çްã«ã€ããŠãšã³ãžãã¢ç®ç·ã§ç޹ä»ãããšã¿èªåè»ããªãç ä¿®ãåããŠãæè¡ã身ã«ã€ããå¿ èŠãããã®ãããã®è§£ãèããåèãšãªãæžç±ãšå ±ã«ç޹ä»ããã
ãFlutterã®æè¡ã身ã«ã€ãããšã®ãŽãŒã«ããéç®ããæ¥ã ã®ç ä¿®ã¹ã±ãžã¥ãŒã«ãçµã¿ç«ãŠãŠããã®ãäžè¬çãªæèã§ãããããã ãã®åã«ãèªåãç ä¿®ããç®çãçŸåšã®ç«ã¡äœçœ®ãã¹ãã«ã¬ãã«ãªã©ãæç¢ºã«ããŠããããšã倧åã§ããïŒãã£ã æ°ïŒ

æžç±ã®ãªã³ã¯ïŒhttps://www.amazon.co.jp/dp/B07YY2WV6K/
ããã«ããã®æèãæç¢ºã«ããéã®ãã€ã³ããšãªãããŒã¯ãŒãã2ã€æããããèªç¥ããšãè² è·ãã§ããã
人éã®æææ±ºå®ã¯ééããçãããããã®ãã客芳çãªã¡ã¿èªç¥ã§èããæ¹ãå¹ççã ãšãããã£ã æ°ãããã§ããããå®è£ ã«å ¥ãã®ã§ã¯ãªããäœã®ããã«ã³ãŒããæžããŠããã®ããåžžã«ã¡ã¿çãäžã®éå±€ã客芳çèŠç¹ã§æããå¿ èŠãããããšã匷調ããããããŠãã£ã æ°ã¯ããã§ããã¡ã¿èªç¥ã®æèãã¹ãã«ãé«ããæžç±ã玹ä»ããã

æžç±ã®ãªã³ã¯ïŒhttps://www.amazon.co.jp/dp/B00555X8OA/
è² è·ã«ã€ããŠã¯ããcognitive loadïŒèªç¥çè² è·ïŒããintrinsic load(æ¬è³ªçãªè² è·)ããextraneous loadïŒèª²é¡å€åšæ§è² è·ïŒããgermaneïŒåŠç¿é¢é£è² è·ïŒããªã©ã®ã¿ã€ãããããããšãã°èªç¥çè² è·ã¯ãèªãèãããèšæ¶ããã倿ããéã«çããè² è·ã§ãããåŠç¿é¢é£è² è·ã¯ãé ã®äžã§ã¹ã¯ãªãããæããããªäœæ¥ã®éã«çããè² è·ã§ãããã
ãã®ãããªæ¥ã ã®æ¥åãçæŽ»ã§çããè² è·ãã¡ã³ã¿ã«ã®æ©ã¿ã客芳çã«ã¢ãã«åããããšã§ã解決ã«å°ããŠããããšãã§ãããšããã£ã æ°ãå ·äœçã«ã¯ãããã°ãªã©ã«ã©ã®ãããªæ©ã¿ãããã解決ãããã®ããæžãåºããŠããããšãªã©ã ã
ãããšãã°ããããŸã§äžå¯§ãªã³ãŒãã¬ãã¥ãŒãåããããšããªãã®ã§ãå¯èªæ§ã«èªä¿¡ããªããšã®äžå®ããã£ããšããŸããç ä¿®ãåããããšã§ããã åãã ãã®ã³ãŒãã£ã³ã°ã¯ãããããšãã£ã解決ãç®æãããã®ãããªæ©ã¿ã解決çã®äž¡æ¹ãããã°ãªã©ã«æžãåºããŸããïŒãã£ã æ°ïŒ
ãããªãŒãããã·ãŒã±ã³ã¹å³ããé ã®äžã§å¯èŠåããªããèšèšãé²ãã
ç ä¿®ã®æçµãããŒã§ã¯ã700以äžã®ããã¢ããªãåãããããžã§ã¯ãïŒã¿ã¹ã¯ïŒãçšæãããŠãããšããããã ãããã«è³ããŸã§ã®æéã¯æ±ºãŸã£ãã·ã©ãã¹ã§é²ããã®ã§ã¯ãªããåå è ã®èå³ãããã©ãŒãã³ã¹ãå å³ããªãããå Žåã«ãã£ãŠã¯æ¯æ¥ãã¥ãŒãã³ã°ããã®ããã£ã æ°ã®ç ä¿®ã¹ã¿ã€ã«ã ããããããã¥ãŒãã³ã°ã¯ãã£ã æ°ã ãã§ãªããã¡ã³ããŒãšãè°è«ãéããäžã§è¡ãããã
ãç ä¿®ã«ãããŠã¯ãã»ã«ãããªãã³ãèªåèªèº«ã§åŠãã§ããå§¿å¢ã倧äºã§ããäžæ¹ã§ãå ±ã«åŠã¶ããŒã ã¡ã³ããŒã«å°ãããšãå ±æã»çžè«ããããšã§ãçµæãšããŠèª²é¡è§£æ±ºã«ã€ãªããããšãå€ãã§ãã仲éããããšãå€ç¬ãªããªãã³ã«ããªããªãããã§ããïŒãã£ã æ°ïŒ
èšèšææ³ã«ã€ããŠã¯å ã«ç޹ä»ãããšãããããªãŒæ§é ãåžžã«é ã®äžã§å¯èŠåããªãããäœãèµ·ããŠããã®ããè¡ãããŠããã®ãããã£ããææ¡ããã®äžã§ã芪ã¯ã©ã¹ãå°å±ã¯ã©ã¹ãšããªãŒæ§é ãäœã£ãŠããããšã倧äºã ãšãã£ã æ°ãã·ãŒã±ã³ã¹å³é¢ãæžãåºãããšã倧äºã ãšä»ãå ããã

ãã©ããã¯ãªãã¯ãããã®ããã¡ã¢ãªäžã®ç®¡çãç¶æ ã¯ã©ããªã£ãŠããã®ãããŠã£ãžã§ããããšã¬ã¡ã³ããã¬ã³ããªã³ã°ãªã©ãåããªãŒã®ååšãã€ã¡ãŒãžããªããèšèšããŠãããŸããã€ãŸãããªããžã§ã¯ãæåãéèŠã§ãããåææ³ã§èšèšãé²ããããšã§ãå¹ççã§ããè¯ãUIãäœãããšãã§ããŸããïŒãã£ã æ°ïŒ
æ £ããªããã¡ã¯æžæãããšãããããåŸã ã«æ £ããŠãããšãã£ã æ°ããŸãæ©ãã§ãã»ã«ãããªãã³ã§è§£æ±ºããªãéã«ã¯ãå ã«ç޹ä»ãããšãããã¡ã³ããŒãšã³ãã¥ãã±ãŒã·ã§ã³ããããšã§ã解決çãèŠã€ããããšãå°ãªããªããšè£è¶³ããã
ããã²ãšã€ããã£ã æ°ãèšèšææ³ã§ãã€ã³ããšããŠæããã®ããasynchronous processingãéåæåŠçã§ããããçŸå®ã®ãã®ã¯éåæã ããããšãã£ã æ°ã¯èª¬æããæéãå¹çãã䜿ãéã«çšãããããã¬ãŒãºã1ç§1åãã¯æãããšããšç¬ããªãã玹ä»ããã
BLoCãã¿ãŒã³ãClean Architectureã«ã€ããŠã®è§£èª¬
Flutterã«ãããç¶æ ç®¡çææ³ã®1ã€ãUIããããžãã¹ããžãã¯ãåé¢ããã³ã³ããŒãã³ãåäœã§ç®¡çããããããããã®BloCïŒBusiness Logic ComponentïŒãã¿ãŒã³ã«ã€ããŠã解説ããã
ãBLoCãã¿ãŒã³ã¯Androidã®éçºçŸå Žã§æµè¡ã£ãŠããææ³ã§ãFlutterã§ããããå©çšãããŸããReactãçšããéçºã§ã䌌ããããªä»çµã¿ããããåãã¿ãŒã³ã䜿ãããšã§ãç¶æ 管çãçŸãããªããŸããïŒãã£ã æ°ïŒ
ãã£ã æ°ã¯å®éã«ç ä¿®å ã§BLoCãã¿ãŒã³ã䜿ã£ãŠããæ§åã玹ä»ããã

ããã²ãšã€ãç ä¿®ãçµãŠFlutterã®æŽ»çšããªããžã§ã¯ãæåãBLoCãã¿ãŒã³ã®æŽ»çšãªã©ãåé 説æããããã«ãä»ã®ããŒã«ã®ã¹ãã«ãã¢ãããããšã³ãžãã¢ã«ãããã«èº«ã«ã€ããŠãããããèšèšææ³ã玹ä»ããããClean Architectureãã§ããã

æžç±ã®ãªã³ã¯ïŒhttps://www.amazon.co.jp/dp/4048930656/
ãã£ã æ°ã¯ãåèšèšæŠå¿µã®æ ¹æ¬ãšãªãæžç±ãªãã³ã«ã€ã©ã¹ãã玹ä»ãããšå ±ã«ãããã§ãå®éã®éçºç»é¢ãã³ãŒãäžã§ãåææ³ã®éèŠãªæŠå¿µã§ããåçš®ãªããžã§ã¯ãã®ã¬ã€ã€ãŒãªã©ã玹ä»ããããã¯ã¯ãŸã ãŸã ãããšèžãŸããäžã§ã次ã®ãããªã¡ãã»ãŒãžãªãã³ã«ãç ä¿®ã®æ§åããŸãšããåç»ãæµããã»ãã·ã§ã³ãç· ããã

ã1ã€ã®åŸæåéã ããçªåºããŠããã®ã§ã¯ãªããä»ã®æè¡ãããŒã«ã䜿ãããããªãVã·ã§ã€ããšã³ãžãã¢ã«ãªã£ãŠã»ãããïŒãã£ã æ°ïŒ
ç ä¿®åè¬è 3åã«ãããµãããããQïŒAã玹ä»
ãã£ã æ°ã®ç ä¿®ã¯çŸåšãç¶ããŠããã忥çã¯çŽ20åããã£ã æ°ã«åŠãã Flutterã¹ãã«ã¯ãã¡ãããæ ¹æ¬ã®éçºèšèšææ³ãªã©ãæèããªãããçŸå Žã§æŽ»èºäžã ãã»ãã·ã§ã³ã®åŸåã§ã¯ããããªåæ¥çã®3åãç»å Žãç ä¿®ã®æ§åãèŠåŽãåŠã³ãªã©ãççŽã«ç޹ä»ãããšå ±ã«ãã€ãã³ãåå è ããã®åãã«çããŠãã£ãããã®å 容ã玹ä»ããã

æ¹ããŠããªããžã§ã¯ãæåãåºç€ããåŠã¶ããšãã§ãã
ââ忥ç3åã®ããã°ã©ãã³ã°ã¹ãã«ãå«ãããã£ãªã¢ã«ã€ããŠ
åå¶ïŒæ°åã§2019幎床ã«å ¥ç€ŸããŸãããå ¥ç€ŸåŸã¯ãMIRAIãã®éçºã«åŸäºãä»å¹Žã®1æããFlutterããŒã ã«æå±ããŠããŸããå€§åŠæä»£ã«3幎ã»ã©FORTRANãç ç©¶ã§äœ¿ã£ãŠããŸããã
å°æ± ïŒ2019幎床ã«å ¥ç€Ÿããã·ãŒããã·ãŒããã«ããšãã£ãå è£ èšèšæ¥åã«åŸäºããåŸãæšå¹Ž10æã«åç ä¿®ãåããŸããã倧åŠã®å°æ»ãæ å ±å·¥åŠã ã£ãããšããããCèšèªãšPythonã䜿ã£ãããšããããŸããã
è°·çïŒ2人ãšåãã2019å¹Žå ¥ç€Ÿã§ããå·¥å Žããã¬ã¹çç£ã«é¢ããæè¡æ¥åã«åŸäºããŠããŸããã倧åŠé¢æä»£ã«æ°å€èšç®ã§C++ãè§Šã£ãŠããçšåºŠã§ãããã³ããšã³ãã®çµéšã¯ãããŸããã§ããã
ââç ä¿®ãåããŠå°è±¡ã«æ®ã£ãããšãåŸãããšã¯ïŒ
è°·çïŒããŒã éçºã«å¿ èŠãªé¢šåãæåããããšã¿èªåè»ã«ã¯æ ¹ä»ããŠãããšæããŸãããåŠçæä»£ã«C++ã«è§ŠããŠã¯ããŸããããæ¹ããŠãã£ã ããã®ç ä¿®ãåããããšã§ããœãããŠã§ã¢éçºå šè¬ã®åºç€ç¥èãæ·±ãåŠã¶ããšãã§ããŸããããã®çµæãèå³ãå¢ããç«¶æããã°ã©ãã³ã°ã®AtCoderã«ææŠãããªã©ãããã°ã©ãã³ã°ãç§ç掻ã«ãå ¥ã£ãŠããŠããŸãã
åå¶ïŒãœãããŠã§ã¢ã®èšèšææ³ãå匷ã§ããããšã倧ããã§ããç¹ã«ãClean Architectureã®å 容ãå°è±¡ã«æ®ã£ãŠããŸãããªããžã§ã¯ãæåãªã©ããœãããŠã§ã¢éçºã®åºç€ããæããŠããã£ãããšã§ãããœã³ã³ã®åäœåçãªã©ãç¥ãããšãã§ããŸããã
å°æ± ïŒå€§èŠæš¡çµç¹ã§éçºãæ ãã®ã«å¿ èŠãªç¥èãåŸãããããšãããŸã倧ããã§ãã2人ãšåãããèšèšææ³ããªããžã§ã¯ãæåã«ã€ããŠåŠã¹ãããšã§ãç§ãAtCoderã«ææŠããããšèããŠããŸãã
ââClean Architectureã®ã©ããå ·äœçã«åèã«ãªã£ãã®ã
åå¶ïŒ2ç¹ãããŸãã1ã€ç®ã¯Dependency InjectionãäŸåæ§ã®æ³šå ¥ãšããèãæ¹ãæããŠããã£ãããšã§ããå ·äœçã«ã¯å¯ãªçµåãé¿ããŠãããããã®è£éå¶ãé«ããæŠå¿µã§ããå®éãFlutterã®ç ä¿®ã§ã¯ãGraphQLãªã©ã䜿ããå€ããã®ãªãœãŒã¹ã§ä¿¡å·ãããããŸãããã®åä¿¡æãã¢ããªåŽã«ããŒã¿ä¿¡å·åãåãã®èšè¿°ãçŽæ¥ãããå€åŽããåãåããããªåœ¢ã«ããã¹ãã ãšåŠã³ãŸããã
ããã²ãšã€ã¯èª¬æããã£ãBLoCãã¿ãŒã³ãUIãšããžãã¯ã®éšåãåé¢ããŠæ±ãæŠå¿µã§ããç¶æ 管çã¯ãã¹ãŠããžãã¹ããžãã¯ã«å®è£ ãããUIã¯ã§ããã ãç¶æ ãæããªããã¹ããŒãã¬ã¹å®è£ ãããšåŠã³ãŸããã
å®éãFlutterã®ç ä¿®ååã§ã¯ãUIãšããžãã¹ããžãã¯äž¡æ¹ãäžç·ããã«ãã¹ããŒããã«ãªãŠã£ãžã§ããã䜿ã£ãŠããŸããããç ä¿®åŸåã§ã¯ã¢ããªã±ãŒã·ã§ã³ãè€éã«ãªãããã®ãšãã«ç¶æ 管çããŸãšããŠã§ããBLoCãã¿ãŒã³ã䜿ãããšã§ãç¶æ 管çã®ãã€ã³ããå匷ããããšãã§ããŸããã
ââåŠãã ããšããçŸåšã®æ¥åã«ã©ã®ããã«åœ¹ç«ã£ãŠããã
åå¶ïŒäŸåæ§ã®æ³šå ¥ã«é¢ããŠã¯ãå®éã«éçºããŠããã¢ããªã§ã¯ãå€åŽããä¿¡å·ãããã£ãŠããããšãå€ããããŸãããã¿æã¡ã®ãã¹ããã¢ããªãä»®æ³çã«äœããã³ã³ãããŒã©ãŒã§åãããšããªã©ã§ããããããä¿¡å·ã®äŸçµŠä¿¡å·ãç°ãªãéãã¢ããªãäžã€ã²ãšã€å€æŽãããšå€§å€ã§ããããã§ã€ã³ã¿ãŒãã§ã€ã¹ãæãã§å®è£ ãå€ããããŒã¿ãäŸçµŠããããã«ããŠããŸãã
BLoCãã¿ãŒã³ã«é¢ããŠã¯ãçŸãããžã§ã¯ãã«ãããŠãã¹ããŒããã«ãšBLoCãã¿ãŒã³ãæ··åšããŠããç¶æ³ã®ãããåæ§æããæ¥åãé²ããŠããŸãããã®æ°æ§æã«ãããŠããŸãã«BLoCãã¿ãŒã³ãUIãšããžãã¹ããžãã¯ã1察1ã§å¯Ÿå¿ããèšèšãšããŠããŸãã
ââã客æ§ã®ã¡ãªããã«ã¯ã©ãã€ãªããã®ã
åå¶ïŒèªåè»ã¯å®å šæ§ã®æ ä¿ãªã©ãé«ãåè³ªãæ±ããããŠããŸããUIãšããžãã¹ããžãã¯ãåé¢ãããªã©ã®ãœãããŠã§ã¢ã¢ããããŒããè¡ãããšã§ãçµæãšããŠãœãããŠã§ã¢ã®å質åäžã«ã€ãªãããšèããŠããŸãã
ââå€§èŠæš¡çµç¹ã§éçºãæ ãã®ã«å¿ èŠãªç¥èãšã¯
å°æ± ïŒãã£ã ããã玹ä»ããããã«ãã³ãŒãã£ã³ã°ã®å¿åŸãä»ã®äººãèŠãŠãèªã¿ãããã³ãŒãã£ã³ã°ãGitHubã«ããã³ãŒã管çãªã©ãçµç¹ãããŒã ã§éçºãè¡ãéã«å¿ èŠãªç¥èãå æ¬çã«å€ãåŠã¶ããšãã§ããŸããã
ââç ä¿®ã¯çŸåšã®éçºã«ã©ã掻ããŠããã
å°æ± ïŒç§ãå«ããçµç¹éçºæªçµéšè ã®åè¬ã倧åã§ãããããããåºç€ããã¢ããªéçºãŸã§ã700以äžã®åé¡ãè§£ããªã©6é±éã®éã«ãæ¿å¯ãªå 容ãåè¬ã§ãããããå®è·µçãã€ã¹ããŒãã£ãŒã«ã¹ãã«ã身ã«ã€ããããšãã§ããŸããããã®çµæããã¶ã€ããŒãçšæããç»é¢ãã¢ãã¡ãŒã·ã§ã³ããå¿ å®ã«ã³ãŒãã£ã³ã°ããããšãã§ããŠããŸãã
ââçŸåšæ±ããŠãã課é¡ã¯ããã
å°æ± ïŒãã質ã®é«ãã³ãŒãã£ã³ã°ãã§ããã¡ã³ããŒã¯éãããŠããã®ã§ãã³ãŒãã£ã³ã°ã¹ãã«ã¯ããã«ã¬ãã«ã¢ããããããšèããŠããŸããããã²ãšã€ãè€æ°äººã§äžŠè¡ããŠäœæ¥ãè¡ãéããäºãã圱é¿ãåãããšããããããäŸåæ§ã®å°ãªãèšèšãæèããããšã§ãéçºã¹ããŒããããã«é«ããããšèããŠããŸãã
ââã³ãŒãã£ã³ã°ã¹ãã«ä»¥å€ãã¬ãã«ã¢ããããããšèããŠããããšã¯ããã
å°æ± ïŒ2ç¹èããŠããŸãã1ã€ç®ã¯ããã¯ãšã³ããšã®ããåããèããäžã§ã®èšèšã¹ãã«ã§ããç ä¿®ã§ã¯ã䜿ããããããã¯ãšã³ããçšæãããŠããããã§ããããã²ãšã€ã¯é³å£°èªèã»æäœã«é¢ããã¹ãã«ã§ãã
çŸåšæå±ããŠããããŒã ã§ã¯é³å£°æäœãæ±ã£ãŠããŸãããç ä¿®ã§ã¯åŠã³ãŸããã§ãããä»åŸã¯åé åã®ã¹ãã«ã身ã«ã€ããé³å£°ãšç»é¢æäœãã·ãŒã ã¬ã¹ã§çŽæçã«äœ¿ããã¢ããªãéçºããããšèããŠããŸãã
ââããŒã éçºã«å¿ èŠãªé¢šåãæåãæ ¹ä»ããŠãããšã®å 容ãèãããŠã»ãã
è°·çïŒå¯ã«ã³ãã¥ãã±ãŒã·ã§ã³ãåã£ãŠåŠã³åãæåãåœç€Ÿã«ã¯æ ¹ä»ããŠããããã®ããšãããŒã éçºãå«ããããœãããŠã§ã¢éçºã®åŒ·ã¿ã«ãªã£ãŠãããšæããŠããŸãããœãããŠã§ã¢éçºã§ã¯åãããªãããšãå€ããäžäººã§æ±ã蟌ããšã¹ããŒããé ããåŸåã«ãããå Žåã«ãã£ãŠã¯éçºã§ããªãã±ãŒã¹ãããããã§ãã
ââãã®æåã¯ãã€å®æããã®ãïŒ
è°·çïŒãœãããŠã§ã¢éçºã«éãããå ã«ç޹ä»ããå·¥å Žã§ã®ãã¬ã¹æ¥åæ åœæã«ããçæããŸãããçç£ãã¹ãããããã»ã©ã®å€§ããªãã©ãã«ãçããæãäŒã£ãéã«ãçŸå Žã®çµé·ãçãã芪ç¶ãšæ ãããæ¹ã«çžè«ãããšãéåžžã¯å³ããã®ã§ããã芪身ã«ãªã£ãŠçžè«ã«ä¹ã£ãŠãããŸããããšãŠãå¿åŒ·ãã£ãã§ãã
ââçŸåšã®ã¡ã³ããŒã®å±æ§ã«ã€ããŠ
è°·çïŒããããŒãäžéå ¥ç€Ÿãå€éšã®ååè ãªã©ããã£ãªã¢ãããžã·ã§ã³ãããŸããŸãªã¡ã³ããŒãéãŸã£ãŠããŸããéçºãããŒã¯ã¹ã¯ã©ã ã§é²ããã³ãã¥ãã±ãŒã·ã§ã³ã¯Slackã§å ±æãGoogle Meetã§ã³ãã¥ãã±ãŒã·ã§ã³ãããã1on1ãã©ã³ãã ã«è¡ããªã©ãã¢ããããŒã ãªé°å²æ°ã®äžãçŸåšé²è¡åœ¢ã§å¯ã«ã³ãã¥ãã±ãŒã·ã§ã³ãåããåŠã³åããšã®æåãéžæãç¶ããŠãããšæããŠããŸãã
ââReact Nativeãšæ¯ã¹ãŠãFlutterãåªããŠããç¹ã¯ã©ãã
ãã£ã ïŒReact Nativeã¯ããããŸã§ãã€ãã£ãã¬ã€ã€ãŒãšããåãããŸããäžæ¹ãFlutterã¯å ã»ã©èª¬æãããšãããçŽæ¥GPUãšããåãããŸãããã®ããã²ãŒã ãšã³ãžã³ã®ããã«ã¬ã¹ãã³ã¹ãéãã®ã倧ããªéãã§ãããé¢çœã¿ã§ããããŸãããã¡ããReact Nativeãå®å®ããŠãããã¯ãŒã«ã§ãã¡ã€ã³ãªéçºç°å¢ã ãšèšããŸãã
ââãŠã£ãžã§ããããªãŒãªã©ãå ±æããéã®ããããããŒã«ã¯ïŒ
åå¶ïŒå¯èŠåãå ±æããããDevToolsãããããã ãšæããŸãã
ãã£ã ïŒFlutterå ã®ã€ã³ã¹ãã¯ã¿ãŒãåªããŠããã®ã§ãéåžžã®äœæ¥ã§ããã°ãããã ãã§ååã ãšæããŸãã
ââUX/UIèšèšã«ãããŠFlutterã®æ·±ãçè§£ãéåæããã°ã©ãã³ã°ãªã©ã®ç¥èã¯å¿ èŠã
ãã£ã ïŒç޹ä»ããããã«ãæžããã³ãŒããå®éã«ã©ãåããã€ã¡ãŒãžããããã«å¿ èŠãªèæ¯ç¥èã§ããèšãæ¹ãå€ãããšãFlutterã®æ ¹æ¬çãªæŠå¿µãææ¡ããäžã§ã³ãŒããèªãã ãæžãããããããšãå¿ èŠã§ãããFlutterãå©çšããåºç€ãšèšããŸãã幞ããåå 容ãåŠã¹ãäžå¯§ã§èŠªåãªããã¥ã¡ã³ããè±å¯ã«çšæãããŠããŸãã
ââç¶æ 管çã«ãããŠãFlutterã¯å ¬åŒã§ã¯Providerãã¿ãŒã³æšå¥šããŠããããšã«ã€ããŠ
è°·çïŒæ£çŽãã©ã¡ããæ¡çšãããè¿·ããŸãããçµè«ãšããŠã¯ãBLoCãã¿ãŒã³ãéçºããŠããã¡ã³ããŒã«ãã¢ãªã³ã°ãè¡ãã匱ç¹ãæ¹è¯ããäžã§äœ¿çšããŠããŸãã
ãã£ã ïŒä»¥åã®BLoCãã¿ãŒã³ãšæ¯ã¹ãçŸåšã®BLoCãã¿ãŒã³ã¯å¿ èŠãªãã¡ã€ã«æ°ããªããžã§ã¯ãæ°ãæžããªã©ããã£ããããŠããŠé åçã§ããæ°ããå 容ãåç §ããŠããããã°ãBLoCãã¿ãŒã³ã®æ¹ãé åçã«æ ããšæããŸãã
ããšã¿èªåè»æ ªåŒäŒç€Ÿ
https://global.toyota/
ããšã¿èªåè»æ ªåŒäŒç€Ÿã®æ¡çšæ
å ±
https://www.toyota-recruit.com/career/
ããããã€ãã³ã
é¢é£ããã€ãã³ã

TOYOTA Developers Night å 補éçºããŒã ã§å®è·µã...
2021幎07æ10æ¥ (å)ããããã®èšäº

ã¢ãããŒããDXæä»£ã«ç®æããé²åçãã€ã¯ãããã³ããšã³ãéçºçµç¹ãã®æ§ç¯ãšã¯ïŒ

TOYOTAÃNissanÃHondaã®ãšã³ãžãã¢ãèªãããœãããŠã§ã¢ãšã³ãžãã¢ãåµãåºããã¯ã«ãã®UXãšã¯ââJapan Mobility Tech Day#1










