ã¯ããã«
ãã®è¨äºã¯ï¼ãã³ã¢ã¢ããã³ãã«ã¬ã³ãã¼22æ¥ç®ã®è¨äºã«ãªãã¾ãã
ããã«ã¡ã¯ï¼ãã³ã¢ã®è§éã¨ããã¾ãããµã¼ãã¹ãã¶ã¤ã³é¨ã§ahamo ã®ã¢ãã¤ã«ã¢ããªã®éçºãæ å½ãã¦ãã¾ãã
ã¢ãã¤ã«ã¢ããªãiOSåãã¨Androidåãã§ããããã«éçºããã®ã¯æéããããã®ã§ï¼å¹çåã®ããã«ã¯ãã¹ãã©ãããã©ã¼ã ã«å¯¾å¿ãããã¬ã¼ã ã¯ã¼ã¯ã使ã£ã¦åæã«éçºãã¡ãããã¨ãããã¨ã§ï¼ahamoã¢ããªã¯Flutterã使ã£ã¦éçºãã¦ãã¾ããæ¬è¨äºã§ã¯Flutterã使ã£ã¦ã¿ã¦ããã£ããã¨ï¼è¦å´ãããã¨ã«ã¤ãã¦ç´¹ä»ãã¾ãã
ã¢ãã¤ã«ã¢ããªéçºã«èå³ããæ¹ãï¼Flutterãå©ç¨ãã¦ã¿ããã¨æã£ã¦ããæ¹ã®åèã«ãªã£ããããããã§ãã
ãã¬ã¼ã ã¯ã¼ã¯ã®é¸å®ã¯ï¼
ahamoã¢ããªã®éçºã¯2020å¹´ããéå§ãã¾ãããå½æã¯Flutterã¨ReactNativeã2å¼·ã§ãããï¼ä»¥ä¸ã®çç±ããFlutterã使ããã¨ã«ãã¾ããã
å½æã¨ãã¦ã¯ReactNativeãã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã«ãªã£ã¦ããªãç¶æ³ã ã£ã
Flutterã¯Google社ããµãã¼ããã¦ããï¼OSVã¸ã®å¯¾å¿ããã°ã«ããããªãªã¼ã¹é »åº¦ãé«ãï¼ä¸ã®ä¸ã®æ©æµãåããããç¶æ³ã§ãã£ã
ahamoã¢ããªã®éçºããã¸ã§ã¯ãã§ã¯Flutterãéçºçµé¨ã®ãã人æã®æ¹ãéããããã£ã
Flutterã®è¨èªã§ããDartã¯Javaã¦ã¼ã¶ããããã¨å¦ç¿ã³ã¹ããä½ãã§ãã£ã
ï¼ReactNativeã¯JavaScriptã§ããï¼ã¢ããªã¨ã³ã¸ãã¢ããã¯Webã¨ã³ã¸ãã¢èª¿éãå¿ è¦ï¼
Flutterã¨ã¯ï¼
Googleãæä¾ããã¢ãã¤ã«ã¢ããªç¨ã®ãã¬ã¼ã ã¯ã¼ã¯ï¼2018å¹´å ¬éï¼ã§ï¼androidã¨iOSãåãã½ã¼ã¹ãå ±æãã¦ï¼åæã«ä½æãããã¨ãã§ãã¾ãã ããã¼ã¿ãã«ã»UIã»ãã¼ã«ããããã¨å¼ã°ãã¦ãã¦ï¼ç¬èªã®ãã¶ã¤ã³UIã使ç¨ã§ãããã¨ããï¼ãã¶ã¤ã³ã®èªç±åº¦ãé«ãã¨ãããè©ä¾¡ããã¦ãã¾ãã
éçºè¨èªã«ã¯Dartã¨ããããã°ã©ãã³ã°è¨èªã使ç¨ãã¾ããDartã¯ãC#ãããJavaãã«è¿ãæ§æã¨è¨ããã¦ãã¦ï¼å·¦è¨ã®ããã°ã©ãã³ã°è¨èªãç¿å¾ãã¦ããã°ï¼æ¯è¼çç¿å¾é£æ度ãä½ãã§ãã ã³ã¼ãã®å®è¡ããã©ã¼ãã³ã¹ãåªãã¦ããï¼å¤§è¦æ¨¡éçºã«åãã¦ããã¨ãã£ãç¹å¾´ãããã¾ãã
Flutterãå©ç¨ããahamoã¢ããªã®éçº
ä»åï¼Flutterãå©ç¨ããéçºã¨ãã¦ï¼ahamoã®ã¢ããªéçºã«ã¤ãã¦ç´¹ä»ãã¾ãã
ahamoã¢ããªã¨ã¯ï¼
ahamoã®ã¢ããªã¯ahamoã®å¥ç´ãç³ãè¾¼ã¾ããæ¹åãã®ã¢ããªã§ï¼ã¹ããã®ãå±ãã¾ã§ã®ç¶æ³ãç°¡åã«ç¢ºèªãããï¼å©ç¨æéããã¼ã¿ä½¿ç¨éãä¸ç®ã§ãã§ãã¯ã§ãããï¼å¤§çããªã©ã®ãªãã·ã§ã³å¥ç´ãããã«ç³ãè¾¼ãããã¨ãã£ããã¨ãã§ããã¢ããªã§ãã
æè¿ï¼2022å¹´7æï½ï¼ã¯ã¨ã¹ããã¯ãªã¢ããã¨dãã¤ã³ããç¹å®ååã®å¼æå¸ããããããahaã¯ã¨ã¹ããã¨ããæ°æ©è½ãæä¾ãã¾ããã®ã§ï¼ahamoãå¥ç´ããã¦ããæ¹ã¯ï¼ahamoãå¥ç´ããã¦ãªãæ¹ã¯ahamoã«å¥ç´ãã¦ããã ãï¼ï¼ãã²ahaã¯ã¨ã¹ãã«ææ¦ãã¦ã¿ã¦ãã ããã
Flutterã®å©ç¨æ¹é
ahamoã¢ããªã®éçºã«ããã¦ã¯ï¼éçºå¹çãéè¦ãï¼Presentation層ããInfrastructure層ã¾ã§Flutterãæ¡ç¨ãï¼å¯è½ãªéãFlutterã§éçºããæ¹éã¨ãã¾ããã
åèã¾ã§ã«ï¼ä»¥ä¸ã®ã¢ã¼ããã¯ãã£ãæ¡ç¨ãã¦ãã¾ãã
- ChangeNotifier+Provider
ã(éçºå½æãFlutterå ¬å¼ãæ¨å¥¨ãã¦ããã¢ã¼ããã¯ãã£ãã¿ã¼ã³)
- MVVM+Service層
ï¼MVVMï¼Providerã¨è¦ªåæ§ãé«ããéçºè 人å£ãå¤ããService層ï¼å¤§äººæ°åãï¼ã¹ããæ©ç¨®å¤æ´æã®ãã¼ã¿ç§»è¡ããµãã¼ãããã¢ããªã§ãã
Flutterã§éçºãã¦ã¿ã¦ããã£ããã¨
Flutterã§éçºãã¦ã¿ã¦ï¼ããã£ããã¨ã¯ä»¥ä¸ã§ãã
ahamoã®ä¸ç観ã表ç¾ããã¬ã¤ã¢ã¦ãã»ã¤ã³ã¿ã©ã¯ã·ã§ã³ãã¯ã³ã³ã¼ãã§éçºã§ãã
è¨è¨ã»è£½é ã¾ã§ã¯æ¦ãçç£æ§2åã§éçºãé²ãããã
çæ¹ã®OSã«ã¦è©¦é¨ã§æ ä¿ãããå ´åã®å®å¿æã¯å¤§ããã£ã
æ é解æã»æ¨ªå±éã対å¿ãå¹ççã§ãã£ã
ä¾ï¼ä¸å ·åããã£ãéã«1ã¤ã®ã½ã¼ã¹ãä¿®æ£ããã°æ¹ä¿®å¯è½ãªããï¼æ¹ä¿®ã³ã¹ãåå
è¦å´ãããã¨
Flutterãå©ç¨ãã¦ã¿ã¦è¦å´ãããã¨ã«ã¤ãã¦ç´¹ä»ãã¾ãã
ã¢ããªãµã¤ãº
Flutterã¯Nativeã¢ããªããï¼ã¢ããªãµã¤ãºã大ãããªãå¾åãããã¾ããFlutterå´ã«ãã¬ã¼ã ã¯ã¼ã¯é¨åã®ã³ã¼ããå«ã¾ããããã§ããï¼ç¹ã«ï¼CPUã¢ã¼ããã¯ãã£ã®ã¢ã¸ã¥ã¼ã«ã¯ãã¼ã¿éãå¢ããè¦å ã«ãªãã¾ãã
ahamoã¢ããªã®éçºã§ã¯ï¼ã¢ããªãµã¤ãºãå°ããããããã«ï¼å¯¾è±¡ã¨ãã¦ããã¢ã¼ããã¯ãã£ã®è³æï¼iOSã¨androidï¼ããå ¥ããªãããã«ãã«ãã¹ã¯ãªãããä½æãã¦ãµã¤ãºã縮å°ãã¾ããã å³ã®åºå±å ï¼Flutter SDKã®ä»çµã¿ - Qiita)
Flutterã®ãã¼ã¸ã§ã³ã¢ãã
ã¢ãããã¼ãã®æ©ãFlutterã®ãã¼ã¸ã§ã³ã¢ããã«è¿½éããå¿ è¦ããã£ãããï¼ä½åº¦ãFlutterã®ãã¼ã¸ã§ã³ã¢ãã対å¿ãå®æ½ãã¾ãããï¼ãã®é½åº¦ç¨¼åããããã¾ããã
å¿ è¦ãªæ©è½ã®è¿½å
webviewããã±ã¼ã¸ã¯è¤æ°ããã¾ããï¼ahamoã®æ©è½ãæºããããã®ããªãã£ãã®ã§ããã±ã¼ã¸ãé¸å®ãã¦èªåãã¡ã§ããã±ã¼ã¸ãæ¹ä¿®ã»ä¿å®ããå¿ è¦ãããã¾ããã
ãã©ã°ã¤ã³ã®webviewæ©è½ã¯ï¼ä¸»ã«Native層ã§å®è£ ããã¦ããããï¼Flutter層ããã¯Native層ãä¸å¿ã«æ¡å¼µãã¦ãã¾ãã Flutterã¨Nativeéã¯ï¼methodchannelãä»ãã¦é£æºãã¦ããï¼å®è£ é£æ度ãé«ãã§ãã
ãããã«
Flutterã使ã£ã¦ã¢ãã¤ã«ã¢ããªã®éçºããã¦ã¿ã¦ï¼ããã£ããã¨ï¼è¦å´ãããã¨ã«ã¤ãã¦ç´¹ä»ãã¾ããã
ããã¾ã§èªãã§ããã ããæ¹ãããã¨ããããã¾ããã
ã¢ãã¤ã«ã¢ããªéçºã«èå³ãããæ¹ã«ã¨ã£ã¦ï¼å°ãã§ãåèã«ãªãã°å¹¸ãã§ãã