顧客ã¯ãWi-Fiãå©çšå¯èœã§ãããã¢ããªãéããŠããªããšãã«ããŒã¿ãåæãããªã©ãiOSãšAndroidã®äž¡æ¹ã§ããã¯ã°ã©ãŠã³ãããã»ã¹ãšããŠdartã³ãŒããå®è¡ããããšèããŠããŸãã
@mpcompleteã¯ãAndroidã§ããã¯ã°ã©ãŠã³ãããã»ã¹ãäœæããDartã³ãŒããå®è¡ããŠãã©ãã¿ãŒãæŽæ°ããŸããã ããããç§ã¯iOSã§ã®é¡äŒŒç¹ãèªèããŠããŸããã
ãã®åé¡ã¯ããã©ã°ã€ã³ãªã©ã§ã®APIã®éçºã远跡ããŸãã ãããã®æœè±¡åã®ãšã³ãžã³ãµããŒãã¯ã httpsïŒ//github.com/flutter/flutter/issues/6192ã§è¿œè·¡ãããŠããŸãã
ããã¯ã°ã©ãŠã³ãã§å®è¡ãããã³ãŒãã¯ãDartãŸãã¯Java / Objective-Cã§äœæããå¿ èŠããããŸããïŒ
ããã¯ãæ¥ç¶ãå©çšå¯èœã«ãªã£ããšãã«ããŒã«ã«ããŒã¿ã¢ãã«ãæŽæ°ããããšããç¶æ³ã§çºçããŸããã äŸïŒå°äžéè·¯ç·å³/å°äžéã«åºå ¥ãããå¯èœæ§ã®ããæéã ãããã£ãŠãç®æšã¯å®è¡ãããã³ãŒããDartã«ããããšã§ããããã©ãããã©ãŒã ããšã«åå¥ã®ããŒã¿ã¢ãã«æäœã³ãŒããçšæããå¿ èŠã¯ãªããšæããŸãã
CC @kasperl; ããŸããŸãªã¿ãŒã²ããéã§ããã¯ã°ã©ãŠã³ãã§ã³ãŒããå®è¡ããå€ãã®æ¹æ³ãæ€èšããŠããŸããããããããããããããã€ãã®åŠç¿ãåŒãåºãããšãã§ããŸãã
ãŠãŒã¶ãŒããã®ãŠãŒã¹ã±ãŒã¹ã¯ãããŸããïŒ ç§ãèããã®ã¯ããããã·ã¥ã¡ãã»ãŒãžã«å¿çããŠãããã€ã¹ã§ã³ãŒããå®è¡ããããã¢ããªãéããŠããªããŠããããŒã¿ãããã€ã¹ã«åæãããããšãããã®ã ãã§ããã
éåžžãã¢ããªãããã¯ã°ã©ãŠã³ãã§å®éã«å®è¡ã§ããããšã¯ããªãå¶éãããŠããããããã®å ŽåããããããŠãŒã¹ã±ãŒã¹ã®ã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãããšãã§ãããšæããŸãã ããšãã°ãiOSã¢ãã«ã¯æ¬¡ã®ãšããã§ãã
https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html
ã¯ããããã¯ïŒ6192ãšåããã°ã ãšæããŸãã
ïŒ6192ããç·è±ããªã¿ã°ãšãã€ã«ã¹ããŒã³å€ãè¿œå
@ mravn-google @sigurdmäœãèããŠã¿ãŠãã ããïŒ
å®çŸå¯èœæ§ãšã³ã¹ããããããç解ããããã®éåžžã«åæã®èª¿æ»ã®ããã«Mikkelã«å²ãåœãŠãŸãã
Leafyããã®ã¢ããããŒãã¯æ¬¡ã®ãšããã§ãã
ããŒã¿éç¥ïŒã€ãŸããã¢ããªãäœããã®æ¹æ³ã§å¿çããå¿ èŠãããéç¥ïŒã®å¶éã«ãããleafyã¯è¡šç€ºéç¥ïŒã€ãŸããã¢ããªã®é¢äžãªãã«ãŠãŒã¶ãŒç»é¢ã«çŽæ¥ããã·ã¥ãããéç¥ïŒã®äœ¿çšã«åŸããŠããŸãã ãããã®ãµããŒãã¯Flutterã«ãã§ã«ååšããŸãã
ãã ããä»ã®ããŒã ãšã®äŒè©±äžã«ãå¥ã®ãŠãŒã¹ã±ãŒã¹ãè¡šé¢åããŸãããã¢ããªãããŠã§ã¢ã©ãã«ãŸãã¯[ããŒã ç»é¢]ãŠã£ãžã§ããããµããŒãããå Žåããããã®è¡šé¢ã¯ãŸã Flutterã§ãµããŒããããŠããªãããããã€ãã£ãã³ãŒãã§UIãèšè¿°ããå¿ èŠããããŸãã ãã ããã¢ãã«ã¬ã€ã€ãŒãšããžãã¹ããžãã¯ããã©ãã¿ãŒã¢ããªãšãŠã§ã¢ã©ãã«ã¢ããªã§å ±æã§ããããã«ããã¢ããªãèµ·åããŠããŒã¿ãèŠæ±ãããããšãã§ããã°äŸ¿å©ã§ãã ãããã®ãããããæžããããšããªãã®ã§ãæ¢åã®ãã€ãã£ãã¢ããªããããã©ã®ããã«è¡ããã¯ããããŸããããããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®æå¹ãªãŠãŒã¹ã±ãŒã¹ã®ããã§ãã
ãã«ãªã³DroidConã®FlutterããŒã¯ã®äœè ãšè©±ããããšãããããã¯åœŒã®ãããã®è³ªåã®1ã€ã§ããã ããããè¡ãæ¹æ³ãFlutterã®æ¹æ³ã
æ確ã«ããããã«ãçŸåšãFlutterã䜿çšããã¢ããªã®äžéšãšããŠããã¯ã°ã©ãŠã³ãããã»ã¹ãäœæããããšãå¯èœã§ãã ãã ãããããã®ããã»ã¹ã¯ãObj-C / SwiftãŸãã¯Java / Kotlinã³ãŒãã®ã¿ãå®è¡ã§ããŸãã ãã®ãã°ã¯ããããã®ããã¯ã°ã©ãŠã³ãããã»ã¹ã§Dartã³ãŒããå®è¡ã§ããããã«ããããã®ãšã³ãžã³ã®å¶éãä¿®æ£ããããšãšãDartãããã®ãããªããã¯ã°ã©ãŠã³ãäœæ¥ãã¹ã±ãžã¥ãŒã«ã§ããããã«ããããã®æœè±¡åãæäŸããããšã§ãïŒFlutterViewãå¿ èŠã«ãªããšãã©ã°ã€ã³ã«å±ããå¯èœæ§ããããŸã-ç»é¢äžã®å¶éãåé€ãããŸããïŒã
https://github.com/flutter/flutter/issues/6192#issuecomment -258928555ã§ãçŸåšã®ãšã³ãžã³ã®å¶éãšããã解決ããæå³ã«ã€ããŠèª¬æããŠããŸãã åèãŸã§ã«@ a-siva
èšåãããŠããªããŠãŒã¹ã±ãŒã¹ããããŸãã5ç§ããšã«äœçœ®ã远跡ããŠããããã®ã€ãã³ãã«ç¹å®ã®ä»ã®æ å ±ãæ·»ä»ãããŠããŸãããããã®æ å ±ã¯ãã¹ãŠDartã«å®è£ ãããŠããŸãã ãŠãŒã¶ãŒãå¥ã®ã¢ã¯ãã£ããã£ããã©ã¢ã°ã©ãŠã³ãã«æã£ãŠããå Žåãæ°žç¶çãªéç¥ã衚瀺ãã5ç§ããšã«ãã®Dartã³ãŒããå®è¡ãç¶ããå¿ èŠããããŸãã
ããã¯ç§ãã¡ã«ãšã£ãŠãããã«ãŒã§ãã åºè·ãé ããå¯èœæ§ããããããçŸæç¹ã§å®è£ ã§ããåé¿çã«ã€ããŠãèãããããšæããŸãã
ã¿ã€ããŒãã¢ã¯ãã£ãã®ãŸãŸã«ããŠãäœãèµ·ãããã確èªããããšæããŸãã ä¿¡é Œã§ãããšã¯æããŸãããããã®ã¢ããªã«ã¯1åéãã®ãã£ãã·ã¥ã¯ãªãŒã³ã¢ããïŒã¢ããªãããã¯ã°ã©ãŠã³ãã«èšå®ãããŠãã15ååŸïŒã®ãŠãŒã¹ã±ãŒã¹ããããæ£åžžã«å®è¡ãããããšãããããŸããã Dartã§ã¢ããªãåæ¢ããŠããéã«ã¹ã±ãžã¥ãŒã«ããŸãã ãã®ãããªãã®ïŒ
<strong i="6">@override</strong>
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.paused) {
new Future.delayed(const Duration(seconds: 5), () => _doSomething());
}
}
次ã®å Žåã¯æ©èœããŸããã
iOSã«å¯Ÿå¿ãããã®ã¯ããããŸããããAndroidã§ã¯ããã©ã¢ã°ã©ãŠã³ããµãŒãã¹ãèµ·åãããã©ãã¿ãŒãã©ã°ã€ã³ãäœæã§ããŸããããã«ãããããã»ã¹ã®åªå 床ãé«ããªãããªãœãŒã¹ãå¿ èŠãªãšãã«åŒ·å¶çµäºãããå¯èœæ§ãäœããªããŸãã ããã«ãããé·æéå®è¡ãããDartã¿ã€ããŒãçãæ®ãå¯èœæ§ãé«ããªããŸããïŒ
ã¯ããããã¯ããªãã®æŽ»åïŒãããã£ãŠããªãã®ãã©ãã¿ãŒãã¥ãŒïŒãã¢ã¯ãã£ããªãŸãŸã«ãªãã®ã§åœ¹ç«ã€ãããããŸããã ãã©ã°ã€ã³ãå®è¡ããã®ã«ååãªæ確ãããããšã¯ãŸã 確信ããŠããŸããã
æ å ±ã®å®æçãªããã¯ã°ã©ãŠã³ãããŒãªã³ã°ããµããŒãããããšããã€ã³ãã§ããå Žåã¯ããã®ããã®ãã©ã°ã€ã³ãèšèšããæ¹ãããå ŽåããããŸãã Dartã«ã¿ã€ããŒãå®è£ ããã®ã§ã¯ãªãããã€ãã£ãã³ãŒãã®ã¿ã€ããŒãä»ããŠåŒã³åºãããã³ãŒã«ããã¯ãDartã«ç»é²ã§ããããã«ããå¿ èŠããããŸãã Androidã®ãµãŒãã¹ã§ãããè¡ãããšãã§ããŸãã
ãŸã
KeepAliveâ¢Flutterã¢ããªãäœæããããã®ããŠããŒãããã°ç°¡åã§ãã
iOSã§ã¯ã Info.plist
ã«UIBackgroundModeãèšå®ããŠãã¢ããªã匷å¶çµäºãããå¯èœæ§ã倧å¹
ã«æžããããšãã§ããŸãã
Androidã§ã¯ã空ã®ãµãŒãã¹ãèšå®ããŸãã ããã¯äž»ã«AndroidManifest.xmlã®å€æŽãšç°¡åãªãµãŒãã¹ã¯ã©ã¹ã®å®è£ ã§ãã
äžè¬çãªKeepAliveãã©ã°ã€ã³ã¯ãiOSã§æåã»ããã¢ãããå¿ èŠã§ãããAndroidã§ãã©ã¢ã°ã©ãŠã³ã/ããã¯ã°ã©ãŠã³ããµãŒãã¹ã䜿çšãããã©ãããæ確ã§ãªããããæ©èœããªãããã§ãïŒãã©ã¢ã°ã©ãŠã³ããµãŒãã¹ã¯åŒ·å¶çµäºãå°é£ã§ãããæ°žç¶çãªéç¥ãå¿ èŠã§ãïŒã
ãã©ã¢ã°ã©ãŠã³ããµãŒãã¹ã䜿çšããŠããå Žåã§ããOSã¯äœããã®çç±ã§ããã»ã¹ã匷å¶çµäºããå¯èœæ§ããããŸãã
çæ³çãªãœãªã¥ãŒã·ã§ã³ã¯ãAndroidã®Alarm Managerãå©çšããå¿ èŠããããšæããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ãçŸåšå®è¡ãããŠããªãå Žåã§ããç¹å®ã®æéã«ã¢ããªã±ãŒã·ã§ã³ã³ãŒããå®è¡ããå Žåã察象ãšããŠããŸãã ããããããã§ãããã°ã€ã³ããFirebaseãŠãŒã¶ãŒãèªèšŒãããããŒã¿ããŒã¹ãžã®æžã蟌ã¿ãè¡ããããåãç¶æ ã§Dartããã»ã¹ãåèµ·åããã«ã¯ã©ãããã°ããã§ããããã
@pauldemarcoãããã£ãŠããã®ãã°...çŸåšãFlutterViewãå®è¡ãããŠããç¶æ ã§Dartã³ãŒããå®è¡ããæ¹æ³ã¯ãããŸããã ããã«ã¯ãã¢ã©ãŒã ãããŒãžã£ãŒããŠã§ã¢ã©ãã«/ãã€ãã£ããŠã£ãžã§ããããŒã¿åæããŸãã¯ããã·ã¥éç¥ãå«ãŸããŸãïŒãã ããæåŸã®ãŠãŒã¹ã±ãŒã¹ã¯åŸã ã«ãªããªããŸãhttps://github.com/flutter/flutter/issues/6192ïŒã
_åãç¶æ
_ã®åé¡ã¯ãFlutterã¬ãã«ã§ã¯ãªãã¢ããªã¬ãã«ã§è§£æ±ºããå¿
èŠããããšæããŸãã ãã€ãã£ãã¢ããªã®å Žåãåãåé¡ããããŸãã ããã»ã¹ãåæ¢ãããšãã©ããã«ä¿åããªãéãç¶æ
ãå埩ã§ããŸããïŒå
±æèšå®ãsqliteãªã©ïŒã ãããããDartã³ãŒãã§ãåãããšãããã§ãããã Flutterãã§ããããšã®1ã€ã¯ãiOSã§ã¯applicationWillTerminate
onSaveInstanceState
ãªã©ã®ã¡ãã»ãŒãžãäŒéããŠãããã«åããããšãã§ããããã«ããããšã§ãã
質åïŒ
runApp
ã®ããã«ïŒã¢ããªãæåã«å®è¡ããã«å®è¡ãããã³ãŒãããµããŒãããŸããïŒçŸåšãããã¯è¿ãå°æ¥ã«èšç»ãããŠããŸããã ããã¯å€§èŠæš¡ãªããã»ã¹ã§ãããããããã«è¡ãã«ã¯ãçæçãªåªå é äœãªã¹ãããå¥ã®ãã®ã移åããå¿ èŠããããŸãã
䜿çšäºäŸ
ããŸããŸãªééïŒ5ç§ã10åã30åã6æéïŒã§ã€ãã³ããèšé²ããããŸããŸãªæäœã¢ãŒãããããŸãã ã¢ããªãçŸåšå®è¡ãããŠãããã©ããã«é¢ä¿ãªãããã®ã³ã°ããã»ã¹ã確å®ã«å®è¡ãããããã«ããæ¹æ³ãå¿
èŠã§ãã
ã¢ããªã±ãŒã·ã§ã³ã®å®è¡ãããªã¬ãŒã§ããã·ã°ãã«ã¯äœã§ããïŒ
Androidã®å Žåãããã¯ãAlarmManagerã§ã¹ã±ãžã¥ãŒã«ãããã¢ã©ãŒã ããéä¿¡ãããPendingIntentãä»ããŠè¡ãããŸãã
çŸæç¹ã§ã¯ãããã«å¯Ÿå¿ããiOSã«ã€ããŠã¯ããããããŸããã
ã©ããããèµ°ããªããã°ãªããŸãããïŒ ããããã€ãªããªãããã©ããã£ãŠç¥ãã®ã§ããïŒ
ãŸããã€ãã³ãã«å¿ èŠãªæ å ±ãåéããå¿ èŠããããŸãããã®äžéšã¯éåæïŒGPSãã±ãŒã·ã§ã³ïŒã§ããã次ã«ã€ãã³ãããªã³ã©ã€ã³ããŒã¿ã¹ãã¢ïŒFirebaseïŒã«èšé²ããŸãã ãã®ããã»ã¹å šäœã¯æ倧30ç§ç¶ãå ŽåããããŸãã
ããã¯ã°ã©ãŠã³ãå®è¡ã«ã¯ã©ã®å®è¡ã¢ãã«ãå¿ èŠã§ããïŒ ïŒããšãã°ãå¥ã®åé¢ïŒã¡ã€ã³ã®dartïŒuiã¹ã¬ããã䜿çšããŸããïŒïŒ
ããã¯ç§ãã¡ã«ãšã£ãŠéèŠã§ã¯ãªããšæããŸããé«äŸ¡ãªèšç®ã¯è¡ããŸããã
ïŒrunAppã®ããã«ïŒã¢ããªãæåã«å®è¡ããã«å®è¡ãããã³ãŒãããµããŒãããŸããïŒ
ããã§ã®æå³ã¯ããããŸããã éåžžã®ã¢ããªã§ããžãã¹ããžãã¯ãšç¶æ ãåæåããã®ã§ãã¯ã©ãã·ã¥ã¬ããŒããªã©ãå©çšã§ããããã«ãæåã«ããããå®è¡ããã®ãæåã ãšæããŸãã
å¥ã®ãŠãŒã¶ãŒã±ãŒã¹ãè¿œå ã§ããŸãããã®æ©èœã ãããã¢ããªãå®æãããã®ã劚ããŠããŸãã ç§ã¯ãã®ããã®Androidã¢ããªãæã£ãŠããŠãçæ³çã«ã¯iOSã§ãåäœããæ°ããããè¯ãããŒãžã§ã³ãäœæããããšã«ããŸããã ç§ã¯iOSã®ã³ã³ããŒãã³ãã«ç²ŸéããŠããŸããïŒèª¿æ»ãããšãããiOSã®ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã¯Androidãããã¯ããã«å¶éãããŠããããšãããããŸããïŒãã䜿çšããAndroidã³ã³ããŒãã³ãã«ååãä»ããããšãã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®å®è¡ãããªã¬ãŒã§ããã·ã°ãã«ã¯äœã§ããïŒ
ã»ãšãã©ã®ã³ãŒãã¯ãAlarmManagerã®ã¢ã©ãŒã ã«ãã£ãŠãããªã¬ãŒãããŸãã
ãã ãã以åã®ã¢ã©ãŒã ãåé€ããããããããã€ã¹ã®èµ·åæããã³ããã±ãŒãžã®ã¢ããã°ã¬ãŒãæïŒandroid.intent.action.MY_PACKAGE_REPLACEDïŒã«ã³ãŒããå®è¡ããããã³ã«ããã®ã¢ã©ãŒã ãéå§ããŸãã
ã©ããããèµ°ããªããã°ãªããŸãããïŒ ããããã€ãªããªãããã©ããã£ãŠç¥ãã®ã§ããïŒ
çæ³çã«ã¯1ç§æªæºã§ãã å°ããªãããã¯ãŒã¯èŠæ±ãè¡ãããçµæãä¿æãããŸããå Žåã«ãã£ãŠã¯ãéç¥ã衚瀺ãããŸãã ãã®åŸãã¡ãœããã¯æ»ããŸãã
ããã¯ã°ã©ãŠã³ãå®è¡ã«ã¯ã©ã®å®è¡ã¢ãã«ãå¿ èŠã§ããïŒ ïŒããšãã°ãå¥ã®åé¢ïŒã¡ã€ã³ã®dartïŒuiã¹ã¬ããã䜿çšããŸããïŒïŒ
ç§ã«ãé¢ä¿ãããŸããã
ïŒrunAppã®ããã«ïŒã¢ããªãæåã«å®è¡ããã«å®è¡ãããã³ãŒãããµããŒãããŸããïŒ
ç§ã®å ŽåãäžåºŠå®è¡ããåŸã¯åé¡ãããŸããããããŒãã¬ã·ãŒããŒã®ãããªãã®ãå¯èœã§ããã°ãã¢ããªã以åã«èµ·åããŠããªããŠãå®è¡ããå¿ èŠããããŸãã
https://stackoverflow.com/questions/41924890/how-do-i-run-code-in-the-background-even-with-the-screen-offã¯ãFlutterã§æãå€ãé²èŠ§ãããŠããã¹ã¿ãã¯ãªãŒããŒãããŒã®è³ªåã§ããæããŠã :)ãã®ã¹ããŒã¹ã«ã¯ééããªãèå³ãããããã§ãã
https://github.com/flutter/flutter/issues/6192ãåã¢ã¯ãã£ãåãããFlutterViewãã¬ã³ããªã³ã°ãããŠããªããšãã«Dartã³ãŒããå®éã«å®è¡ããããã®åºæ¬çãªãµããŒããæäŸãããŸããã
ããã¯åœé¢ã®ã¬ãŒããŒã§ãããå°ãªããšãæ°ãæã¯ãããã§ãããã
ãã®ãã°ãã@zandersoã®å²ãåœãŠã解é€ããŠç³ãèš³ãããŸããããæ ¹æ¬çãªããã¯ã°ã©ãŠã³ãå®è¡ã®ãã°ã«åœŒãå²ãåœãŠãã€ããã§ããïŒïŒ6192ïŒ
CC @kasperl; ããŸããŸãªã¿ãŒã²ããéã§ããã¯ã°ã©ãŠã³ãã§ã³ãŒããå®è¡ããå€ãã®æ¹æ³ãæ€èšããŠããŸããããããããããããããã€ãã®åŠç¿ãåŒãåºãããšãã§ããŸãã
@ mit-mit調æ»çµæãäœããã®åœ¢ãŸãã¯åœ¢åŒã§ææžåããŸãããïŒ
ããã¯ã°ã©ãŠã³ãåŠçãå¿ èŠãªãã1ã€ã®çç±ã¯ãã¹ããªãŒãã³ã°ãªãŒãã£ãªã¢ããªãäœæããå Žåã§ãã ãŠãŒã¶ãŒã¯ã¢ããªãéããŠãªãŒãã£ãªã¹ããªãŒã ãéå§ããŸãã ããã¯ã°ã©ãŠã³ãããã»ã¹ã¯ã¹ããªãŒã ãããŠã³ããŒããããªãŒãã£ãªãåçããŸããçµäºã¯ã€ãã³ããåä¿¡ããŠââéå§/åæ¢/äžæåæ¢/ ff /å·»ãæ»ãçµäºã¯ã€ãã³ããéä¿¡ããŠUIãå€æŽããŸãïŒäŸïŒã·ãŒã¯ããŒãªãŒãã£ãªã¡ã¿ããŒã¿ãUIã«éä¿¡ããŸãïŒã ãŠãŒã¶ãŒãã¢ããªãé¢ãããšãã®ããã¯ã°ã©ãŠã³ãããã»ã¹ãå¿ èŠã§ããã¹ããªãŒã ã®ããŠã³ããŒã/åçãç¶è¡ããå¿ èŠããããŸãã
çŸåšãããã«åãçµãã§ããŸãã çŸæç¹ã§ã¯ETAã¯ãããŸããã
@zandersoã¯ããã«æŽæ°ãæçš¿ããŸããïŒ https ïŒ//github.com/flutter/flutter/issues/6192#issuecomment -342214725
@ a-sivaã¯ãããããŸã é²è¡äžã§ããããšãéç¥ããŸãã Androidã皌åããŠãããçŸåšiOSã«åãçµãã§ããŸãã
ããã«ã¯ãããã¯ã°ã©ãŠã³ãã§ãŠãŒã¶ãŒã®å Žæã远跡ããŠãç¹å®ã®æéïŒã€ãŸããã€ãã³ãäžïŒã«ç¹å®ã®å Žæã«è¡ã£ããã©ãããç»é²ãããŠãŒã¹ã±ãŒã¹ããããŸãã
@bjornbjornãã®ããã«ãžãªãã§ã³ã¹ã䜿çšããããšã¯ã§ããŸãããïŒ IOSã«äŒŒããããªãã®ããããã©ããã¯ããããŸãããããã®PlayãµãŒãã¹ãžãªãã§ã³ã¹ãå®çŸã§ããŸã
@Hixieã®ãã¥ãŒã¹ã¯ãããŸããïŒ ç§ã¯çŸåšãã¢ããªãããã¯ã°ã©ãŠã³ããµãŒãã¹ãšããŠå®è¡ããå¿ èŠããã段éã«ãããŸãïŒã¢ããªã®ã»ãšãã©ã¯Goã§èšè¿°ãããŠããŸãïŒããæçµçã«ã¯åŒ·å¶çµäºãããŸãã ç§ã¯JavaåŽã§ãã©ã¢ã°ã©ãŠã³ããµãŒãã¹ã®å®è£ ãéå§ããŸããããæçµçã«iOSçšã«åå®è£ ããå¿ èŠãããå Žåã¯ããªãåä»ã«ãªããŸãã
ãããæ¥é±ãŸãã¯æ¥æã«ã¢ã³ããã€ãã§å©çšå¯èœã«ãªããã©ããã®èŠç©ããã¯æ¬åœã«ãããããã§ã:)
@rusenaskã®è©³çŽ°ã«ã€ããŠã¯ã httpsïŒ//github.com/flutter/flutter/issues/6192ãåç §ããŠãã ãããããã§ãAndroidã«ãã®ãã©ã°ã€ã³ãè¿œå ãããŸããã https://pub.dartlang.org/packages/android_alarm_managerãã芧ã«ãªããèŠä»¶ãæºãããŠãããã©ããããç¥ãããã ããã
ããã¯ææã«èŠããããããç§ã®ã¢ããªããããŒã¢ã³ãã¹ã¿ã€ã«ãããã®ã¢ã©ãŒã ãããŒãžã£ãŒã§ãå®æçãªããŒã¹ããã®ãããªãã®ã«å€æŽããããšãã§ããŸãã ç®ãèŠãŸãã«ã¯ããã¥ãŒã¹ãæ¶è²»ããŠã·ã£ããããŠã³ããŸãã
ãã ããçæ³çã«ã¯ãããã»ã¹ãåžžã«ãã©ã¢ã°ã©ãŠã³ãã§å®è¡ã§ãããã®ã䜿çšããŸãã https://stackoverflow.com/questions/15758980/android-service-needs-to-run-always-never-pause-or-stop ã ã€ãŸããç§ã®ã¢ããªã¯ããããå®è¡ãããããã»ãšãã©ã®å Žåãå®è¡ããå¿ èŠããããŸãã
ãããå®äºãããšèŠãªãåã«ããããææžåããããšã確èªããå¿ èŠããããŸãã
æ°ããããã¥ã¡ã³ãã®åé¡ãéãå¿ èŠããããŸããïŒ
https://github.com/flutter/website/pull/802ã®FAQã«è¿œå
@ zanderso- @ mjohnsullivanã¯ãããã¥ã¡ã³ãåŽã®æè¯ã®é£çµ¡å ã§ãã
ETAã¯ããã£ãŠããŸããïŒ
@ it2bz ETAã¯æ£ç¢ºã«ã¯äœã§ããïŒ Androidã§ãµããŒãããŸããïŒ ããã¥ã¡ã³ããŒã·ã§ã³ïŒ iOSã§ãµããŒãããŸããïŒ äŸïŒ
AndroidãšiOSã§ã®@Hixieã®ãµããŒããšãå°ãªããšãåºæ¬çãªããã¥ã¡ã³ããšäŸ
iOSã®å Žåãããªããæããã®ãæ£ç¢ºã«è©³ãã説æã§ããŸããïŒ Appleã¯ãã¢ããªã±ãŒã·ã§ã³ãããã¯ã°ã©ãŠã³ãã§å®è¡ã§ããããšã«ã€ããŠå³ããå¶éãèšããŠãããããã©ã®APIã«æ¥ç¶ããããæ£ç¢ºã«ææ¡ããŠãããšäŸ¿å©ã§ãã
ãŠãŒã¶ãŒã®å Žæã«é¢ããæ©äŒã®ããã¯ã°ã©ãŠã³ãäœæ¥ãæ¢ããŠããŸã
ããã¯ãèæ¯ãå°ãããã¹ã¬ããã®ããã«èŠããã®ã§ãå§ããŸãããã ãã©ãã¿ãŒã䜿çšããŠé³æ¥œãã¬ãŒã€ãŒãå®è£ ãããã£ãã®ã§ãããã¢ããªãé»è©±ã§æå°åãããŠããŠããé³æ¥œãåçãç¶ããããšãïŒAPIã«é¢ããŠïŒå¯èœãã©ããã¯ããããŸããã Androidã§ã¯ãã¢ããªãéããŠãå®éã«ç¶è¡ã§ãããµãŒãã¹ãéå§ã§ããããšãç¥ã£ãŠããŸãã ãã®åŸãå¿ èŠã«å¿ããŠã¢ã¯ãã£ããã£ãåéããŸãã ä»ããã©ãã¿ãŒã§åæ§ã®ããšãå¯èœã§ããïŒ
@SirWindfieldæåã®çã¯ãåãã©ãããã©ãŒã ã®ãã€ãã£ãã¡ãã£ã¢ãã¬ãŒã€ãŒAPIã䜿çšããããšã§ããããã«ãããã¢ããªãšã¯å¥ã«åçãç¶ç¶ãããŸãã
@ kirbyfan64ããæããŸãããããããšãïŒ
@holospeedãããã¯Appleãããªãã«åºè·ãããªãã§ãããã¢ãããŒããªã®ã§ãç§ãã¡ã¯ãããèªåãã¡ã§å®è£ ããããšã«æéãè²»ãããããªããšæããŸãã ãã ããiOSã®å人çšã¢ããªã«é¢å¿ãããå Žåã¯ãã³ãã¥ããã£ãæäŸããããã±ãŒãžãšããŠpubã«å®è£ ããããšãæè¿ããŸãã
ãããã解決çã¯ããã¹ãŠããµããŒãããå¿ èŠã®ããæœè±¡çãªããã¯ã°ã©ãŠã³ãã¡ã«ããºã ãäœæããã®ã§ã¯ãªããããã¯ã°ã©ãŠã³ãã§ã®ãªãŒãã£ãªåççšã®ãã©ã°ã€ã³ãããã¯ã°ã©ãŠã³ãã§ã®GPS /ãã±ãŒã·ã§ã³çšã®ãã©ã°ã€ã³ãªã©ã®ç¹å®ã®ããã¯ã°ã©ãŠã³ããã©ã°ã€ã³ãäœæããããšã§ãã
ã¢ããªãããã¯ã°ã©ãŠã³ãã§å®è¡ããã¿ã€ããŒãå®è¡ããããšã¯å¯èœã§ããïŒ
ç¹å®ã®æéã«åæ¯ïŒ
2018幎3æ21æ¥æ°Žææ¥08ïŒ49ã DylanDrostnotifications @ github.comã¯æ¬¡ã®ããã«æžããŠããŸãã
ãã¶ã解決çã¯ã次ã®ãããªç¹å®ã®ããã¯ã°ã©ãŠã³ããã©ã°ã€ã³ãäœæããããšã§ã
ããã¯ã°ã©ãŠã³ãã§ã®ãªãŒãã£ãªåççšã®ãã©ã°ã€ã³ãããã³GPS /ãã±ãŒã·ã§ã³çšã®ãã©ã°ã€ã³
æœè±¡çãªèæ¯ãäœæããããšãã代ããã«ãèæ¯ãªã©ã§
ãã¹ãŠããµããŒãããå¿ èŠãããã¡ã«ããºã ãâ
ãã®ã¹ã¬ããã«ãµãã¹ã¯ã©ã€ãããŠããããããããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/flutter/flutter/issues/3671#issuecomment-374867947 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AK-c-E0KdEkvbH5uCBIM8FaAbYQkSU2tks5tghQWgaJpZM4IVsUk
ã
@ iBob101 android_alarm_managerãã©ã°ã€ã³ãandroid_intentãã©ã°ã€ã³ãšçµã¿åãããŠäœ¿çšââãããšããããå¯èœã«ãªããšæããŸãã
ç§ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãå¿ èŠãªãã¹ãŠã®ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã¯ãç¹å®ã®æéã«ããã¯ã°ã©ãŠã³ãã§ãªãŒãã£ãªãåçããããšã§ãããããã£ãŠã @ aegis123ã®ææ¡ã¯çŽ æŽããããšæããŸããå°ããªãã®ããå§ããŠãããã¯ã°ã©ãŠã³ãããã»ã¹ããµããŒãããã¡ã«ããºã ãæäŸããããšãã§ããŸãã
ããã¯ã°ã©ãŠã³ãã§é³æ¥œãåçããå Žåã«ããããå¿ èŠã§ãã
ç§ã¯ãããandroid_alarm_managerãã©ã°ã€ã³ã§ã©ã®ããã«è¡ãããããèŠãŠããŸããããåéã§ãããã®ããã runFromBundleãåŒã³åºãããšã«ãã£ãŠAndroidã§Dartã³ãŒããåŒã³åºãããŸãã åŒã³åºãããDarté¢æ°ã¯ãšã³ããªãã€ã³ãã«ãã£ãŠæå®ãããŸããããã®é¢æ°ã«æ å ±ãæž¡ãå¿ èŠãããå Žåã¯ã©ããªããŸããïŒ ãµã³ãã«ã®ãŠãŒã¹ã±ãŒã¹ã¯ãéç¥ãä»ããçŽæ¥è¿ä¿¡ãå¯èœã«ãããã£ããã¢ããªã§ãã ãã®ãªã³ã¯ã«åŸã£ãŠãéç¥ã¯ãªã¢ãŒãå ¥åãèš±å¯ããŸãããèªã¿äžããããããã¹ããDarté¢æ°ã«æž¡ããŠãå¿çãéä¿¡ã§ããããã«åŠçã§ããããã«ããããšã¯ã§ããªãããã§ãã
å¥ã®äŸã¯ãæ°ããé»åã¡ãŒã«ãåä¿¡ããããšãã«éç¥ã衚瀺ããé»åã¡ãŒã«ã¢ããªã±ãŒã·ã§ã³ã§ããã¢ã¯ã·ã§ã³ã¯ãDarté¢æ°ã«ãã£ãŠå®è¡ãããé»åã¡ãŒã«ãã¢ãŒã«ã€ãããæ©èœã®1ã€ãšããŠæ瀺ãããå ŽåããããŸãã ãã ãããã®é¢æ°ã¯ãã©ã®é»åã¡ãŒã«ãã¢ãŒã«ã€ãããå¿ èŠãããããç¥ãå¿ èŠããããŸãã
@MaikuB PRãäœæããŠãããŒãšå€ã®ãã¢ãä¿æã§ããèŸæžãæž¡ãããšãã§ããŸãã
äžè¬çã«èšã£ãŠãç§ã®äœ¿çšäŸã§ã¯ãandroidsServiceã³ã³ããŒãã³ãã«äŒŒããã®ãå¿ èŠã«ãªããŸãã ãŸãããã©ãã¿ãŒã¯ãåOSãæäŸã§ãããã¹ãŠã®APIãå©çšã§ããããã«èšèšãããŠããããã§ã¯ãªããããå®éã«ã¯ãkotlin / java oderswiftã§ã¢ããªãäœæããããšããå§ãããŸãã
@bkonyiã¯çŸåšããã®åé¡ã«ã€ããŠiOSã§äœãã§ããããæ€èšããŠãããšæããŸãã
ããã¯ãFlutterã§ããã¯ã°ã©ãŠã³ããµãŒãã¹ãå©çšã§ããªãããšãæå³ããŸããïŒ äŸïŒãµãŒããŒããããã·ã¥éç¥ããããã¢ãããããµãŒãã¹ã
@ s-bauerãã©ã¢ã°ã©ãŠã³ãéç¥ããªãéããAndroidã®å Žåãåžžã«å®è¡ããããšã¯ã§ããŸããããã³ãŒãã«startForeground
ã«ã€ããŠã®èšåã¯èŠã€ãããŸããã§ããã
ããªãã®ã¹ããã¯ã¯ããããŸããããAndroidã¹ããŒããã©ã³ã¯ãç»é¢ããªãã«ããŠåãããã«æ°æéåŸã«ãã£ãŒãã¹ãªãŒãç¶æ ã«ãªãããšãèŠããŠãããŠãã ããã ãã¹ãŠã®ãµãŒãã¹ïŒãã©ã¢ã°ã©ãŠã³ããé€ãïŒãã¹ã±ãžã¥ãŒã«ãããŸããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãããæåã§ãããšå€æããŸãã ç¹å®ã®èšå®ã§FCMããã®ããã·ã¥éç¥ãŸãã¯AlarmManagerããã®ã¢ã©ãŒã ã¯ãéçºè ãæããšãã«ãã€ã§ãAndroidããã€ã¹/ã¢ããªããŠã§ã€ã¯ã¢ããã§ããéçºè ã®å¶åŸ¡äžã«ãã2ã€ã®ãã®ã ãã§ãããæéã ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããããªãŒã«æé©ã§ãããšèãããã®ã«äŸåããä»ã®å€ãã®æ¹æ³ããããŸãã 詳现ã«ã€ããŠã¯ãå± ç ãã¢ãŒãã«ã€ããŠãåç §ããŠãã ããã https://developer.android.com/training/monitoring-device-state/doze-standby
iPhoneã§ã¯ç©äºã¯ã¯ããã«å¶éãããŠããŸãã
ãŸããFCMãŸãã¯APNSããããã·ã¥éç¥ãåä¿¡ããããã«ãµãŒãã¹ãŸãã¯æ¥ç¶ãåç¶ããªããã°ãªããªãçç±ãããããŸãããäœãã足ããªãã®ã§ã¯ãªãã§ããããã
ã¯ã€ãã¯ã¢ããããŒãïŒiOSã®ããã¯ã°ã©ãŠã³ãå®è¡ãå®è£ ãããã¬ãã¥ãŒçšã«æºåãããŠããŸãïŒPR flutter / engineïŒ5539ïŒã ãããå®çŸããããAndroidã®ããã¯ã°ã©ãŠã³ãå®è¡ãæŽæ°ããŠãäžè²«æ§ã®ããã€ã³ã¿ãŒãã§ã€ã¹ãå®çŸãããµã³ãã«ãã©ã°ã€ã³ãå ¬éããŸãã ããã¯ãã¹ãŠãææ«ãŸã§ã«è¡ãããããšãé¡ã£ãŠããŸãã
@bkonyiã¯ã https ïŒ//github.com/flutter/flutter/issues/17566ã®åé¡ã解決ããŸããïŒ
@piotrpalek ãããã§ãããã ããããŸããŸãªçç±ã§ã³ãŒã«ããã¯ã®UIåé¢ãå
±æã§ããªããªã£ããããåäœã¯ä»¥åãšã¯å°ãç°ãªãå¯èœæ§ããããŸãã ãã©ã¢ã°ã©ãŠã³ãUIãšã®éä¿¡ã¯ãåé¢ããŒãã MethodChannel
ããŸãã¯ã¡ã€ã³åé¢ãšã®ã¡ã¢ãªå
±æã«äŸåããªããã®ä»ã®æ¹æ³ã§ç¢ºç«ããå¿
èŠããããŸãã
ã¹ããŒã¿ã¹ã®æŽæ°ïŒiOSãšAndroidã®äž¡æ¹ã®ããã¯ã°ã©ãŠã³ãå®è¡ã®å€æŽã確èªãããŠãããåŒãç¶ãç¹°ãè¿ãããŠããŸãã ãã©ãã¿ãŒ/ãšã³ãžã³ïŒ5539ã§ã®iOSã®å€æŽã¯ã倧ããªå€æŽã®ãªã¯ãšã¹ãããªãéããæ°æ¥äžã«çéžããããšãæåŸ ããŠããŸãããã©ãã¿ãŒ/ãšã³ãžã³ïŒ5640ã§ã®Androidã®å€æŽã¯ãã¬ãã¥ãŒããã®ã³ã¡ã³ããåŠçããåŸãæ¥é±è¡ãããããšãé¡ã£ãŠããŸãã ãåŸ ã¡é ããŸããŠãããããšãããããŸãïŒ
çŽ æŽãããã ãããç§ã¯PRãäž¡æ¹ãšããã®åé¡ãåç §ããŠããã®ãèŠãŠããŸããã ãµã³ãã«ãã©ã°ã€ã³ã®äœæã«ã€ããŠãã£ããããŸããããiOSã®ãã©ã°ã€ã³ãèŠãããšããããŸãããAndroidã®ãµã³ãã«ã¯ãããŸããïŒ å€æŽãå ãããããã Androidã¢ã©ãŒã ãããŒãžã£ãŒãã©ã°ã€ã³ãæŽæ°ã§ãããšæããŸã
@MaikuB ãã¯ããflutter / engineïŒ5640ãèµ·åããflutter / pluginsïŒ642ãå®äºãããšãAlarmManagerãã©ã°ã€ã³ãæŽæ°ãããŸãã
ããã«ã¡ã¯ã ãã®ãããã¯ã«é¢ããæŽæ°ã¯ãããŸããïŒ è§£æ±ºã¯bucket7ãã€ã«ã¹ããŒã³ã«å»¶æãããŸããã æ¬åœã«ããã«çéžããã®ã§ããããïŒ ããã¯ç§ãã¡ã®ãããžã§ã¯ãã«ãšã£ãŠéèŠãªæ©èœã§ãã ãåçããããšãããããŸãã
æ®å¿µãªãããæ°æ¥éåªå é äœãå€æŽããå¿ èŠããããŸããããä»ã¯ããã«åãçµãã§ããŸãã ç§ãã¡ã¯_ã»ãŒ_ããã«ããã®ã§ããšãŠãèŸæ±åŒ·ãããŠãããŠããããšãïŒ
flutter / engineïŒ5539ãflutter / engineïŒ5947ãflutter / engineïŒ5954ããªãªãŒã¹ãããã®ã§ãAndroidãšiOSã§ã®ããã¯ã°ã©ãŠã³ãå®è¡ã«å¿
èŠãªãã¹ãŠã®æ©èœããšã³ãžã³ã«å®è£
ããã次ã®éã«ã¡ã€ã³ã®Flutterãªããžããªã«çµã¿èŸŒãŸããã¯ãã§ãããšã³ãžã³ããŒã«ã ããã¥ã¡ã³ããšäŸã¯çŸåšäœæäžã§ããã android_alarm_manager
ãã©ã°ã€ã³ã®ä¿®æ£ãã¬ãã¥ãŒäžã§ãïŒflutter / pluginsïŒ642ïŒã
@bkonyiã¯android_alarm_manager
ãIOã§åäœããããã«ãªããŸããïŒ
@ianldgs ãæ®å¿µãªãããããŸããã iOSã¯ãå®æçã«ã³ãŒããå®è¡ããããã®ã¡ã«ããºã ãæäŸããŠããªããããiOSã®å®è£ ãäœæã§ããªãå¯èœæ§ããããŸãïŒãã®SOã®æçš¿ãåç §ïŒã å€ãã®å Žåãå¶éãããããã¯ã°ã©ãŠã³ãå®è¡ã¢ãŒãã®1ã€ã䜿çšããŠåãç®æšãéæããããšãå¯èœã§ãïŒããšãã°ãéèŠãªäœçœ®ã®å€æŽãããã·ã¥éç¥ãBluetoothã®ç¶æ ã®å€æŽãªã©ïŒã
@bkonyi ãããã«ãããiOSã§ãã€ãã£ãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãé·æéïŒ3åïŒå®è¡ã§ããªããšããçŸåšçºçããŠããåé¡ãä¿®æ£ãããŸããïŒ
æ確ã«ããããã«ããããç§ãã¡ã®çŸåšã®åé¡ã§ã...
ããã¯ã°ã©ãŠã³ãïŒ
ç§ãã¡ã®ã¢ããªã¯ãBluetoothããŒã³ã³ã䜿çšããŠã誰ããå Žæãè²»ããæéã決å®ããŸãã ãã¹ãŠã®ããŒã³ã³ã³ãŒããAppDelegate.swiftã«ãã€ãã£ãã«èšè¿°ããŸããã
åé¡ïŒ
ããã¯ã°ã©ãŠã³ãå®è¡æéã延é·ããŠããã«ããããããããã±ãŒã·ã§ã³ã€ãã³ãïŒãã®å Žåã¯ãªãŒãžã§ã³ã®éå§/çµäºïŒã«ãã£ãŠãŠã§ã€ã¯ã¢ãããããåŸãããã¯ã°ã©ãŠã³ãã§ãã€ãã£ãã³ãŒããå®è¡ããŠãããšãæ°ç§åŸã«Flutterãã¢ããªãã·ã£ããããŠã³ããããã«èŠããŸãã
Flutterã«é¢é£ããŠãããšèããçç±ïŒ
ãã€ãã£ãiOSã¢ããªã§ãã€ãã£ãããŒã³ã³ã³ãŒãããã¹ãããŸãããã180ç§ã®ããã¯ã°ã©ãŠã³ãå®è¡æéãäžè²«ããŠååŸããããšã«åé¡ã¯ãããŸããã
ç§ãã¡ãè©ŠããããšïŒ
ç§ãã¡ãæåããå¯äžã®åé¿çã¯ãã¢ããªãããã¯ã°ã©ãŠã³ãã§èµ·åããããšãã«ãrunAppïŒïŒã®åã«mainïŒïŒã«30ç§ã®é
延ãèšå®ããããšã§ãã ãã ããããã¯ä»ã®åé¡ãåŒãèµ·ãããŠããŸãã
é·ã説æããè©«ã³ããŸãããããã¯ç§ãã¡ã«ãšã£ãŠå€§ããªåé¡ã§ãããä»åŸæ°é±éã§ãªãªãŒã¹ããããšããŠããŸãã
ãã®ä¿®æ£ã«ãã£ãŠåé¡ãä¿®æ£ãããããšãå¿ããæãã§ããŸãã
æåŸã«ãæ確ã«ããããã«ãããã¯ã°ã©ãŠã³ãã§dartã³ãŒããå®è¡ããããšã«ã€ããŠã¯ããŸãæ°ã«ããŸããã ããããç§ãã¡ã®äž»ãªé¢å¿äºã¯ãããã¯ã°ã©ãŠã³ãã§èµ·ãããããšãã«Flutterãã¢ããªãéäžã§çµäºãããªãããšã§ãã
ã©ããªå©ãã§ã倧æè¿ã§ãã
ããããšãïŒ
@AndrewPetrovicsæ®å¿µãªããããããã®å€æŽã¯äž»ã«ããã¯ã°ã©ãŠã³ãããDartã³ãŒããå®è¡ã§ããããã«ããããã®ãã®ã§ãããããããã§çºçããŠããåé¡ãä¿®æ£ããããšã¯æããŸããã ç§ã¯iOSã®ããã¯ã°ã©ãŠã³ãå®è¡ããªã·ãŒã«ããŸã粟éããŠããŸããããå®éã«ã¯Android + iOSã®ãžãªãã§ã³ã¹ãã©ã°ã€ã³ã«åãçµãã§ããŸããããã¯ããªãã®ãŠãŒã¹ã±ãŒã¹ã«äŒŒãŠããããã«èãããã®ã§ãäžåºŠçºçããåé¡ã«æ³šæããŸããä»æ¥/ææ¥iOSéšåãéå§ããŸãã
@ chinmaygarde ã @ AndrewPetrovicsãçµéšããŠããåé¡ã«ã€ããŠäœãç¥ã£ãŠããŸããïŒ ãã¶ããããã¯æ°ããåé¡ãæåºãã䟡å€ããããŸãã
@bkonyi ãããã§ããã ãšããããåé¿çãèŠã€ããããšã«ãªããŸããããããã¯éåžžã«ããããŒã§ãã æ©äŒãããã°å¥å·ãäœæããŸãã
ããããšãïŒ
@bkonyi android_alarm_manager 0.2.0ãpub.dartlang.orgã«å ¬éãããã®ã¯ãã€ã§ããïŒ
@ethaelã¯çŸåšå©çšå¯èœã«ãªã£ãŠããã¯ãã§ãæŽæ°ãå ¬éããããã®ã¢ã¯ã»ã¹èš±å¯ãååŸããã®ãåŸ ã£ãŠããŸããã
ããã«é¢ããäŸãããã¥ã¡ã³ãã¯ãããŸããïŒ
ããããšãïŒ
@Solban flutter / pluginsãªããžããªã«ã¯2ã€ã®äŸããããŸãã
AndroidïŒKotlinïŒãšiOSïŒObj-CïŒã®äž¡æ¹ããµããŒããããžãªãã§ã³ã¹ãã©ã°ã€ã³ããããŸãããããããã©ãã¿ãŒ/ãã©ã°ã€ã³ã§åäœãããã©ããã¯ããããŸããã
ããã¯ã°ã©ãŠã³ãå®è¡é¢é£ã®æ©èœã«é¢ãã䟿å©ãªããã¥ã¡ã³ãã¯æ¬¡ã®ãšããã§ãã
SendPort
ãªããžã§ã¯ããFlutterã«ç»é²ããã®ã«åœ¹ç«ã€IsolateNameServer ïŒããã«ã¯å®éã®ããã¥ã¡ã³ãããªãããã«èŠããŸãããã€ã³ã¿ãŒãã§ã€ã¹ã¯ããªãåçŽã§ãïŒãçŸåšãããã¯ã°ã©ãŠã³ãå®è¡æ©èœãåãããã©ã°ã€ã³ã®äœæã«é¢ããæ£åŒãªããã¥ã¡ã³ãã¯ãããŸããã ãã ããä»åŸæ°é±éã®ãã¡ã«ãããã¯ã°ã©ãŠã³ãå®è¡ãå©çšãããã©ã°ã€ã³ã®èšèšãå®è£ ãããã³äœ¿çšã®ããã»ã¹ã説æããäžçšåºŠã®æçš¿ãFlutterããã°ã«è¡šç€ºãããã¯ãã§ãã
ããã¯ã°ã©ãŠã³ãäœæ¥ãç¶ç¶ããããã®è§£æ±ºçã¯ãããŸããïŒ Androidã§é·æéå®è¡ãããŠããã³ãŒããç¶ç¶çã«å®è¡ããæ£ããæ¹æ³ã¯Foreground service
ã ãã§ãã
ãŠãŒã¹ã±ãŒã¹ã®äŸã¯ãGPSäœçœ®è¿œè·¡ãç¶ç¶ããããšã§ãã
@audkarã¯çŸåšãç¶ç¶çãªããã¯ã°ã©ãŠã³ãäœæ¥ãåŠçã§ãããã©ã°ã€ã³ã¯ãããŸãããããããã§ããªããšããæå³ã§ã¯ãããŸããã ïŒãžãªãã§ã³ã¹ãã©ã°ã€ã³ã«äœ¿çšããJobIntentService
ã®ä»£ããã«ïŒãã©ã¢ã°ã©ãŠã³ããµãŒãã¹ãšçµã¿åãããŠäžèšã§åç
§ããæ©èœãå©çšãããã©ã°ã€ã³ã¯æ£åžžã«æ©èœããŸãã
çŸåšã iOS / Androidããã¯ã°ã©ãŠã³ããžãªãã±ãŒã·ã§ã³/ãžãªãã§ã³ã¹SDKãFlutterã«ç§»æ€ããŠããŸãã flutter_background_geolocation
ãšåŒã°ããŸãã
Dart / Flutterã§çŽ5æ¥éã®çµéšããããŸãããããã¯ããããŸãã 2é±é以å ã«æºåãæŽãã¯ãã§ãïŒãã ããDartåºæã®äŸã§ã¯ããã¥ã¡ã³ãã«å°ãæéãããããŸãïŒã
ãã®SDKã¯5幎è¿ãåã®ãã®ã§ããããã«ã¿ã€ã ã§ãµããŒããããŠããŸãã ããšããšã¯ApacheCordovaçšã«éçºããããã®åŸReactNativeãšNativeScriptã«ç§»æ€ãããŸããã çŽç²ãªãã€ãã£ãã¢ããªã§ãæ©èœããŸãã å éšçã«ã¯ãåéçºãã©ãããã©ãŒã ã§äœ¿çšãããã®ãšåãã³ã¢Obj-c + Javaã©ã€ãã©ãªã§ãã
SDKã¯å ã ãã»ã«ãããã¯ãŒã¯ãç Žå£ãããå¯èœæ§ã®ããç°å¢ã§çœå®³ãŸãŒã³ïŒããªã±ãŒã³ãå°éãªã©ïŒã®ãã¡ãŒã¹ãã¬ã¹ãã³ããŒã远跡ããããã«éçºãããŸããã ã¢ããªãçµäºããããããã€ã¹ãåèµ·åãããããŠãã远跡ãç¶ç¶ããå¿ èŠããããŸããã ãã©ã°ã€ã³ã«ã¯ããµãŒããŒã«å Žæãèªåçã«ã¢ããããŒãããããã®ç¬èªã®SQLiteããŒã¿ããŒã¹ãšHTTPãµãŒãã¹ãå«ãŸããŠããŸãã ããã¯ãã¢ããªãçµäºããSDKã®ãã©ã¢ã°ã©ãŠã³ããµãŒãã¹ã®ã¿ãããããã¬ã¹ãã§å®è¡ãããŠããå Žåã®Androidã«ãšã£ãŠç¹ã«éèŠã§ãã
ïŒwarningïŒãã®SDKã¯ãœãŒã·ã£ã«ã¢ããªåãã«ã¯èšèšãããŠããŸããã ããã¯ããããªãŒã远跡ãã®ãŠãŒã¹ã±ãŒã¹ïŒã¿ã¯ã·ãŒãé éãµãŒãã¹ãç·æ¥å¯Ÿå¿ããžã§ã®ã³ã°ãªã©ïŒåãã«ç¹å¥ã«èšèšãããŠããŸãã
ãããç°¡åãªãã¢ãããªã§ãã
æäœã®å²åŠãåç §ããŠãã ããã
ç·šéå¥ã®ã©ã€ãã©ãªãflutter_background_fetch
ãšããŠç§»æ€ããŸããããã¯ã flutter_background_geolocation
ã®äŸåé¢ä¿ãšããŠå«ãŸããŸãã ãã®ã¢ãžã¥ãŒã«ã¯ãçŽ15åããšã«ããã¯ã°ã©ãŠã³ãã§iOS / Androidã¢ããªãèµ·åããå®æçãªäœæ¥ãå®è¡ããããã®30ç§ã®ããã¯ã°ã©ãŠã³ãæéãæäŸããŸãã 詳现ã«ã€ããŠã¯ã react-native
ããŒãžã§ã³ãåç
§ããŠãã ããã
ããããŸããã flutter_background_geolocation
ãå
¬ââéããŸããã ãã¡ãµãŒãã®ãã©ã°ã€ã³ã«ã¯ãã€ãã£ãã©ã€ãã©ãªãžã®ç©ŽããŸã ããã€ãããå¯èœæ§ããããããã¥ã¡ã³ãã®äŸã¯ReactNativeããŒãžã§ã³ãã翻蚳ããå¿
èŠããããŸãã
@christocracyè¯ããã¥ãŒã¹ã ããã¯ã°ã©ãŠã³ããã§ããã¯ã©ãã§ããïŒ ããã«é¢ããèŠç©ããã¯ãããŸããïŒ
@ethaelFetchã¯ããšçŽ2é±éã§ç»å ŽããŸãã ãšãŠãã·ã³ãã«ãªãã©ã°ã€ã³ã§ãã
@bkonyiããã¯ã°ã©ãŠã³ãå®è¡ãè©Šãããã«ããã±ãŒã·ã§ã³å€æŽãã©ã°ã€ã³ãè©ŠããŸããã ãããã¬ã¹ã©ã³ããŒããå®è¡ãããdartã³ãŒã«ããã¯ã¯ä»ã®ãã©ã°ã€ã³ã䜿çšã§ããã MissingPluginException
ã§å€±æããããã§ãã
Androidã§ã¯ãandroid_alarm_managerãã©ã°ã€ã³ã䜿çšããŠããã®åé¡ãAlarmService.setPluginRegistrant(this);
ã§è§£æ±ºããããã¯ã°ã©ãŠã³ããµãŒãã¹ãããã©ã°ã€ã³ãå
éšçã«ç»é²ããŸããã ããããiOSã§åçã®æ©èœãå®çŸããæ¹æ³ãããããŸããã
çŸåšãiOSã®ãããã¬ã¹ã©ã³ããŒããä»ã®ãã©ã°ã€ã³ãåŒã³åºãããšã¯å¯èœã§ããïŒ ãããããªããã©ã®ããã«ãã®ã³ã³ããã¹ãã§ãã©ã°ã€ã³ãç»é²ã§ããŸããïŒ
@bkonyiãã®åé¡ã¯è§£æ±ºãããŠããªããããå床éãå¿ èŠããããŸãã AlarmManagerã¯ãæéã€ãã³ãã®ã¿ããµããŒããããããããããåé¿çã®ããã«æãããŸãã Flutterã«ã¯ãã£ãšäžè¬çãªãã®ãå¿ èŠãªã®ã§ãããšãã°ãç¯å²å ã®Bluetoothããã€ã¹ãªã©ã®ç¹å®ã®ã€ãã³ãããªãã¹ã³ã§ããŸãã ãããŠãiOSãããè¯ããµããŒãããå¿ èŠããããŸãã iOSã®æ¹ãã¯ããã«å¶éãå³ããããšã¯ç解ããŠããŸãããFlutterã¯ãã€ãã£ãããã°ã©ããŒãå©çšã§ãããã®ããµããŒãããå¿ èŠããããŸãã
Flutterããå§ããããšã«è奮ããŸãããããã®ãããªåé¡ããããããããåçŽãªã¢ããªãé€ããŠãã¹ãŠäœ¿çšã§ããªããªã£ãŠããããã§ãã ç§ã¯ã°ãŒã°ã«ã«ãã£ãšæåŸ ããŠããŸããããããŠéçºè ã圌ããæ®ããäž»èŠãªã®ã£ãããåããããã«ãã©ã°ã€ã³ãäœãããšãæåŸ ããããšã¯åœŒãã®äžå ¬å¹³ã ãšæããŸãã
@ dude8604 Googleããã¹ãŠãæäŸããããã§ã¯ãããŸããããã¡ããããã©ã°ã€ã³ããšã³ã·ã¹ãã ã«æäŸããã®ã¯ãµãŒãããŒãã£ã®ãã©ã°ã€ã³éçºè ïŒç§ã®ãããªïŒæ¬¡ç¬¬ã§ãã ç§ã¯çŸåšèªåã§2ã€æã£ãŠããŠããŸãã
ç§ã¯CordovaãReact NativeãNativeScriptã§å€ãã®æéãéãããŸããã Flutterã䜿çšããŠ2é±éåŸã確ãã«ç©Žã¯ãããŸãããéåžžã«åªããŠãããšæããŸãïŒããšãã°ãã¯ãã¹ãã©ãããã©ãŒã ã®ãããã³ã³ããŒãã³ããè¿ãå°æ¥ã«è²¢ç®ãããšç¢ºä¿¡ããŠããŸãïŒã
ç§ã¯éå»5幎éãiOSãšAndroidã®ããã¯ã°ã©ãŠã³ãæäœïŒç¹ã«ãžãªãã±ãŒã·ã§ã³ãšãžãªãã§ã³ã·ã³ã°ïŒãå°éãšããããã®ãã©ã°ã€ã³éçºè ã§ãã äœãç¥ãããã§ããïŒ
@christocracyãµãŒãããŒãã£ã®ãã©ã°ã€ã³ãå¿ èŠã§ããããšã«åæããŸãããããã¯ã°ã©ãŠã³ãã§å®è¡ããããå°ãªããšãç¹å®ã®ã€ãã³ãã®ã³ãŒã«ããã¯é¢æ°ãç»é²ã§ããããšã¯ãã¢ããªãã¬ãŒã ã¯ãŒã¯ãæäŸãããã®ã®ããã§ãã ç§ã®åé¡ã¯ãã³ã¢æ©èœãæ¡åŒµããããã«ãã©ã°ã€ã³ãäœæããå¿ èŠãããããšã§ã¯ãªããåºæ¬çãªæ©èœãäžè¶³ããŠãããã¬ãŒã ã¯ãŒã¯ããªãªãŒã¹ããéçºè ããã®ã®ã£ãããåããããã«å¶å©äŒæ¥ã«ãã©ã³ãã£ã¢ã§åå ããããšãæåŸ ããããšã§ãã ãšã«ãããããã¯ãããè°è«ããã®ã«é©åãªå Žæã§ã¯ãããŸããã
ããã¯ã°ã©ãŠã³ããµãŒãã¹ãå®è¡ããŠç¹å®ã®ã€ãã³ããèªã¿åããããŒã¿ãåŠçããŠèšé²ããå¿ èŠã«å¿ããŠãæŒãããå Žåã«ã¡ã€ã³ã¢ããªãèµ·åããéç¥ãäœæããããšæããŸãã ã€ãã³ãã®äŸãšããŠã¯ãç¯å²å ã®æ°ããBluetoothããã€ã¹ããœã±ããã®åä¿¡ããŒã¿ãUSBããã€ã¹ããã®åä¿¡ããŒã¿ãSMSã®åä¿¡ãGPSã®å Žæã®å€æŽãBluetoothããã€ã¹ã®æ¥ç¶è©Šè¡ãç¹å®ã®ç©çãã¿ã³ã®æŒäžãå é床èšããŒã¿ãæå®ãããå€ãã¡ã€ã³ã¢ããªãçµäºããå Žåãããã³ç§ãèããŠããªãä»ã®å€ãã®ããšã 誰ããiOSãšAndroidã§åäœãããã®ããã®å æ¬çãªãã©ã°ã€ã³ïŒç¡æãŸãã¯ãªãŒãã³ãœãŒã¹ã©ã€ã»ã³ã¹ä»ãïŒãäœæã§ããã°ããã®åé¡ã¯è§£æ±ºã§ãããšæããŸãã ãããŠãFlutterã§éçºãéå§ã§ããããšãæ°žé ã«æè¬ããŸãã
@ dude8604ç§ã¯ããªãã欲ãããã®ãç¥ã£ãŠãããšæããŸãã ããã®å€ããè¡ãã«ã¯ãæããã«ãå¿ èŠãªæ°žç¶çãªéç¥ã䌎ããã©ã¢ã°ã©ãŠã³ããµãŒãã¹ãå¿ èŠã§ãã ãŠãŒã¶ãŒã¯å®è¡äžã®ãµãŒãã¹ãèªèããŠããŸãã
ç§ã®githubãããã¡ã€ã«ãä»ããŠç§ã«é£çµ¡ããŠãã ããã
React Nativeã¯åºæ¬çã«ããã¿ã³ãããã¹ããã£ãŒã«ãããªã¹ããã¥ãŒãååŸããæ®ãã¯ããªã次第ãã®ãããªãã®ã§ãããã³ãã¥ããã£ã®ãããã§çŸåšã®ç¶æ ã«æé·ãããšèããŠãã ããã Googleã¯ããã¹ãŠã®å®è£ ãåŠçã§ããªãå¯èœæ§ããããFlutterããŒã ãFlutterã®100åïŒ10,000åïŒïŒã®ãµã€ãºã®ããŒã ã«ãã£ãŠè¿œå ããããšãã«ãFlutterããŒã ãAndroidãšiOSã®äž¡æ¹ã«ãã£ãŠæäŸããããã¹ãŠã®æ©èœãè€è£œã§ãããšèããã®ã¯éåžžèã§ãã
android_alarm_manager
ãšimage_picker
ã¯ã Flutter 0.8.3-pre.47
ãå®è¡ããŠããæ°ãããããžã§ã¯ãã«å®è£
ããåŸãæ©èœããªãããã§ãïŒäž¡æ¹ãã€ã³ã¹ããŒã«ãããŠããå ŽåïŒã ã¢ããªã¯åŒ·å¶çã«éããŸãã ãã®äŸã¯æ©èœããŠãããããäŸã®ãã¹ãŠãã³ããŒããŠFirebaseãã»ããã¢ããããŸãããããŸã æ©èœããŠããŸããã
@deckerstãæèµ·ããåé¡ãè¿œå ããããã«ãä»ã®ãã©ã°ã€ã³ã䜿çšããã³ãŒããå®è¡ã§ãããšããç¹ã§AndroidãšiOSã«åçæ§ããªãå Žåã«ããããéãããšèŠãªãã®ãé©åãã©ããã¯ããããŸããã
ç·šéïŒããã远跡ããããã®å¥ã®åé¡ãããããšã«æ°ã¥ããŸãã
ã¡ããã©ãã®ããã«ããã®èšäºã¯ãããèŠãããšããªã人ã®ããã«ããã§åç
§ãããŸãïŒ
https://medium.com/flutter-io/executing-dart-in-the-background-with-flutter-plugins-and-geofencing-2b3e40a1a124
@slightfootã«æè¬ããŸãã ãããèŠãŸããããããŠããã¯ç§ãiOSãããã¬ã¹å®è¡ããã©ã°ã€ã³ã§åäœãããããã®ãã±ããïŒïŒ21925ïŒãèŠã€ãããšããã§ãã ãããã®2ã€ã®ãã±ããã®éã«åç §ããããšäŸ¿å©ã§ããã
é¢é£ããã¡ã¢ãšããŠãããšãã°ã¯ãã¯ããã¯ã®äžéšãšããŠããããã¬ã¹å®è¡ãå ¬åŒããã¥ã¡ã³ãã«å«ããèšç»ã¯ãããŸããïŒ ç§ã¯ããæããŸãããã¡ãã£ã¢ããã§ãã¯ããããšãç¥ããªãã³ãã¥ããã£ã®å€§éšåãååšããå¯èœæ§ãããããšãèãããšãå°ãã䟡å€ããããšæããŸãã
è¯ãç¹@MaikuB ãããã«ããã¥ã¡ã³ããã°ãè¿œå ããŸããïŒ
èæ¯-ãã©ãã¿ãŒãçŽæ¥ãµããŒãããŸããhttpsïŒ//www.youtube.com/watchïŒv = _LfjILXswJsãã芧ãã ããã
ããããããŸããã Flutterãããã¯ã°ã©ãŠã³ãå®è¡ããµããŒãããããã«ãªã£ãå Žåããã¥ãŒããªã¢ã«ã®ã»ãšãã©ããã©ãããã©ãŒã åºæã®ã³ãŒãã§ããã®ã¯ãªãã§ããïŒ
Outlook forAndroidãå ¥æããhttps://aka.ms/ghei36
å·®åºäººïŒ [email protected]
éä¿¡æ¥ïŒ2018幎9æ21æ¥éææ¥3:39:28 AM
å®å
ïŒãã©ãã¿ãŒ/ãã©ãã¿ãŒ
CcïŒãã£ãªããã»ã¯ã€ã¹; èšå
件åïŒReïŒ[flutter / flutter] Flutterã¯ãããã¯ã°ã©ãŠã³ãå®è¡ã®æœè±¡åãæäŸããå¿
èŠããããŸãïŒïŒ3671ïŒ
èæ¯-ãã©ãã¿ãŒãçŽæ¥ãµããŒãããŸããhttpsïŒ//www.youtube.com/watchïŒv = _LfjILXswJsãã芧ãã ããã
â
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHub https://github.com/flutter/flutter/issues/3671#issuecomment-423490126ã§è¡šç€ºããããã¹ã¬ããããã¥ãŒãããŸãhttps://github.com/notifications/unsubscribe-auth/ABWxFrGMGvfFtwkf025Q2Je6lUTZu2aPks5udMHggaJ
@ dude8604ãã¥ãŒããªã¢ã«ã¯ãç¹å®ã®ããã¯ã°ã©ãŠã³ãæäœãå®è¡ãããã©ã°ã€ã³ãéçºããããã©ã°ã€ã³éçºè åãã§ãã
ç¹å®ã®ãã©ã°ã€ã³ã®å©çšè ã¯ããã©ãããã©ãŒã åºæã®å®è£ ãïŒå¯èœãªéãïŒç¥ããªãã
ããã§ãã³ã³ã·ã¥ãŒããŒãšããŠãç§ã®ç¹å®ã®ãŠãŒã¹ã±ãŒã¹çšã®ãã©ã°ã€ã³ããªãå Žåãããã¯ã°ã©ãŠã³ãã§ä»»æã®ã³ãŒããå®è¡ããæ¹æ³ã¯ãããŸããïŒ
å·®åºäººïŒã¯ãªã¹ã¹ã³ãã[email protected]
éä¿¡æ¥ïŒ2018幎9æ22æ¥åææ¥17:43:16
å®å
ïŒãã©ãã¿ãŒ/ãã©ãã¿ãŒ
CcïŒãã£ãªããã»ã¯ã€ã¹; èšå
件åïŒReïŒ[flutter / flutter] Flutterã¯ãããã¯ã°ã©ãŠã³ãå®è¡ã®æœè±¡åãæäŸããå¿
èŠããããŸãïŒïŒ3671ïŒ
@ dude8604 https://github.com/dude8604ãã¥ãŒããªã¢ã«ã¯ãç¹å®ã®ããã¯ã°ã©ãŠã³ãæäœãå®è¡ãããã©ã°ã€ã³ãéçºããããã©ã°ã€ã³éçºè åãã§ãã
ç¹å®ã®ãã©ã°ã€ã³ã®å©çšè ã¯ããã©ãããã©ãŒã åºæã®å®è£ ãïŒå¯èœãªéãïŒç¥ããªãã
â
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHub https://github.com/flutter/flutter/issues/3671#issuecomment-423783230ã§è¡šç€ºããããã¹ã¬ããããã¥ãŒãããŸãhttps://github.com/notifications/unsubscribe-auth/ABWxFhmlurQ08wWXLmMvE3E6yQ_lYvS1ks5udtkkgaJp
@ dude8604ãããã
ç§ãçŸåšç¥ã£ãŠããéãïŒ
ãããã¯ã°ã©ãŠã³ãã§ä»»æã®ã³ãŒããå®è¡ãããããšã¯ã§ããŸããã Androidã¯çŸåšå³æ Œã§ãã iOSã¯åžžã«ããã§ãã
@ dude8604 ã@ christocracyã¯æ£ããã§ãã Mediumã®èšäºã§ç€ºãããŠããããã¯ã°ã©ãŠã³ãå®è¡æ©èœã¯ãDartã³ãŒããããã¯ã°ã©ãŠã³ãã§å®è¡ã§ãããã©ã°ã€ã³ãäœæãããéçºè ã察象ãšããŠããŸãã ã»ãšãã©ã®FlutterãŠãŒã¶ãŒã¯ããŠãŒã¹ã±ãŒã¹ã«äžèŽããæ¢åã®ãã©ã°ã€ã³ããªãéããããã¯ã°ã©ãŠã³ãå®è¡çšã®ãã©ãããã©ãŒã åºæã®ã³ãŒããäœæããå¿ èŠã¯ãããŸããããããã®ãã©ã°ã€ã³ã¯ãDartã€ã³ã¿ãŒãã§ã€ã¹ã®èåŸã«ãããã©ãããã©ãŒã åºæã®ã³ãŒããæœè±¡åããããã§ãã
android_alarm_manager
ãšimage_picker
ã¯ãFlutter 0.8.3-pre.47
ãå®è¡ããŠããæ°ãããããžã§ã¯ãã«å®è£ ããåŸãæ©èœããªãããã§ãïŒäž¡æ¹ãã€ã³ã¹ããŒã«ãããŠããå ŽåïŒã ã¢ããªã¯åŒ·å¶çã«éããŸãã ãã®äŸã¯æ©èœããŠãããããäŸã®ãã¹ãŠãã³ããŒããŠFirebaseãã»ããã¢ããããŸãããããŸã æ©èœããŠããŸããã
@ rupert2133ããå€ãã®æ å ±ã§åé¡ãæåºããŠããã ããŸãããïŒ éç¥ãå±ããŸãã®ã§ããæ°è»œã«ãé£çµ¡ãã ããã ãã®åé¡ã¯ãDartã³ãŒãã®ããã¯ã°ã©ãŠã³ãå®è¡ã®ããåºç¯ãªèŠä»¶ã«é¢ãããã®ã§ãããã¯ããŒãºãããŠãããããããã§ã®è¿œå ã®å¿çã¯åãããŠããŸãå¯èœæ§ããããŸãã
android_alarm_managerãšimage_pickerãïŒäž¡æ¹ãã€ã³ã¹ããŒã«ãããŠããå ŽåïŒåŸã«æ©èœããªãããã§ã
ããã¯ç§ã«æãåºãããŸãã æšæ¥ããã©ã°ã€ã³ã«ãããã¬ã¹Androidãå®è£
ããŠãããšãã«ãããã§googlemaps
ãããšã©ãŒãçºçããŸããã
ãã¹ãŠã®ãã©ã°ã€ã³ããããã¬ã¹ç¶æ
ã§åç»é²ããããšã registrar.activity() == null
ãªããŸãã
ã¢ããªãèµ·åããã«ã¯ãæåã§ããã¯ããå¿ èŠããããŸããã
public static void registerWith(Registrar registrar) {
final GoogleMapsPlugin plugin = new GoogleMapsPlugin();
+ Activity activity = registrar.activity();
+ if (activity != null) {
registrar.activity().getApplication().registerActivityLifecycleCallbacks(plugin);
registrar
.platformViewRegistry()
.registerViewFactory(
"plugins.flutter.io/google_maps", new GoogleMapFactory(plugin.state, registrar));
+ }
}
ããã¯ãå€æ°ã®ãã©ã°ã€ã³ã§åé¡ã«ãªããšæããŸãã
ããã¯ã°ã©ãŠã³ããµãŒãã¹ãå®è¡ããŠç¹å®ã®ã€ãã³ããèªã¿åããããŒã¿ãåŠçããŠèšé²ããå¿ èŠã«å¿ããŠãæŒãããå Žåã«ã¡ã€ã³ã¢ããªãèµ·åããéç¥ãäœæããããšæããŸãã ã€ãã³ãã®äŸãšããŠã¯ãç¯å²å ã®æ°ããBluetoothããã€ã¹ããœã±ããã®åä¿¡ããŒã¿ãUSBããã€ã¹ããã®åä¿¡ããŒã¿ãSMSã®åä¿¡ãGPSã®å Žæã®å€æŽãBluetoothããã€ã¹ã®æ¥ç¶è©Šè¡ãç¹å®ã®ç©çãã¿ã³ã®æŒäžãå é床èšããŒã¿ãæå®ãããå€ãã¡ã€ã³ã¢ããªãçµäºããå Žåãããã³ç§ãèããŠããªãä»ã®å€ãã®ããšã 誰ããiOSãšAndroidã§åäœãããã®ããã®å æ¬çãªãã©ã°ã€ã³ïŒç¡æãŸãã¯ãªãŒãã³ãœãŒã¹ã©ã€ã»ã³ã¹ä»ãïŒãäœæã§ããã°ããã®åé¡ã¯è§£æ±ºã§ãããšæããŸãã ãããŠãFlutterã§éçºãéå§ã§ããããšãæ°žé ã«æè¬ããŸãã
@bkonyiã§ã¯ãçŸåšãæ¢åã®ãã©ã°ã€ã³ã§ã§ããããšã¯ã©ãã§ããïŒ ãããã®ã€ãã³ããããŒãªã³ã°ããããã«AlarmManagerã䜿çšã§ããŸããïŒ ããããAlarmManagerã¯iOSã§ã¯æ©èœããŸããããïŒ
@ dude8604 iOSã§å®æçãªã€ãã³ããååŸããã®ã«æé©ãªã®ã¯ããbackground-fetchãAPIã䜿çšããããšã§ãã ãã®ãã©ã°ã€ã³ãããã«ãã©ãã¿ãŒã«ç§»æ€ããäºå®ã§ãã
iOSã®ãBackgroundFetchãAPIã¯ãçŽ15åããšã«ããã¯ã°ã©ãŠã³ãã§ã¹ãªãŒãç¶æ ã®ã¢ããªãèµ·åãïŒããã¯å¯èœãªéãæéã®ééã§ãïŒãã¢ããªã«æ£ç¢ºã«30ç§ã®ããã¯ã°ã©ãŠã³ãå®è¡æéãæäŸããŸãã ãã ããiOSã¯ïŒããããïŒæ©æ¢°åŠç¿ã䜿çšããããã€ã¹/ã¢ããªã®äœ¿çšã®æå»ãšé »åºŠã«åºã¥ããŠãããæå¶ããŸãïŒããšãã°ãå€ããŠãŒã¶ãŒãããããç ã£ãŠãããšãããã§ããã€ãã³ãã¯1æéã«1åçºçããå¯èœæ§ããããŸãã
@christocracy @bkonyiã§ã¯ãããããã¹ãŠãšããã«çžåœããAndroidããã©ã°ã€ã³ã«ããããšãã§ããŸããïŒ ã©ãããã°ããã«å¯Ÿããæ©èœãªã¯ãšã¹ããè¡ãããšãã§ããŸããïŒ
@ dude8604éæ³ã®æãš*poof*
ãæ¯ãã ãã§ã¯ãããŸããã äœæ¥çšæè¢ãã¯ããŠèªåã§äœããŸãã ããªããèªåã§ãããäœãããšãã§ããªããªãã°ãããªãã¯ããããããšãã§ãã誰ããèŠã€ããŠãããªãã¯åœŒãã«æ°äžãã«ãæ¯æããŸãã
@christocracyãã®éãã§ãããç§ã¯ãäžçæ倧ã®äŒæ¥ã®1ã€ãããã«æ©èœã®è£œåãéçºããããã®ãªãœãŒã¹ãæã¡ããŠãŒã¶ãŒãååã«äœ¿çšã§ããããã«ããããã«æ°äžãã«ãè²»ããå¿ èŠããªãããšãæãã§ããŸããã
ãããããã¯å€§äŒæ¥ã§ãã
åœè©²æ³äººããŸããéåšããŠããªãå人ã§æ§æãããŠããŸãã ç®±ããåºããŠããã«ãã¹ãŠãã«ããŒã§ãããã¬ãŒã ã¯ãŒã¯ã¯ãããŸããããããžã§ã¯ããè©ŠããŠã¿ããšãçãçãå±±ã«ãªã£ãŠããŸãããã§ãã
ãã©ãããã©ãŒã åºæã®APIã¯æ°çŸãããåäžã®ããŒã ãããããã«ããŒããããšã¯ãããŸããã èªåã§ãã€ã³ãããå¿
èŠããããŸãã
@ dude8604 ããã«æ©èœãã®å®çŸ©ã¯ç§ã®ãã®ãšåãã§ã¯ãªããšèããŠãã ããã 圌ãã®è²¬ä»»ã¯äº€å·®ç¹ãåŠçããããšã§ãã
ããã¥ã¡ã³ãããæ確ãªæ¹åæ§ã¯ãããŸããïŒ ãªãªãŒã¹ãã¬ãã¥ãŒ2ãããã¯ã°ã©ãŠã³ãå®è¡ããµããŒãããŠãããšèšã£ãŠããã®ãèŠãŸããã ããã€ãã®äŸãè¯ãã§ãããã
@ Pushan-Guptabackground-executionã¯ãã©ã°ã€ã³åºæã®ãã®ã§ãã
ããã¯ããªããäœãããããã«ãããŸãã å Žæã远跡ããŸããïŒ ããã·ã¥éç¥ãåãåããŸããïŒ ãžãªãã§ã³ã¹ãç£èŠããŸããïŒ BTããã€ã¹ãæ€åºããŸããïŒ ããŒã³ã³ïŒ é³æ¥œãåçïŒ
ãããã¯ã°ã©ãŠã³ãå®è¡ã®ãã¹ãŠã®ãµããŒããããããã¹ãŠãæ¯é ãã1ã€ã®ãªã³ã°ãã¯ãããŸãã
@christocracyç³ãèš³ãããŸããããç§ã¯ãããç¥ããŸããã§ããã ç§ã¯ç¹å®ã®ããšãç®æããŠããŸããã ã¢ããªããæçš¿ãªã¯ãšã¹ããäœæããããšããŸãã ããããæ¥ç¶ã¯ãªãã«ãªã£ãŠããŸãã ããã€ã¹ããªã³ã©ã€ã³ã«æ»ããšããã«ãã¢ããªãéããŠãããã©ããã«é¢ä¿ãªãããããã®æçš¿ãªã¯ãšã¹ãã®ãã¥ãŒãåŠçããå¿ èŠããããŸãã
äŸïŒWhatsappã¯ãã¡ãã»ãŒãžããµãŒããŒã«éä¿¡ããåã«ãã¥ãŒã«å ¥ããŸãã ããã€ã¹ããªãã©ã€ã³ã®å Žåããã¥ãŒãä¿åãããªã³ã©ã€ã³ã«ãªããšããã«ãµãŒãã¹ãæäŸããŸãã
ãšããã§ãç§ã¯PRãè¡ã£ãŠãããããã¯ã°ã©ãŠã³ãåé¢ã®ãã©ã°ã€ã³ç»é²ã«ã€ããŠè©±ãåã£ãŠããŸãã 誰ããäœãèããæã£ãŠãããªã...
çŸåšFlutterHeadlessDartRunner
ã®ãã€ã³ãã¯äœã§ããïŒ
ç§ã¯çŸåšAndroidã«ããã¯ã°ã©ãŠã³ãå®è¡ãå®è£
ããŠããŸãïŒãã©ã°ã€ã³ã¯FlutterNativeView(ctx, true)
ã ãã§ã¯ãããŸããïŒãããã¯ããç°¡åã§ããã
ããããiOSã§ã¯ã¯ã©ãã·ã¥ããŠããã ãã§ã
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: <strong i="10">@escaping</strong> () -> Void) {
let headless = FlutterHeadlessDartRunner.init()
headless.run(withEntrypoint: "main") // just EXC_BAD_ACCESS here
}
ããã
ãã©ãã¿ãŒiOSã®ãªãã€ã³ããŒã¢ããªãæäŒã£ãŠãã ãã
@MohdLuckyãããŠããªããå¿ èŠãšããå©ãã¯..ïŒ
@christocracy background_fetchãã©ã°ã€ã³ã®å®è£ ç¶æ ã«é¢ããææ°æ å ±ã¯ãããŸããïŒ
background_fetchãã©ã°ã€ã³ã®å®è£
ç¶æ
ãæŽæ°ããªãã§ãã ããã次ã®ãµã³ãã«ã³ãŒããæäŸããŠãã ããã
ããã¯ã°ã©ãŠã³ãéç¥ãå®è¡ããŠããŸãã
ããã«é¢ããæŽæ°...ããã¯ãã©ãã¿ãŒã®äžéšã ãšæ¬åœã«æã£ãŠããŸãã:( ..ããã¯ä»ã®Webãã€ããªãããœãªã¥ãŒã·ã§ã³ãšã»ãŒåãåé¡ã§ã...
@ radvansky-tomasãªã人ã
ã¯ããããã©ãã¿ãŒã®è²¬ä»»ã®ç¯å²å
ã«ãªãããšãç解ããªãã®ãåãããŸããã ããã¯ã°ã©ãŠã³ãå®è¡ããã€ãã£ãã«å®è£
ããå¿
èŠãããå Žåã§ããåäžã®ã³ãŒãããŒã¹ã®å©ç¹ããããŸãã ããã¯ã°ã©ãŠã³ãäœæ¥ãè¡ã1ã€ã®ãã©ãã¿ãŒãã©ã°ã€ã³ãäœæããã«ã¯ã1æ¥ã2æ¥ã®äœæ¥ããå¿
èŠãããŸããã åãåé¡ããããŸãããé³æ¥œãåçã§ããAndroidãµãŒãã¹ãå¿
èŠã§ããã ç§ã¯ãããkotlinã§äœæãããã©ãã¿ãŒã䜿çšããŠéä¿¡ã¬ã€ã€ãŒãå®è£
ããåŸã§iOSã§ãåãããšãè¡ããŸããã
ã·ã¹ãã ã®ãã€ãã£ãããã¯ã°ã©ãŠã³ãã·ã¹ãã ã䜿çšããããšã¯å®å
šã«å¯èœã§ãã
Xãå®è£
ãããŠããªãããšããã®èŸºãã§æ³£ãèšãèšã代ããã«ãããŒã ãæäŸãããšã³ã·ã¹ãã ã䜿çšããŠãæåéãåé¡ãªãå®è£
ã§ããŸãã
@SirWindfieldæ®å¿µãªãããããªãã¯äœã«ã€ããŠè©±ããŠããã®ãããããŸããã ããã¯ããã©ã°ã€ã³èªäœã§ã¯ãªããã¢ãŒããã¯ãã£ã®éèŠãªéšåã§ãã
Flutterã¯ããã€ãã£ãã³ãŒããçæããã¯ãã¹ãã©ãããã©ãŒã ãœãªã¥ãŒã·ã§ã³ãšããŠæäŸãããŸããã€ãŸããOSã§èš±å¯ãããŠããå Žåã¯ãã€ã§ãããã®èšèªïŒDartïŒã§ã³ãŒããå®è¡ã§ããããšãæåŸ ãããŸãã
ãããã£ãŠããªã¢ãŒãéç¥ãåä¿¡ããåŸã«ã¢ããªãå®è¡ãããŠããŠãæ¢åã®ãã€ãã£ãã³ãŒãã«ãã¬ãŒã¯ãã€ã³ããèšå®ã§ããå Žåã¯ããµãŒãã¹ãã¢ãã«ããããŠæåŸã«UIããããã©ãã¿ãŒ/ããŒãã³ãŒããåŒã³åºãããšãã§ããã¯ãã§ãã
ããªãã®å Žåã«ãããäœãããã«...ããªãã®é³æ¥œãããã¯ã°ã©ãŠã³ãã§åçãããŠãããšããŸããããããŠããªãã¯ããªãã®ãã¬ã€ãªã¹ããçµäºããŸã... 10ååŸã«ããªãã®ã¢ããªã¯ã·ã£ããããŠã³ããŸãã 次ã«ãsiriãåŒã³åºãããããããã©ã³ã䜿çšããŠãéžæãããšã³ããªãã€ã³ãã«é¢ä¿ãªããã¢ããªã®åçãåéããŸã...ãã€ãã£ãã³ãŒãã¯å®è¡ãããŸãããUIã¯å®è¡ãããŸããããã©ãã¿ãŒã³ãŒãã¯åæåããããéç¥ã®ãšãã倱ãããŸãã
ãããã£ãŠãäžå¯èœã§ã¯ãããŸããããã€ãã£ããã©ã°ã€ã³ãã£ããéç¥ãäœæã§ããŸãããããŒã¿ãåŠçããããã«ãã©ãã¿ãŒããžãã¹ããžãã¯ã«ã¢ã¯ã»ã¹ããå¿ èŠããããŸããç§ã®å Žåã¯ãæå·åŸ©å·åããŠã埩å·åãããã³ã³ãã³ãã§ããŒã«ã«éç¥ã解æŸããŸãã
ç§ã¯ãããç§ã®é»è©±ã§åºç¯å²ã«ãã¹ãããŸããããããŠããã¯äœã®åé¡ããªãåäœããŸãã
ç§ã®é»è©±ãã¢ããªã殺ããããšã¯ãªããããããŸããã ç§ã®æªãæã
@christocracy background_fetchãã©ã°ã€ã³Chrisã«é¢ããæŽæ°ã¯ãããŸããïŒ
@ethaelãããæŽæ°ãç£èŠããããã®ç©ºã®ãªããžããªã§ãã
https://github.com/transistorsoft/flutter_background_fetch
@ radvansky-tomasããã¯ã°ã©ãŠã³ãå®è¡ã«é¢ãããã®äžçšåºŠã®æçš¿ã§èª¬æãããŠããããã«ãããã¯ã°ã©ãŠã³ãåé¢ãäœæããããšã§ãDartã³ãŒãã§ããã¯ã°ã©ãŠã³ãã€ãã³ããåŠçã§ããŸãã å¿ èŠãªããšãå®è¡ãããã©ã°ã€ã³ããã§ã«ååšããªãéããç¹å®ã®ããŒãºã«åãããŠãã©ãããã©ãŒã ããšã«ãã€ãã£ãã³ãŒããäœæããå¿ èŠããããŸãïŒçŸæç¹ã§ã¯ããã¯ã°ã©ãŠã³ãå®è¡ããµããŒãããå€ãã®ãã©ã°ã€ã³ãç¥ããªãããã§ãïŒã
@bkonyiè¿ä¿¡ããããšãããããŸããããã¯ã°ã©ãŠã³ãå®è¡ããµããŒãããããã«firebase_messagingãã©ã°ã€ã³ãå€æŽãå§ããŸãã...ãããããã®åé¡ã¯ãããè¡ãããã®äžè¬çãªæ¹æ³ã«é¢ãããã®ã§ãã ã€ãŸããããã¯template = runnerã®äžéšã§ãããéçºè ããã®ãããªãããã¬ã¹ã³ãŒããããã€ãã®ã«ãŒã«ããã¿ãŒã³æšæºãå®è¡ã§ããããŒããµã€ãã§ããå¿ èŠããããŸãã
è¡ãããããã€ãã®åæäœæ¥ïŒ https ïŒ//github.com/radvansky-tomas/plugins/tree/master/packages/firebase_messaging
https://github.com/bkonyi/FlutterGeofencingããã®ããã€ãã®ã¬ã€ãã«åŸã
ç§ã¯ä»é±ã®çµãããŸã§ã«ãããçµããã¹ãã§ããç§ã¯ä»ã®ãšããiOSãããã ãã«åãçµãã§ããŸãã ãããžã§ã¯ãã®äŸã§ã¯ãããŒã«ã«éç¥ãã©ã°ã€ã³ã䜿çšããŠãã¡ãã»ãŒãžãããã¯ã°ã©ãŠã³ãã§åä¿¡ãããããšã瀺ãïŒãµã€ã¬ã³ãéç¥ïŒãæ°ããããŒã«ã«ã¡ãã»ãŒãžããªãªãŒã¹ããŠãæåã瀺ããŠããŸãã
è¡ãããããã€ãã®åæäœæ¥ïŒ https ïŒ//github.com/radvansky-tomas/plugins/tree/master/packages/firebase_messaging
https://github.com/bkonyi/FlutterGeofencingããã®ããã€ãã®ã¬ã€ãã«åŸã
ç§ã¯ä»é±ã®çµãããŸã§ã«ãããçµããã¹ãã§ããç§ã¯ä»ã®ãšããiOSãããã ãã«åãçµãã§ããŸãã ãããžã§ã¯ãã®äŸã§ã¯ãããŒã«ã«éç¥ãã©ã°ã€ã³ã䜿çšããŠãã¡ãã»ãŒãžãããã¯ã°ã©ãŠã³ãã§åä¿¡ãããããšã瀺ãïŒãµã€ã¬ã³ãéç¥ïŒãæ°ããããŒã«ã«ã¡ãã»ãŒãžããªãªãŒã¹ããŠãæåã瀺ããŠããŸãã
@goderbauerãšç§ã¯å®éã«ãã®ãµããŒããè¿œå ããããšãæ€èšããŠããŸãããããã«ãªã¯ãšã¹ããè¡ãäºå®ãããå Žåã¯ãèšèšãšã¬ãã¥ãŒãåãã§ãæäŒãããŸãã
ããã§ããã®éšåã¯ã»ãŒå®äºããŸãããããã§ããµã€ã¬ã³ãããã·ã¥éç¥ãåä¿¡ã§ããããã«ãªããã¢ããªãããã¯ã°ã©ãŠã³ãã«ãããšãã«dartã§èšè¿°ãããã³ãŒã«ããã¯ãå®è¡ãããŸãã
ãã ããä»ã®ãã©ã°ã€ã³ã«ã¯ã¢ã¯ã»ã¹ã§ããŸããã ã³ãŒã«ããã¯ã¯ã«ãŒã/éçã¡ãœããã§ããå¿ èŠããããå®éã«ã¯ããããäœããåŒã³åºãæ¹æ³ãååŸããŸããã
ããã§ããµã€ã¬ã³ããªéç¥ãåä¿¡ããåŸããã©ãã¿ãŒããŒã«ã«éç¥ãã©ã°ã€ã³ã䜿çšããŠããŒã«ã«éç¥ãéä¿¡ãããšããç°¡åãªãã¹ããè©Šã¿ãŸãããããã©ã°ã€ã³ã«ã¢ã¯ã»ã¹ã§ããªãããã§ãïŒç»é²ãããŠããŸãããïŒïŒ
ç§ã¯ããã§åæ§ã®æçš¿ãèŠã€ããŸããïŒ https ïŒ//github.com/flutter/engine/pull/6396
ãããã®ãã©ã°ã€ã³ãããŒãããããã«ç§ãããªããã°ãªããªãä»ã®å¿ èŠãªã¹ãããã¯ãããŸããïŒ
ç§ã®ã«ãŒãã¬ãã«ã®ã³ãŒã«ããã¯ïŒ
void callback(FirebaseMessage m, MessageEvent e) async {
print('Message $m Event: $e');
final SendPort send =
IsolateNameServer.lookupPortByName('messaging_send_port');
send?.send(e.toString());
}
åé¡ã¯ããã®ã³ãŒã«ããã¯ãããã¹ãŠã®dartã³ãŒããšãã©ã°ã€ã³ã«ã¢ã¯ã»ã¹ããæ¹æ³ã§ã¯ãããŸãã...ã¯ãšãªfirestoreãªã©
ç§ã®BackgroundFetchã®å®è£
ãã€ãã«ãªãªãŒã¹ãããŸããã
background_fetch
@christocracyãã®éãã§ãããç§ã¯ãäžçæ倧ã®äŒæ¥ã®1ã€ãããã«æ©èœã®è£œåãéçºããããã®ãªãœãŒã¹ãæã¡ããŠãŒã¶ãŒãååã«äœ¿çšã§ããããã«ããããã«æ°äžãã«ãè²»ããå¿ èŠããªãããšãæãã§ããŸããã
ããã¯æ¬åœã§ãã ããªãã人ã ã®æéãåŸããªãã°ãããªãã¯åœŒãã«äœããè¿ãã¹ãã§ãã ããã§ãªãå Žåã¯ããããã®æŽŸæãªããŒã±ãã£ã³ã°ã¿ã€ãã«ãäœæããªãã§ãã ããïŒ
ãã®åé¡ã¯ãŸã 人ã ã®æ©ã¿ãåŒãèµ·ãããŠããããã§ããïŒ ééãããŠãããã³ã¡ã³ããå€ãã®ã§ãä»åããå ·äœçãªãããžã§ã¯ãå€æŽãè¡ãå¯èœæ§ã¯äœãã§ãã ïŒïŒïŒç§ãæåŸ ãããããªãé²æ©ãéããããã«ãæ°ãããã®ãæåºããå¿ èŠããããŸããïŒ
ããã§æãŸããå ·äœçãªå€æŽãææžåããããšã«éåžžã«èå³ããããŸãã ããå€ãã®èæ¯ã®äŸãæãŸããŠããããã«èãããŸããïŒ ïŒäŸïŒhttpsïŒ//github.com/flutter/flutter/issues/23794ïŒ
ãããã«ãããåå¥ã®è³ªåã«åå¥ã®åé¡ãæåºããŠããããããšæããŸãã ä»ã®äººãäžã§è¿°ã¹ãããã«ãFlutterã¯å€§èŠæš¡ã§è€éãªãããžã§ã¯ãã§ãããããGoogleã«ã¯å€§èŠæš¡ãªïŒãããŠæ¥éã«æ¡å€§ããŠããïŒããŒã ããããŸããããã¹ãŠã®åé¡ã«åæã«çããã®ã«ååãªãšã³ãžãã¢ãFlutterã«ãã«ã¿ã€ã ã§åãçµãã§ããŸããã Flutterã¯100ïŒ ãªãŒãã³ãœãŒã¹ã§ããããã¹ãŠã®åé¡ã¯GitHubã«ãããŸãã ãã¡ããããããã¯ãã€ã§ã倧æè¿ã§ãã :)
å¿ èŠãªåé¡/å€æŽãããå Žåã¯ãæ°ããåé¡ãæåºããŠããã¹ãŠã®å¯çš¿è ã«ç§ãã¡ãããã«æ¯æŽã§ããæ¹æ³ãç¥ãããŠãã ããïŒ https ïŒ//github.com/flutter/flutter/issues/new
ããããšãïŒ
@eseidelãã£ã¬ã³ãžãåãå ¥ããããŸããïŒïŒ24278
ããã€ã¹åºæã®ã³ãŒããèšè¿°ããããFlutter Dart APIãå®è£ ãããããããšã¯ãããã€ã¹ãšOSã®ä»æ§ãšç¹å®ã®å®è£ ãé ãã€ãã³ãã«åºã¥ããŠããå¯èœæ§ããããŸãã
ãã§ã«ããã§è§£æ±ºããŸãã
@ Krunal79-æ£ç¢ºã«ã¯ããã®ã¢ãããŒãã§ãåãåé¡ãçºçããŸãã ããªãã®ã·ããªãªã§ã¯ããã©ãã¿ãŒã¯ãã§ã«åæåãããŠããããã®ãšãã¯é©åãªããã¯ã°ã©ãŠã³ãã¢ã¯ã»ã¹ã§ã¯ãããŸããã ç§ãæã£ãŠãããã®ãšæã£ãŠãããã®ãçºè¡ããŸããã¢ããªãå®éã«åæ¢ãããµã€ã¬ã³ãéç¥ïŒãŸãã¯ã¢ããªæ¡åŒµæ©èœïŒã«ãã£ãŠã¢ããªããŠã§ã€ã¯ã¢ãããããã©ãã¿ãŒããŸã å®è¡ãããŠããªãïŒã€ãŸãUIãååšããªãïŒãšãã«ãdartãããžãã¯ãå®è¡ããå¿ èŠãããå Žåã§ãã
ããã¯ãFlutterããŒã ã管çããŠãã人ã«ãšã£ãŠã¯ã¯ããã«åªå 床ã®é«ãåé¡ã«ãªãã¯ãã§ãã ããã¯ã°ã©ãŠã³ãæ©èœã®å®è£ ã¯ãå¹³åçãªFlutteréçºè ã«ãšã£ãŠå€§ããªèŠçã§ãããå€ãã®å ŽåãéèŠãªæ¹æ³ã§æ©èœããªããªããŸãã ãããŠãç§ã¯å€ãã®ã¢ããªéçºè ãçŸåšããã«èŠåŽããŠãããšç¢ºä¿¡ããŠããŸãã
@ tomoerlemans010https ïŒ //github.com/flutter/flutter/issues/3671#issuecomment-438113161ã®ã³ã¡ã³ããåç §ããŠãã ããã
ãã®ç¹å®ã®åé¡ã¯ã¯ããŒãºãããŠããŸããããã¯ã°ã©ãŠã³ãå®è¡ã«é¢é£ããä»ã®æªè§£æ±ºã®åé¡ã«ã³ã¡ã³ããè¿œå ããããçŽé¢ããŠããåé¡ã§æ°ããåé¡ãäœæããŠãã ããã
æãåèã«ãªãã³ã¡ã³ã
ã¯ã€ãã¯ã¢ããããŒãïŒiOSã®ããã¯ã°ã©ãŠã³ãå®è¡ãå®è£ ãããã¬ãã¥ãŒçšã«æºåãããŠããŸãïŒPR flutter / engineïŒ5539ïŒã ãããå®çŸããããAndroidã®ããã¯ã°ã©ãŠã³ãå®è¡ãæŽæ°ããŠãäžè²«æ§ã®ããã€ã³ã¿ãŒãã§ã€ã¹ãå®çŸãããµã³ãã«ãã©ã°ã€ã³ãå ¬éããŸãã ããã¯ãã¹ãŠãææ«ãŸã§ã«è¡ãããããšãé¡ã£ãŠããŸãã