ãã®èšäºã§ã¯ããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ãšã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãæ©èœãæ¯èŒããŸããFlutterã䜿çšãããšãã®ææ³ãå ±æãããã¹ãæã«Surfã§äœ¿çšããããŒã«ãFlutterã䟿å©ãªçç±ãçºçããåé¡ã«ã€ããŠèª¬æããŸãã
Flutterã®ãã¹ãæ©èœã¯ããã€ãã£ãã®ãã¹ãæ©èœãšåçã§ãã
äŒæ¥ãéçºãžã®ã¢ãããŒãã倿Žããããæ°ãããã¯ãããžãŒãåºçŸãããããå Žåããã¹ãæ©èœã«æ·±å»ãªåœ±é¿ãäžããªãããšãéèŠã§ããçæ³çã«ã¯ãæ°ããèšèªãŸãã¯ãã¬ãŒã ã¯ãŒã¯ã䜿çšããå ŽåãQAã¹ãã·ã£ãªã¹ãã¯ãæè¯ã®æ¹æ³ã§å®èšŒãããäœ¿ãæ £ããããŒã«ãšãã¯ãããžãŒã®ã¹ã¿ãã¯ãåŒãç¶ã䜿çšããŸãã
ãã€ãã£ãã¢ããªããã¹ããããšããSurfã§ã¯èªåãã¹ãã䜿çšããããã±ãŒãžãèªã¿åã£ãŠçœ®ãæããŸããèªåãã¹ãããªããã°ãç¹ã«ååž°ãããããããã·ã®å©ãããªããã°ãã¢ããªã±ãŒã·ã§ã³ã®å€åæ§ãšå€ãã®ã±ãŒã¹ã®ã«ãã¬ããžãæžå°ããŸãã
Flutterã¢ããªã±ãŒã·ã§ã³ããã¹ããããšãã¯ãäœ¿ãæ £ããæ©èœãç¶æããããšãéèŠã§ããã
èªåãã¹ã
Surfã¯ãCalabashããã³Rubyãã¬ãŒã ã¯ãŒã¯ãšé£æºããŠããã€ãã£ãã¢ããªãèªåãã¹ãããŸãã Flutterãç»å Žãããšããç§ãã¡ãæåã«çåã«æã£ãã®ã¯ãCalabashã䜿çšããªãããšã¯å¯èœã§ãããšåæã«ãç§ãã¡ãæ £ããŠããæ¹æ³ã§ããŸãã¯ããã«ã¯ãŒã«ãªæ¹æ³ã§èªåãã¹ããå®å šã«æ©èœãããããšã§ãã
ããã¯å¯èœã§ããã ãã§ãªãããµãŒãããŒãã£ã®ãµãŒãã¹ããªããŠãå¯èœã§ããããšã倿ããŸãããFlutterã§ã¯ãçµ±åãã¹ããšã³ã³ãœãŒã«ã§ã®ãŠã£ãžã§ããã®ãã¹ããããã«å©çšã§ããŸãã Flutterã®éçºè ã¯ãFlutterã®èªåãã¹ãã«é¢ããèšäºã§ããã«ã€ããŠè©³ãã説æããŠããŸãã
Flutterã®èªåãã¹ãã¯ãã¯ãã¹ãã©ãããã©ãŒã ã§ãããšåæã«ãã€ãã£ãã§ããããŸããã¢ããªã±ãŒã·ã§ã³ãããžã§ã¯ãå ã§ãã¹ããäœæã§ããäž¡æ¹ã®ãã©ãããã©ãŒã ã§æ©èœããŸãããããžã§ã¯ãå šäœãç®ã®åã«ããå Žåã¯ãäžè¶³ããŠããid-schnickã远å ãããããã°ãèŠã€ããŠä¿®æ£ãããã§ããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ã®å質ãåäžããããã1ã€ã®æ©äŒã§ãã
Flutterã¯ãBehavior Driven DevelopmentïŒBDDïŒã¢ãããŒãããµããŒãããŠããŸãã UIãã¹ãã«äœ¿çšããŸããèšèªãšããŠGherkinãéžæããŸãããæ©èœãã¡ã€ã«ã䜿çšããããè±èªãšãã·ã¢èªã§ã¹ã¯ãªãããèšè¿°ãããã§ããŸããããã¯çè§£ã§ããŸããããã¯ãããã®äžã«ãŸãã¯ããããšäžç·ã«è¿œå ã®åŒæ°ãªãã§ã¹ã¯ãªããã¹ãããã®å®è£ ãèªåãã¹ãã®èµ·åãã«ã¹ã¿ãã€ãºããæ©èœãæã£ãŠããŸãïŒäŸãã°ãã¿ã°ã«ãã£ãŠããã€ãã®ã¹ã¯ãªãããå®è¡ããå šäœãšããŠãã¹ãŠã®æžããããã¹ãã§ã¯ãããŸããã
Flutterã¢ããªã±ãŒã·ã§ã³ããã¹ããããšãã«Gherkinã䜿çšããããã«ãflutter_gherkinãªãŒãã³ãœãŒã¹ãã¬ãŒã ã¯ãŒã¯ãæ¥ç¶ããŸããã
Flutterã«èªåãã¹ããããããšã«æ°ä»ãããšããCalabashãšDart + Gherkinã®ãã¯ãããžãŒã®éãã¯äœã§ãããããã©ã¡ãã®ã¢ãããŒããåªããŠããã®ã§ãããããããããäžç·ã«æ¯èŒããŠã¿ãŸãããã
1.æ©èœãã¡ã€ã«ã¯äž¡æ¹ã®ã¢ãããŒãã§å®å šã«åäžã§ãã
ããšãã°ããã³ã³ãŒãã«ããèªèšŒçšã®ã¹ã¯ãªããã¯ãCalabashã䜿çšããŠDartãšRubyã®äž¡æ¹ã§æ£ããè§£éãããŸãã
: ( )
ã©ã¡ãã®ãã¯ãããžãŒãããã·ã¢èªãè±èªããã®ä»ã®èšèªããµããŒãããŠããŸãã
2.æé ã¯å®è£ ãç°ãªããŸãã
| ããŒã+ flutter_gherkin
|
ã«ã©ããã·ã¥
|
|
|
3. Flutterã¯ã远å ã®.dartãã¡ã€ã«ã䜿çšããŠããã¹ããæ§æããã³æäœããŸãã Calabashã§ã¯ããã®ãããªåäžã®ãã¡ã€ã«ã¯ååšããŸããã
ç§ãã¡ã®æèŠã§ã¯ããããFlutterãŸãã¯Calabashå ã®ãã©ãã¿ãŒã§ãããšã¯èšããŸãããããã¯ãç¹å®ã®ããŒã«ããã¯ãããžãŒã䜿çšããéã®è©³çްã«ãããŸããã
4.4ãã¢ããªã±ãŒã·ã§ã³ã§èŠçŽ ãæäœããã®ã«äŸ¿å©ãªããã«ãåèŠçŽ ã«ã¯ç¬èªã®IDãå¿ èŠã§ããCalabashã§èªåãã¹ããè¡ãå Žåã¯ããã¹ãããã¢ããªã±ãŒã·ã§ã³ã§äž¡æ¹ã®ãã©ãããã©ãŒã ã«IDãå«ãŸããŠããããšã«äºåã«æ³šæããå¿ èŠããããŸããDartã§ã¯ãiOSã¢ããªã±ãŒã·ã§ã³ãšAndroidã¢ããªã±ãŒã·ã§ã³ã®ãã¡ã€ã«ãåå¥ã«ãªããŒãããã«ãèªåãã¹ããäœæããããã»ã¹ã§IDã远å ã§ããŸããããã¯äŸ¿å©ã§æéãç¯çŽã§ããŸãã
ç§ãã¡ã®çµè«ïŒDartã§ã®èªåãã¹ãã¯ãCalabashãã¬ãŒã ã¯ãŒã¯ã䜿çšããèªåãã¹ãããå£ã£ãŠããŸããã
ãããã·
ã±ãŒã¹ããšã«ã¢ããªã±ãŒã·ã§ã³ã®ã«ãã¬ããžãæ¡å€§ããããã«ãSurfã¯ãCharlesãªã©ã®ãã©ãã£ãã¯ãèªã¿åã£ãŠã¹ããŒãã£ã³ã°ããããã°ã©ã ã䜿çšããŸããã¯ã©ã€ã¢ã³ããšãµãŒããŒã®çžäºäœçšã®åæã«ãããæ¬¡ã®ããšãå¯èœã«ãªããŸãã
- ããã¯ãšã³ããšå®éã«çžäºäœçšããŠãããã©ããã倿ããŸãã
- åé¡ãã©ã¡ãåŽã«ãããã調ã¹ãŸãïŒã¯ã©ã€ã¢ã³ããŸãã¯ãµãŒããŒã
- , .
- : , , . Charles , , , .
Dartã«ã¯ããããã¯ãŒã¯ãæäœããããã®ç¬èªã®ã¯ã©ã€ã¢ã³ãããããŸãããã¹ãŠã®ãªã¯ãšã¹ãã¯ãããééããããããããã·ãæäœããããã«å¿ èŠãªèšå®ãã¢ããªã±ãŒã·ã§ã³å ã«å ¥åããå¿ èŠããããŸãããã¹ã¿ãŒã®äŸ¿å®ã®ããã«ãå¿ èŠãªãã¹ãŠã®èšå®ã¯å¥ã®ç»é¢ã«é 眮ãããŸããSurfã§ã¯ãç¬èªã«éçºãããããã°ç»é¢ã䜿çšããŸãã
ãããã°ç»é¢ã¯ããããã°ãã«ãããã®ã¿äœ¿çšã§ãã远å ã®èšå®ç»é¢ã§ããããã¹ãã«åœ¹ç«ã¡ãŸãããã®äžã§ãå¿ èŠãªãµãŒããŒãéžæããããã¢ããªã±ãŒã·ã§ã³ã§httpãªã¯ãšã¹ãã®èªã¿åããšä¿åã䜿çšããããããã€ã¹ã®fcmããŒã¯ã³ã衚瀺ãããã§ããŸãããã¹ãããæ©äŒã¯ãããããããŸãã
ãããã°ç»é¢ã¯ã«ã¹ã¿ã ã§ããéçºè ã¯ããã¹ã¿ãŒã®èŠæ±ã«å¿ããŠèŠçŽ ã远å ããŸããããšãã°ãã¢ããªã±ãŒã·ã§ã³ãããããã·ãæ§æããããã®ãã£ãŒã«ãã§ãããããã£ãŠãCharlesãšé£æºããååãªæ©äŒããããŸããã¢ããªã±ãŒã·ã§ã³ãåèµ·åããã«ãããã·ãµãŒããŒãDebugScreenã«æ¥ç¶ã§ããŸãã
ã芧ã®ãšãããFlutterã¢ããªã±ãŒã·ã§ã³ããã¹ãããå¯èœæ§ã¯å¶éãããŠããŸããããã€ãã£ãã䟿å©ã§äœ¿ãããããšãã«ç§ãã¡ã䜿çšããããšã«æ £ããŠãããã¹ãŠã®ãã®ãããã¯è¯ãç¥ããã§ãã
åé¡ïŒãã¬ãŒã ã¯ãŒã¯ã®ãã°ããµãŒãããŒãã£ã©ã€ãã©ãªã®æ¬ é¥ãäºæ³ããããã€ãã£ãåäœ
Flutterã¢ããªã±ãŒã·ã§ã³ããã¹ããããšãã«çŽé¢ããåé¡ããã€ãã£ãã§ããããããFlutterã®ç¹å®ã®æ¬ ç¹ã§ãããšã¯èšããŸãããã©ã®ãã¯ãããžãŒã§ããåé¡è§£æ±ºã¯å¿ ãããæçœã§åçŽã§ãããšã¯éããŸããã
Flutterã¢ããªã±ãŒã·ã§ã³ããã¹ããããšãã«äœãæ¢ãã¹ãããæããŠãã ãããäºåèŠåã¯äºåã«èŠåãããŠããŸãã
ãã©ãã¿ãŒãã¬ãŒã ã¯ãŒã¯ã®ãã°
ãã¹ãäžã«ãiOSã§ã®ãã©ã³ãã®è¡šç€ºãšãã©ãŒãããã§åé¡ãçºçããŸãããã€ãŸããiOSãã©ãããã©ãŒã ã®æåééãAndroidãããèããåºããªã£ãŠããŸããããã«ãããå€ãã®èŠèŠçãªãã°ãçºçããŸããã
åé¡ã¯ãã¬ãŒã ã¯ãŒã¯èªäœã«ããããšã倿ããŸãããç§ãã¡ã®ã¢ãã€ã«ã¢ããªéçºè ãFlutterãã¬ãŒã ã¯ãŒã¯éçºè ã³ãã¥ããã£ã®äººã ã«ãã®ãããªäžå¿«ãªãã°ãä¿®æ£ããããã«äŸé Œãããšãããã¬ãŒã ã¯ãŒã¯ã¯ããã«æŽæ°ãããiOSã§ã®ããã¹ã衚瀺ãä¿®æ£ãããŸããã
ãã£ãšãã®ãããªç¶æ³ãç¹°ãè¿ãããã§ããããããããããã¯å€§ããªåé¡ãšã¯èšããŸãããFlutterã³ãã¥ããã£ã®ã¡ã³ããŒã¯ãåé¡ã«è¿ éã«å¯Ÿå¿ãããã¬ãŒã ã¯ãŒã¯ããµããŒãããã³éçºããŸãã
ãµãŒãããŒãã£ã©ã€ãã©ãªã®
æ¬ é¥iOSããŒãžã§ã³10ããã³11ã§ã¯ããµãŒãããŒãã£ã©ã€ãã©ãªã§å®è£ äžã®æ¬ é¥ãçºçããŸãããããšãã°ãæè¡ä»æ§ãšèšèšã§èšç»ãããŠããããã«ãéç¥ãžã®ã¢ã¯ã»ã¹èš±å¯ããã¿ã³ã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«ããã«ãããã¢ãããããã°ãä¿®æ£ããŸããã
ãã®ãããªåé¡ã¯ãã¯ãã¹ãã©ãããã©ãŒã ãšãã€ãã£ãã®äž¡æ¹ã§çºçããå¯èœæ§ããããŸãããããã¯ããããžã§ã¯ãå ã®ä¿®æ£ã«ãã£ãŠããŸãã¯ã©ã€ãã©ãªéçºè ãšäžç·ã«è§£æ±ºãããŸãã
äºæ³ããããã€ãã£ãåäœãžã®å¯ŸåŠ
iOSããã³Androidã§ã®ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã®é·æäœ¿çšãšãã¹ãã«ãããããŸããŸãªã¢ããªã±ãŒã·ã§ã³åäœããã®ãŠãŒã¶ãŒã®æåŸ ãç°¡åã«äºæž¬ã§ããŸãããããã£ãŠãããšãã°ãiOSã§ããã¯ã¯ã€ãã䜿çšããŠæ»ãã®ã¯æšæºçãªãžã§ã¹ãã£ãŒã§ãããããŠAndroidã§ã¯ãããã¯å¿ èŠãããŸããã
äž¡æ¹ã®ãã©ãããã©ãŒã ã®ã·ã¹ãã ãã€ã¢ãã°ã¯ç°ãªããŸããiOSã§ã¯ãéç¥ã«ã¢ã¯ã»ã¹ããããã®ã¢ã¯ã»ã¹èš±å¯ãèŠæ±ããå¿ èŠããããAndroidã§ã¯ããã®ã¢ã¯ã»ã¹ã¯ããã©ã«ãã§äžããããŸãã
å€ãã®å Žåãæåã§çµäºããå¿ èŠãããã®ã¯ãOSåºæã®ãããã®éšåã§ãããŸããããã¯ã¯ã€ãã®å Žåã®ããã«ãiOSãã©ãããã©ãŒã ã§äºæ³ãããåäœãçªç¶Androidã«ç§»è¡ããå Žåã¯ãåæžããããšããããŸãã
ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã§ã¯ãç»é¢ã®æŽæ°ãäžé©åãªã¢ããªã±ãŒã·ã§ã³ã®æå°åãçŸåšã®OSã§ç°åžžãªã¢ããªã±ãŒã·ã§ã³æäœãªã©ã®åé¡ã¯ãŸãã§ããç¹å®ã®ãã©ãããã©ãŒã çšã®ã¢ããªã±ãŒã·ã§ã³ãéçºããããã®ããŒã«ãšãã¯ãããžã¯ãç¹å®ã®ã·ã¹ãã ã®ãã¹ãŠã®ããŒãžã§ã³ãšæ©èœãã«ããŒããããšãç®çãšããŠããŸãã
Flutterã¢ããªã±ãŒã·ã§ã³ã®1ã€ããã¹ããããšããè峿·±ãç¶æ³ã«çŽé¢ããŸãããç»é¢ãæŽæ°ããæ©èœã¯ãiPhoneX以éã®iOSããã€ã¹ã§ã¯å©çšã§ããŸããã§ãããåæã«ã匷æã®ãªãiOSããã€ã¹ãšAndroidã¯æ£ããæ©èœããŸããã
AndroidããŒãžã§ã³6ã§å¥ã®ãã°ãçºçããŸãããæå°åãããšãã¢ããªã±ãŒã·ã§ã³ãã¡ã¢ãªããå®å šã«ã¢ã³ããŒããããŸããã
ãã®ãããªãã°ã¯ããããžã§ã¯ãå ã®éçºè ã«ãã£ãŠä¿®æ£ãããŸããã
iOSã¯ãããã€ã¹ãšã·ã¹ãã ãæ°ããããŒãžã§ã³ã®OSã§ãªãªãŒã¹ãããããã以åã®ããŒãžã§ã³ã§ã¯æ©èœããªããªãããããåãSwiftãæŽæ°ãããšãã«äœã«çŠç¹ãåãããããå®å šã«èªèããŠããŸããAndroidã¯ã倿°ã®ããã€ã¹ãšå®å šã«ç°ãªãç»é¢ãµã€ãºãã¿ãŒã²ããã«ããå¿ èŠãããããšãçè§£ããŠããããã®è©³çްãç¥ã£ãŠããŸãã
ã¯ãã¹ãã©ãããã©ãŒã ã«ããã€ãã£ãéçºããã®å®è£ ã®ãã¹ãŠã®åŸ®åŠãªç¹ãå«ããããšæããŸãããã¡ãããFlutterã䜿çšããå Žåãããã€ãã®æ¬ ç¹ããããŸãããããã¯åé¡ã§ã¯ãããŸãããã¯ãã¹ãã©ãããã©ãŒã ãžã®ç¬èªã®ã¢ãããŒããå¿ èŠãªã ãã§ãã
å©ç¹ïŒ1ã€ã®ã³ãŒãããŒã¹ã1ã€ã®éçºããŒã
åäžã®ã³ãŒãããŒã¹ã«ããããã¹ãæéãççž®ãããŸãã
ãã°ã®åå ãšããŠã¯ãæè¡ä»æ§ã®ãããŸããããã¶ã€ã³ã®ã¬ã³ããªã³ã°ç¶æ ã®æ¬ åŠãããã¯ãšã³ãã®æŽæ°æã®äžäœäºææ§ãªã©ããããŸããååã®æ°ã®ã¿ã¹ã¯ãäœæããå¿ èŠãããããããã®ãããªãã°ãäœæããæ¹ãç°¡åã§ããããã«ããããã§ã«æéãç¯çŽã§ããŸãã
1ã€ã®ãã©ãããã©ãŒã ã§ãã°ãæ€çŽ¢ããŠæ©èœã確èªã§ããŸããé«ã確çã§ãäž¡æ¹ã®ãã©ãããã©ãŒã ã§ç¹°ãè¿ãããŸããçµå±ã®ãšãããå®è£ ã¯1ã€ã§ãã
åãã³ãŒããèšè¿°ãããŠãããããäž¡æ¹ã®ãã©ãããã©ãŒã ã®æ°æ©èœã®ããžãã¯ãåãã§ããã¢ããªã±ãŒã·ã§ã³å ã®è€éãªããã»ã¹ã®ãã¹ãã¯ããããã©ãããã©ãŒã ã§ã®ãã¹ããšå¥ã®ãã©ãããã©ãŒã ã§ã®ç¢ºèªã«åž°çããŸãã 1ã€ã®ãã©ãããã©ãŒã ã§ã¢ã¯ãã£ããã£ã®å®å šãªãµã€ã¯ã«ãå®è¡ããŸããæ¢çŽ¢çãã¹ããæ©èœã®å®è¡ãç /æ£æ°/å®å šããã£ãŒãããã¯ã®åæãè¡ããŸãããã®åŸãå¥ã®ãã©ãããã©ãŒã ã§ã®æ¢çŽ¢çãã¹ãã«ãã£ãŠå質ã確èªããã ãã§ãããã®ã¢ãããŒãã«ãããããžãã¯ãã¹ãã®æéãçŽ1.3åç¯çŽãããŸãã
, , , : , . , .
, (, iOS), , (Android), event .
äž¡æ¹ã®ãã©ãããã©ãŒã ã®ã¢ã»ã³ããªãåãæ¥ã«é¡§å®¢ã«çŽåããå¿ èŠããããããããåæã«åºãŠããããžã§ã¯ãã«QAãšã³ãžãã¢ã1人ããããªãå Žåããã€ãã£ãéçºã§æ€èšŒããããã®ååãªæéããªãå¯èœæ§ããããŸãããã¹ããµã€ã¯ã«ã¯äž¡æ¹ã®ãã©ãããã©ãŒã ã§å¥ã ã«å®è¡ããå¿ èŠããããŸããã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³ããã¹ãããããšã§æéãç¯çŽããŸããäž¡æ¹ã®ãã©ãããã©ãŒã ã®ååž°ãã¹ããåäžã®ãµã€ã¯ã«å ã§å®è¡ãããŸãã
2ã€ã®é¡äŒŒãããããžã§ã¯ãïŒ1ã€ã¯ãã€ãã£ãAndroidãšiOSããã1ã€ã¯FlutterïŒã®ãã¹ãã倧ãŸãã«è©äŸ¡ããããããé ç¹ã§æ¯èŒããŸããã
åæãšãã¹ãã¯ã1ã€ã®iOSããã€ã¹ãš1ã€ã®Androidãã©ãããã©ãŒã ããã€ã¹ã§å®è¡ãããŸãããå®éã«èŠãããšãã§ããããã«ãFlutterã¯ã2åã§ã¯ãããŸããããå®éã«æéã®å¢å ããããããŸããããã¯çè§£ã§ããŸãã2ã€ã®ãã©ãããã©ãŒã ã®ããããã§ãã¹ããå®å šã«åé€ããããšã¯ã§ããŸãããäœãšèšã£ãŠãããããã¯ç°ãªãç¹ç°æ§ãæã¡ããŠãŒã¶ãŒã«çŠç¹ãåãããŠããŸãã
|
|
ãã€ãã£ãiOS
|
ãã€ãã£ãAndroid
|
ãã©ãã¿ãŒAndroid + iOS
|
| ãã¹ã¯ãŒãã®åŸ©å
|
2æé
|
2æé
|
3æé20å
|
| æ¿èª
|
1æé30å
|
1æé30å
|
2æé20å
|
| ããã·ã¥éç¥
|
2æé
|
2æé
|
4æé
|
ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®è©³çްã«å®å šã«ã¯åœ±é¿ããããã©ãããã©ãŒã ããšã«åå¥ã«ã«ã¹ã¿ã äœæãããŠããªãæ¢è£œã®æ©èœããã¹ãããå Žåãäž¡æ¹ã®ãã©ãããã©ãŒã ã§Flutterã¢ããªã±ãŒã·ã§ã³ããã§ãã¯ããæéãçŽ1.3ã1.5åççž®ãããŸããããšãã°ãç°ãªããã©ãããã©ãŒã ã§ç¹å®ã®åäœãè¡ããªãèªèšŒããã³ãã¹ã¯ãŒãå埩æ©èœã«ãããFlutterããŒãžã§ã³ã®ãã¹ãæéã1.3åã®1ã«ççž®ãããŸãã
åãã©ãããã©ãŒã ããã®ã«ã¹ã¿ã åäœãå¿ èŠãšããæ©èœã«ã€ããŠã¯ãæéã®ççž®ãæåŸ ããã¹ãã§ã¯ãããŸããã iOSãšAndroidã®åäœã¯ç°ãªããšäºæ³ãããŸããã€ãŸããäž¡æ¹ã®ãã©ãããã©ãŒã ãå®å šã«åå¥ã«ãã¹ãããå¿ èŠããããŸããããšãã°ããŠãŒã¶ãŒã®éåžžã®éç¥äœæ¥ãç¶æããããã«ãæš©éã®éããéç¥æ¥ç¶ã®æäœãiOSãšAndroidã§éç¥ãéä¿¡ããããã®ããã·ã£ãŒèšå®ãããã³ãã®ä»ã®å®è£ ã®åŸ®åŠãã®ããã«ãäž¡æ¹ã®ãã©ãããã©ãŒã ã§ããã·ã¥éç¥ããã«ãµã€ã¯ã«ã§ãã¹ãããå¿ èŠãããããšããããããŸãã TKãšãã¶ã€ã³ãå°éãããŸããã
ããŒã å ã®ã³ãã¥ãã±ãŒã·ã§ã³ãæŽçããæ¹ãç°¡åã§ã
ãããžã§ã¯ãã«å€ãã®äººãããå Žåãå°ããªåŸ®åŠãªç¹ã§ãééããªãããã«ããã»ã¹ãæŽçããããšã¯å°é£ã§ããç¹ã«ãå€ãã®æ¹åãå ã«ããå Žåã¯ãæ°æ©èœã®å®è£ ãšäžè¬çãªå€æŽãåé¡ã®ã»ãšãã©ã¯ãéçºããŒã ã1人ã®å Žåã«è§£æ±ºãããŸãã
ãŸãã2ã€ã®ãã©ãããã©ãŒã ã§2ã€ã®ç°ãªãå®è£ ãæäœãããããã1ã€ã®ã³ãã³ããå®è£ ããŠã¢ããªã±ãŒã·ã§ã³ããã¹ãããæ¹ãç°¡åã§ãããã¡ãããå質ä¿èšŒã®å°éå®¶ã¯ãiOSãã©ãããã©ãŒã ãšAndroidãã©ãããã©ãŒã ã®äž¡æ¹ã§ãã¢ããªã±ãŒã·ã§ã³ã®ã¹ããŒã¿ã¹ã«é¢ããå®å šãªæ å ±ãå ¥æããããšã«é¢å¿ããããŸãã Flutterã䜿çšããæ¹ãç°¡åã§ãã
第äºã«ããã€ãã£ãéçºã«ã¯éèŠãªãã€ã³ãããããŸããäžæ¹ã®ãã©ãããã©ãŒã ãåŠç¿ããŠåãå ¥ãã倿Žã«ã€ããŠã¯ãããäžæ¹ã®ãã©ãããã©ãŒã ã«éç¥ããå¿ èŠããããŸããããã¯ãå€§èŠæš¡ã§éäžçãªå€æŽã®éçšã§å¿ããããã倱ããããããããšããããŸããFlutterã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåããã®ãããªåé¡ã¯ãããŸãããããŒã ã¯1ã€ã ãã§ããã€ãŸããæ¹èšã®ããã®1ã€ã®ã¿ã¹ã¯ãäž¡æ¹ã®ãã©ãããã©ãŒã ã«é©çšãããŸãã
Flutterã¢ããªã®ãã¹ãã倧奜ãã§ã
ã¯ãŒã«ãªã³ãã¥ããã£ã®äžå¡ã§ãã
ããšç§ãã¡ã«ãšã£ãŠãæ°ãããã¬ãŒã ã¯ãŒã¯ã¯ãã©ã¹ã§ããéæšæºã®åé¡ã解決ããããšã§ãèŠéãåºããŸããã¢ããªã±ãŒã·ã§ã³ããã¹ããããšãã«ã¹ãã«ãšæ©èœãéçºãããå€ãã®è峿·±ããŠããŒã¯ãªãã°ãèŠã€ããŸããã
åæã«ãFlutter-frameworkã³ãã¥ããã£ã®éçºè ã¯ãç¹å®ãããåé¡ã«ã€ããŠè¿ éã«ãã£ãŒãããã¯ãæäŸããã©ã€ãã©ãªãæ¹åããŠããããžã§ã¯ãã«è²¢ç®ã§ããããã«ããŸããç§ãã¡ã¯äžç·ã«åé²ããŠãããããã¯çŽ æŽãããããšã§ãã
ã¹ãã·ã£ãªã¹ãã«ãªã
ã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³ã䜿çšããå Žåã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éãã«çæãããã©ãããã©ãŒã ã®ç¹ç°æ§ã«çŠç¹ãåãããããšãå¿ããªãããšãéèŠã§ããçè«çã«ã¯æå°éã«ãã¹ãéããæ¢ããŠèŠãŠããããŸã§ã«ééããããšã®ãªãããšãåŠã³ãŸãããã®ãããªäœæ¥ã¯ããæèãé«ããŸãã
ãã€ãã£ãã¢ããªãéçºããã³ãã¹ãããå ŽåãAndroidStudioãVisualStudioCodeãªã©ããiOSã¢ããªãæ§ç¯ããããšã¯ã§ããŸãããFlutterã䜿çšããå ŽåãIDEã¯AndroidãšiOSã®äž¡æ¹ã§åãã§ããã«ãã³ããã
ç¬ç«
ããFlutterã䜿çšããå ŽåãSurfã§ã¯ãeã³ããŒã¹ãããã³ãã³ã°ãŸã§éåžžã«ç°ãªããããžã§ã¯ãã«çŽé¢ããŸããå®è·µã«ãããQAãšã³ãžãã¢ã¯äž¡æ¹ã®ãã©ãããã©ãŒã ãçæã§ãã¹ãã§ããããšã瀺ãããŠããŸããäœæ¥ã®ããŒã¹ãéããªããã¿ã¹ã¯ãå®äºããæéããªããªã£ããšãã«ããªãªãŒã¹ã®è¿ãã§ã®ã¿å¥ã®ã¹ãã·ã£ãªã¹ããæ¥ç¶ããå¿ èŠããããŸãã
ãã©ãã¿ãŒ-äžæ©åé²
ã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã®ãã¹ãã¯é£ãããããŸããããã€ãã£ãã®ãã®ã䜿çšãããããããã«é«éã§äŸ¿å©ãªå ŽåããããŸããçŽé¢ããå¯èœæ§ã®ãããã¹ãŠã®å°é£ã¯ãå©äŸ¿æ§ãšå©ç¹ã«éãªããã®ã§ã¯ãããŸããã
Flutterã¢ããªã±ãŒã·ã§ã³ã®éçºãšãã¹ãã®çµéšãããSurfã¯ãã®ãã¬ãŒã ã¯ãŒã¯ã倧ããªåé²ã§ããããšã瀺ããŠããŸãã