kosukesaigusa / mottai-flutter-app Goto Github PK
View Code? Open in Web Editor NEWðð¥ A FlutterFire app to look for primary industry workers with map based UI for NPO MOTTAI.
ðð¥ A FlutterFire app to look for primary industry workers with map based UI for NPO MOTTAI.
json (jsonc) ãã¡ã€ã«ã Dart ã® CLI ããã°ã©ã ã§èªã¿èŸŒããããã«ããã
user.linkWithCredential() ã¡ãœããã§è€æ°ã®ãœãŒã·ã£ã«ãã°ã€ã³ãçµã³ã€ãã
ç»é²æžã¿ã®ãœãŒã·ã£ã«ãã°ã€ã³ã®çš®é¡ãç»é¢ã«è¡šç€ºãã
2022-mm-dd
pull requestãäœæããããšãã«ãflutter analyzeãã®github actionsãå®è¡ããããã«ãªã¯ãšã¹ããäœæããã
ãŸãããã©ãŒãããããããããããã«ã.vscode/setting.jsonãã«èªåãã©ãŒãããããèšå®ãå°å
¥ããã
ãã«ãªã¯ãšã¹ãã®ããã·ã¥æãšãã«ãªã¯ãšã¹ããžã®ã³ãããæã«ãflutter analyzeããå®è¡ãããããš
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
Firebase Auth 㧠Google/Apple ã§ã®ãµã€ã³ã€ã³ãã§ããããã«ããã
packages/mottai_flutter_app/lib/auth/auth.dart ã® AuthService
ã«å®è£
ãããšè¯ãããã
åŸã§ LINE ã®ã¡ãœãããè¿œå ãããSignInMethod
ã¿ãã㪠enum ã«apple
, google
, line
ãå®çŸ©ããŠäžã§åŠçãåå²ããã®ãè¯ãããïŒä»ã«è¯ãææ¡ãããã°ãã¡ããåãä»ããŸãïŒã
åºæ¬çã«å ¬åŒããŒãžã«åŸããå¿ èŠãªããã±ãŒãžã¯è¿œå ããŠè¯ãã
https://firebase.flutter.dev/docs/auth/social/
ã¯ãããŠãµã€ã³ã€ã³ããå Žåã«ã¯ãåŸãããæ å ±ã§ worker ããã¥ã¡ã³ããäœæã§ããããã«ããã
UI ã¯ãšãããã Apple, Google ã®å¯©æ»ã«éããããªãã¿ã³ãå®è£ ã§ããŠããã° OKã
https://pub.dev/packages/sign_in_button ããã±ãŒãžã䜿çšãããšè¯ãããã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
auto_route ã䜿ã£ãŠãBottomNavigationBar ãåžžã«ç¶æãããããã²ãŒã·ã§ã³ãå®è£ ãããiOS ã® Twitter ã¢ããªãªã©ã®ã€ã¡ãŒãžïŒæè¿è¿œå ãããåæã« BottomNavigationBar ãæ¶ããä»æ§ã¯ç䌌ããªãã§ã»ããïŒãã€ãŸããç»é¢ã push ããŠã BottomNavigationBar ã¯æ®ãããã«ã
ãã®èšäºïŒ
https://zenn.dev/flutteruniv_dev/articles/20230427-095829-flutter-auto-route
ãåèã«ããŠã§ããªãã ãããã
ãšæã£ããã©ãåã« CupertinoTabScaffold
ã䜿ãã ãã§ããã£ããããããªãããã ã iOS ã£ãœããŠã£ãžã§ããã䜿ãã®ã¯ã©ããªãã ãšããæ°æã¡ããããã©ãèŠãç®ãå€ãããªããªãããæ°ãããïŒãããã BottomNavigationBar
ãæ®ãããŸãŸç»é¢é·ç§»ããã®ã iOS ã£ãœãæåã ãïŒ
BottomNavigationBar ã§äžŠã¹ãããŒãžã¯ Figma ã«åŸããBottomNavigationBar ãååšããŠãã芪çãªããŒãžã¯ RootPage
ãšã§ãååãã€ãããšè¯ãããããããŸã¯ DevelopmentItems
ããŒãžã '/'
ã«ãªã£ãŠãããããã®å®è£
ãæ©ã« RootPage
ã«å·®ãæ¿ããã
RootPage
ã® DevelopmentItems
ããŒãžã¯ãŸãããš Drawer ã®äžã«æŒã蟌ãããšè¯ãããããªã
ãã®å¯Ÿå¿ãããçµæããã¡ããš appScaffoldMessengerController
ã«ããã¹ããã¯ããŒè¡šç€ºããã€ã¢ãã°è¡šç€ºãåããŠãããã確èªããŠã»ããã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ä»äºã®è©³çŽ°ç»é¢ã«å¿ èŠãª Work? ã¢ãã«ã®å®çŸ©ãšããã®è©³çŽ°ç»é¢ãããã¹ããšã®ãã£ãããå§ããããããã«ãã
ãã¹ãã¢ã«ãŠã³ãã 10 åãããäœã£ãã»ããè¯ããã
2022-mm-dd
éžæäžã® Marker ã® z-index ãäžã«ãã
2022-03-04
dev, prod ã§ç°å¢ãåããããããã«ããã
åºæ¬çã«ããïŒ
https://zenn.dev/altiveinc/articles/separating-environments-in-flutter
ã«åŸãã
ã¢ããªåããã³ãã« IDãFirebase ã®ãããžã§ã¯ããåããããããã«ãããflutterfire_configure ã®çæç©ãåããå¿ èŠããããšæãã
å ããŠããã®èšäºïŒ
https://zenn.dev/flutteruniv_dev/articles/20220401-060335-flutter-launcher-icons
ã«åŸã£ãŠãã¢ããªã¢ã€ã³ã³ã dev, prod ã§åããããããã«ããã
ããããã®ç»åã¯é©åãªãµã€ãºãè²ã®ä»æ§ã«æºæ ããŠä»®ã§çšæããïŒçãäžã«ãDevãorãProdããšæžããŠããäžžç»åãããã®ä»®ã®ããã®ã§ OK ã§ãïŒããŸãããã®ãµã€ãºãè²ã®ä»æ§ã«ã€ããŠè»œããŸãšããã
prod ç°å¢ã® Firebase ãããžã§ã¯ãã«ã€ããŠã¯ @kosukesaigusa ã«é Œãã§æš©éããããã
æ¹éã»èŠä»¶ã»è©³çŽ°ã»å®äºã®å®çŸ©ãªã©
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ãã£ããã§ç»åã®éä¿¡ã»è¡šç€ºãå¯èœã«ããã
ç»åã®éžæã«ã¯ wechat asset picker ã䜿ãïŒ
ç»åã®è©³çŽ°ã衚瀺ããããã« photo view ã Playground ã§ãŸãæãéãã«åãããã«ããã
2022-mm-dd
ãã£ããã«ãŒã ã§æ¢èªæ©èœãè¿œå
dart_flutter_common ã«ææ³ãªã©ã§çšããã«ãŒããŠã£ãžã§ããã®å®è£ ããææ³äžèŠ§ããŒãžã® UI ãå®è£ ããã
ææ³ãªã©ã§çšããã«ãŒããŠã£ãžã§ãã㯠Figma ã®éããMaterial 3 ã® UI Kit ã«åŸã£ãŠãããã³ã³ããŒãã³ãå㯠MaterialStackedCard
㧠OK.ïŒStacked
㯠Flutter 㮠Stack
ã§ã¯ãªãããããã Horizontal
ïŒæ°Žå¹³æ¹åïŒã«å¯ŸããŠã瞊æ¹åããæå³ããã®ã ãšæãããïŒ
åãåãã¹ãããããã£ã¯ãFigma ã® UI Kit ã®èŠçŽ ïŒFigma ã®äžã®æ¹ã® Material UI Kit ã® Cards ã®éšåïŒãããèŠãŠæ±ºããããšã
Figma ã®åœåã«ãããªãã°ãããã
AppBar
ã® Actions ã¿ããã« List<Widget>
ããªãïŒä»ã«ããæ¡ãããã°ããã«ããããAlertDialog
ãªã©ã®ã¢ã¯ã·ã§ã³ç³»ã®ãã¿ã³ã®æå®ã®ä»æ¹ãåèã«ããŠã»ããïŒãšããæãïŒ
ããã䜿ã£ãŠãmottai_flutter_app ã®ææ³äžèŠ§ããŒãžïŒReviewsPage
ïŒã« ListView.builder
ã§è¡šç€ºããã
æ¹éã»èŠä»¶ã»è©³çŽ°ã»å®äºã®å®çŸ©ãªã©
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ã¢ã«ãŠã³ãç»é¢ãã衚瀺åã»ååãå€æŽã§ããããã«ããã
å°æ¥çã«ã¯ä»ã®ãããããªãã£ãŒã«ããç·šéããå¿ èŠæ§ãåºãŠããã®ãå°ãé ã«å ¥ããŠããã
2022-mm-dd
ã¡ãã»ãŒãžã®éç¥ãã¿ããããŠã«ãŒã ç»é¢ã«é·ç§»ã§ããããã«ãã
2022-mm-dd
ãµã€ã³ã€ã³çŽåŸããã¹ãããã¥ã¡ã³ããååšãããªã UserMode ã Host ã«ããããã«ããã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
Google, Apple ã®ãã°ã€ã³ã® Issue:
ã®å Œãåããããããåæ§ã« LINE ãã°ã€ã³ãã§ããããã«ããã
Callable Functions ã®å®è£ ãå¿ èŠã
次ã®èšäºãšãªããžããªãåèã«ããã
LINE ã®ãã£ãã« ID ãªã©ã¯ @kosukesaigusa ã«èã㊠dart_define (Flutter) ã .env (Functions) ãªã©ã§é©åã«ç®¡çããã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ç»åã®è©³çŽ°æ¡å€§ç»é¢ãå®è£ ããã
Twitter ã¢ããªã®
ãªã©ãã¿ãããããšè¡šç€ºãããç»åã ããå šç»é¢è¡šç€ºãããŠã£ãžã§ãããå®è£ ãããå·Šäžã«ã¯æ»ãããã® x ãã¿ã³ã衚瀺ããã
Hero ãçšããŠã§ãããªãããã§ãé£ããããªã photo_view ãªã©ã®é©åãªããã±ãŒãžãéžå®ããŠå®è£ ããã
dart_flutter_common ã«å®è£ ãããšè¯ãã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
å€éšãªã³ã¯ã® URL æååã衚瀺ãããŠã£ãžã§ãããå®è£ ããã
ãã¹ããèªåã®èŸ²åã® Web ãµã€ãã Twitter, Instagram ãªã©ã®ã¢ã«ãŠã³ãã®ãªã³ã¯ã job ããŒãžãªã©ã«æ²èŒããç®çã§äœ¿çšããã
linkify ãšã flutter_linkify ã¿ãããªããã±ãŒãžã䜿çšããã®ãè¯ããããïŒããã±ãŒãžã®æ¯èŒãããŠéžå®ããŠã»ããã§ãïŒãããšã Material 3 ã§ãããããè¡šçŸããããªãããã«åŸãïŒããšãã°ä»ã®èåãªã¢ããªã®äŸã«ãªãããªã©ããŠããã以å€ã®é©åãªæ¹æ³ããããªããããææ¡ããŠå®è£ ããã
ãããŠïŒå¿ èŠãªã url_launcher ããã±ãŒãžãªã©ã䜿çšããŠïŒã¹ããŒããã©ã³ã®ãã©ãŠã¶ã§ãã®å€éšãªã³ã¯ãéããããã«ããã
URL æååãšããŠæ£ãããªãæååãå ¥åãããŠããå Žåã¯èæ ®ããªããŠãããïŒãããªãããã®äœéšããããªãæ¹æ³ããããªãææ¡ããŠã»ããïŒã
å®è£ 㯠dart_flutter_commons ã«ãããšè¯ããããïŒãªã³ã¯ãéããªãå Žåã«ãã®æšã SnackBar ã§è¡šç€ºãããããããã mottai_flutter_app åŽã§ã©ãããã¹ãããèããããã¶ãé©åãªäŸå€ãæããã°è¯ãããïŒã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
GitHub Actions çµç±ã§ AppStore Connect ï¿œã®éçºçã¢ããªã«ãã«ããã¢ããããŒãããã¿ã¹ã¯ãã§ããããã«ãã
2022-mm-dd
åºæ¬çã« Figma ã«åŸãã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
https://pub.dev/packages/geolocator ããã±ãŒãžã䜿ã£ãŠãèš±å¯ãã€ã¢ãã°ãåºãã€ã€ããŠãŒã¶ãŒã®çŸåšäœçœ®ãååŸã§ããã¡ãœãããé©åœãªã¯ã©ã¹ã«å®è£ ããã
packages/mottai_flutter_app/lib/map/geolocator.dart ã«å®è£ ãããšè¯ããããã
https://pub.dev/packages/geolocator ããã±ãŒãžã Android, iOS ã§äœ¿çšã§ããããã«ããããã®èšå®ããã® Issue ã§æ åœãããããã±ãŒãžã® README ã«åŸãããšã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
PR äœææã« CI (GitHub Actions) 㧠flutter test ãèµ°ãããã«ããã
ç¡æã®ãããªãã¯ãªããžããªã§ã§ãããªãããã® CI ãéããªããš PR ãããŒãžã§ããªãããã« GitHub ã®èšå®ãããïŒããæ¹æ³ã調ã¹ãïŒã
ã§ããã° & èå³ãããã° codecov ã§ã«ãã¬ããžãå¯èŠåã§ãããšé¢çœãããã
codecov ã®ã¢ã«ãŠã³ããªã©ã§å¿ èŠãããã° @kosukesaigusa ã«èšå®ãäŸé Œããã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ä»äºè©³çŽ°ç»é¢ã®URLæ¬ãä»®ã§TextãŠã£ãžã§ããã«ãªã£ãŠããããã#67 ã§å®è£
ããURLãŠã£ãžã§ããã«çœ®ãæããã
ãããããæŒäžããŠãã©ãŠã¶ã§ãµã€ãé²èŠ§ãã§ããããã«ãªãããšã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
Firebase Storage ã®æå®ããå Žæã»æå®ããååã§ç»åãã¢ããããŒãã»ããŠã³ããŒã URL ãååŸã§ããããã«ããã
packages/firebase_common/lib/src/firebase_storage/firebase_storage.dart
ã«ãã®ãããªãµãŒãã¹ã¯ã©ã¹ãå®è£ ããã
å ¥åãšããŠäœãåãä»ããã¹ããã¯æ åœè ãèããŠææ¡ããïŒçžè«ã«ã¯ãã¡ããä¹ãã®ã§å£°ãããŠãã ããïŒïŒã
æžããåç
§ãããšè¯ãããïŒFile
ã Uint8List
ãã¢ããããŒãã§ããã°è¯ãããããªïŒ
https://firebase.flutter.dev/docs/storage/upload-files
è¿ãå€ã¯ããããç»åã®ããŠã³ããŒã URL ãè¿ãããã® Future<String>
ã«ããã¹ãã ãšæãããã
æŠèŠ
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
cached_network_image ã䜿ã£ãŠãpackages/dart_flutter_common/lib/src/components/image.dart ã«
ããã€ãŠã£ãžã§ãããäœæããã
ãµã€ãºãªã©ã®ããã©ã«ãå€ã¯è¯ãæãã®æ°åã«ããïŒçžŠæšª 64px ãããïŒïŒã
空æåã®å Žåã¯ä»£ããã®ã°ã¬ãŒè²ãã¬ã€ã¹ãã«ããŒã£ãœãèŠãç®ã«ããã
ãã®ä»ãããè¯ããªãããã®ä»æ§è¿œå ã»å€æŽã®ææ¡ã¯æè¿ã§ãã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ããã·ã¥éç¥ãåä¿¡ã»è¡šç€ºã§ããïŒforeground, background, terminated) ããã«ããã
äžèšã®å®è£ ãåèã«ããã
https://github.com/KosukeSaigusa/spajam-2022-final/blob/main/lib/utils/firebase_messaging.dart
ããäžèšã®å®è£ ã Riverpod ã«äŸåããéšåãšããã§ãªãéšåã«åããããã®ãªããRiverpod ã«äŸåããªãéšåã ãã firebase_common ããã±ãŒãžã«å®è£ ããŠãããã mottai_flutter_app 㧠Riverpod ã䜿ã£ãŠäœ¿çšã§ããããã«ããã®ãè¯ãããããïŒpackages/mottai_flutter_app/lib/firestore_repository.dart ã§ã䌌ããããªããšãããŠããïŒã
ã©ã®ããã±ãŒãžã¯ Riverpod ã Flutter ã«äŸåããŠãããªãã®ããåå³ããããšã
Apple ã§å®éã«éç¥ãåä¿¡ããã«ã¯ã¯ãããã Apple Developer ã§ã®èšå®ãå¿ èŠãªã®ã§ @kosukesaigusa ã«èšã£ãäžã§ãå信確èªã¯ Android ã§è¡ã£ãŠããã®ãè¯ãããã
ããã·ã¥éç¥ãã¿ããããŠããã®ç»é¢é·ç§»ãªã©ã¯æªå®è£ ã§ã OKã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ç»å詳现View(dart_flutter_common/lib/src/image_detail_view.dart)ã䜿çšããŠãç»åã衚瀺ã
æ倧ãŸã§æ¡å€§ãããšiOSã®å Žåçž®å°ãã§ããªããªããAndroidã®å Žåçž®å°ã¯ã§ãããã¹ã¯ã€ãã暪æ¹åã«è¡ããªããš
çž®å°ãã§ããªãã
ããããåå ã¯Flutterã®InteractiveViewerã«ãããç»åãåããåŠçã®ã»ãããçž®å°ã®åŠçããåªå
ãããŠããå¯èœæ§ãããã
iOSã§çž®å°ãã§ããAndroidã§ãããªãæ¹åããã¹ã¯ã€ãããŠãçž®å°ã§ããããš
photo_viewãªã©ã®å¥ããã±ãŒãžã䜿çšããŠå¯Ÿå¿ã§ãããã確èªãå¿
èŠã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
mottai_flutter_app ã® Flutter Web ãæå¹åã㊠GitHub ã® Issue ops çã«ãã«ãããã¬ãã¥ãŒçšã®ãã«ãããããã€ããã
æ¹éã»èŠä»¶ã»è©³çŽ°ã»å®äºã®å®çŸ©ãªã©
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ãã£ããã«ãŒã äžèŠ§ããŒãžã®å®è£ ãè¡ãã
UI 㯠packages/mottai_flutter_app/lib/chat/ui/chat_rooms.dart ã«å®è£ ãããšè¯ãã
ãã£ããã«ãŒã äžèŠ§ããŒãžã®åã¢ã€ãã ã«ã¯
limit(1)
ã®ã¯ãšãªã§ latestMessageStreamProvider
çãªã®ãäœããšè¯ãããïŒã衚瀺ããã
ã¯ãŒã«ãŒãšããŠããã¹ããšããŠãæ£ããåäœã»è¡šç€ºãããããšã確èªããã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ãããç»é¢ã®ç¶æ 管çã rx_dart ãã Riverpod ã«æžãæããã
Playground ã§ãŸãããã®ãè¯ãããã
2022-mm-dd
æè¡èª¿æ»ããã㊠Twitter ãã°ã€ã³ãå®è£ ãã
2022-mm-dd
ãã¹ãæ å ±å ¥åç»é¢ïŒãã¹ãããŒã¿äœæã»æŽæ°ç»é¢ïŒã®å®è£ ãããã
åºæ¬çã« Figma ã«åŸãã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
FlutterFire ã®å ¬åŒããã¥ã¡ã³ãã«åŸããè€æ°ã®ãœãŒã·ã£ã«ãã°ã€ã³ (Google, LINE, Apple) ããªã³ã¯ã§ããããã«ããã
ãã® Issue äœææç¹ã§ãããååãªèª¿æ»ãã§ããŠããããã§ããªãã®ã§æ åœè ãå®çŸæ¹æ³ã®èª¿æ»ããããŠã»ãããæ¹éã決ãŸã£ãããæ¹éã«æ©ãã ãããããšãããã°çžè«ããŠæ¬²ããã
åºæ¬çã«ã¯ãFirebase Auth ã§ãã°ã€ã³åŸããã®ç¶æ ããç°ãªããœãŒã·ã£ã«ãããã€ã㧠Firebase Auth ã® credential ã link ãããããªã¡ãœãããã³ãŒã«ããã°ããã¯ãã
ä»æ§ãšããŠã¯ãuserSocialLogins ãšããã³ã¬ã¯ã·ã§ã³ã«ããŠãŒã¶ãŒ ID ãšäžèŽããããã¥ã¡ã³ããäœæãã
ãšãããã£ãŒã«ããå®çŸ©ããïŒfirebase_common ã«å®çŸ©ããïŒãä»ã®ããã¥ã¡ã³ãã® bool ã®ãã£ãŒã«ããåèã«ãããè¡ããã¯ããåãããªãã£ããèããŠãã ããïŒ
ã€ãŸããã¯ãããŠã®ãã°ã€ã³ãæžãã æç¹ã§ãäžèšã®ãããã 1 ã€ã®ãã£ãŒã«ãã ON ã«ãªã£ãããã¥ã¡ã³ããäœæãããŠããã¹ãã
ãããäœæããæ©èœãã¯ã©ã€ã¢ã³ãã«å®è£ ããïŒset 㧠SetOptions ã® merge: true ã«ãããšããæ°ãããïŒã
ããããããFigma ãåèã« userSocialLogin äžèŠ§ã衚瀺ãã UI ã³ã³ããŒãã³ããå®çŸ©ãããuser_social_login/ui ã«äœããšãããïŒåŸã§ã¢ã«ãŠã³ãããŒãžãªã©ã§äœ¿çšããïŒ
å¥ Issue ã§ã OK ã ãããªã³ã¯ã解é€ããæ©èœãèæ ®ã§ããŠãããšãªãè¯ããã§ããŠããªããŠã OK. ãã¶ããtransaction ã§è©²åœ userSocialLogin ããã¥ã¡ã³ãã read ã㊠ON ãã€ããããå¯äžã®ãœãŒã·ã£ã«ãã°ã€ã³ã§ãªããã°è§£é€ãããã¿ãããªå®è£ ã«ãªãã®ã§ã¯ïŒïŒå®éã«çæããŠã¿ãŠèª¿æ»ããŠæ¬²ãããå°ã£ããçžè«ããŠãã ããïŒïŒ
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ä»äºè©³çŽ°ããŒãžã® UI ãå®è£ ããã
ã©ã®ãã¹ãïŒãã¹ããã±ãŒã·ã§ã³ïŒãªã®ãã¯ãã¹ãã©ã¡ãŒã¿ããåŸã§åããããã«ããã®ã§ãçŸæ®µéã§ã¯ããŒãã³ãŒããªåºå®å€ã§è¯ãã
Figma ãåèã«å®è£ ããã
æäžéšã®ç»åã¯ããŠãŒã¶ãŒãã¢ããããŒãããç»åãµã€ãºã¯ã¢ã¹ãã¯ãæ¯ããã©ãã©ãªã®ã§ããã£ã±ããŠããªã¢ã¹ãã¯ãæ¯ã§èŠåããŠãããšæãã
URL ã®ãªã³ã¯åã¯ã#67 ãã® Issue ã§ããäºå®ãªã®ã§ããã§ã¯å¯Ÿå¿ããªããŠãããããåæã«å¯Ÿå¿ããŠã OK.
äœéšè ã®ææ³ã® UI ãèãäžãªã®ã§ãã£ããä¿ç㧠OK.
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
äžèšã®PRã§å®è£ ãããFirebaseStorageServiceã¯ã©ã¹ãçšããŠã¢ããªäžã§ç»åã«é¢ããåäœç¢ºèªãè¡ããUIãäœæããããš
æŠèŠ
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
åœã¢ããªã§ã¯ç»åã端æ«ãã 1 ã€éžæïŒããšãã°ãŠãŒã¶ãŒã®ãããã£ãŒã«ç»åãéžæãããšããªã©ïŒãŸãã¯è€æ°éžæïŒããšãã°ãã£ããã§è€æ°ç»åãéããšããªã©ïŒããããšãã§ããããã«ãããã
ãªã©ã®ããã±ãŒãžã調æ»ããŠïŒä»ã«ææãªãã®ãããã°ææ¡ããŠãã ããïŒãèŠä»¶ãæºãããããã±ãŒãžãéžå®ããã
ãã®äžã§ãdart_flutter_common ã¯ãã®ããã±ãŒãžã«äŸåãããŠããã®ã§ãé©åœãªãã¡ã€ã«åã»ã¯ã©ã¹ã»ã¡ãœããåã§ãç»åãéžã°ããå®è£ ãããã1 ã€éžã¶ãšããšè€æ°éžã¶ãšãã§è¿ãå€ãå€ããã¯ããªã®ã§ãã¡ãœããã¯åããã»ããè¯ããããã
çºå±çã«ã¯ãïŒç»åã 1 ã€éžæããã±ãŒã¹ã§ã¯ïŒå°æ¥çã«ç«¯æ«ããåçãéžã¶ã ãã§ã¯ãªããã«ã¡ã©ãèµ·åããŠåçãæ®ã£ãŠéžæããå¯èœæ§ãããã®ã§ããããæèã§ããŠãããšãªãè¯ãã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
å®éã®ãã¹ã察ã¯ãŒã«ãŒã®ã¡ãã»ãŒãžåºãªããŠè¯ãã®ã§ãäžå¯Ÿäžã§çžæãéžãã§ã¡ãã»ãŒãžã®ããåããã§ãããããã©ããã®å®è£ ãè¡ãã
ã¡ãã»ãŒãžã¯ã§ããã°ç¡é§ãªèªã¿èŸŒã¿ãæžãããŠãæ±çšçãªç¡éã¹ã¯ããŒã«ã§å®è£ ãããã
2022-mm-dd
/Users/kosukesaigusa/dev_private/mottai_flutter_app/packages/dart_flutter_common/lib/src/date_time.dart ã«ãäžãããã DateTime ãšçŸåšæå»ãæ¯èŒããŠ
ãšããæååãè¿ãã¡ãœãããå®çŸ©ãããDateTime ã® externsion ã«å®çŸ©ããã®ãè¯ããããïŒïŒDateTime?
ãåãä»ããã¹ããã©ããã¯æ
åœè
ãèããŠå€æããïŒã
ã¡ãœããåã¯äººéã«èªã¿ããã (human readable) ã¿ãããªæå³åãã ãšè¯ãããã
ç¶²çŸ çãªãŠããããã¹ããæžãã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
ã¬ãã¥ãŒäžãã©ããæ©èœã®å®è£ ãè¡ãã
configurations/inReviewConfigïŒããã¥ã¡ã³ã ID 㯠inReviewConfig
ã§åºå®ïŒã«èšå®çšããã¥ã¡ã³ããä¿åããã
匷å¶ã¢ããããŒãã«å°ã䌌ãŠããããiOS or Android ã®ãã©ãããã©ãŒã ããšã«ãããŸãã®ã¢ããªã®ã©ã®ããŒãžã§ã³ãã審æ»äžãã©ããã審æ»äžã¢ãŒãã ON/OFF ã«ãããã©ã°ãæã£ãŠããã
packages/mottai_flutter_app/lib/package_info.dart ããçŸåšã®ã¢ããªããŒãžã§ã³ãååŸããŠã
ãåœè©²ã¢ã㪠(iOS or Android) ã®ããŒãžã§ã³ãšäžèŽãããã€ã審æ»äžã¢ãŒã enableãã®å Žåã« true
ïŒããã§ãªããšã false
ïŒãè¿ã Provider
or StreamProvider
ãå®çŸ©ããã
ãã® Provider ã ref.watch ããŠã審æ»äžã®å Žåã«ã¯ç¹å®ã®æ©èœããã¿ã³ãé ããªã©ã®ïŒãããããïŒæ©èœãäžå¿äœ¿ããããã«ããç®çã®ããã
ãã®å®è£ ã®ç¢ºèªãããããã« packages/mottai_flutter_app/lib/development ã®äžã«é©åãªãã£ã¬ã¯ããªã»ãã¡ã€ã«ãè¿œå ããŠããããããã㪠UI ãæ§ç¯ããã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
Google ãµã€ã³ã€ã³ã® Firebase Auth ã¢ã«ãŠã³ãã®äœæãããªã¬ãŒã«ãusers ã³ã¬ã¯ã·ã§ã³ã«ããã¥ã¡ã³ããäœæãã
2022-mm-dd
ãããããŒãžã®ããŒã¹ãå®è£ ããã
packages/mottai_flutter_app/lib/map/ui/map.dart ã«ãã¹ããå°å³äžã§æ¢ããããã® UI ãå®è£ ããã
å¿ èŠãããã° packages/mottai_flutter_app/lib/map/map.dart ã«ã¢ãã«ã®å®è£ ãããã
map_page.dart ã®å®è£ 㯠geoflutterfire_plus ã® withConverter ã®ãµã³ãã«ãåèã«ãããšè¯ããåºæ¬ã¯ rxdart ã䜿ã£ãŠã»ãŒåæ§ã®å®è£ ã§è¯ãããã
ã«ã¡ã©ã®åæäœçœ®ã¯æçµçã«ã¯ geolocator ããã±ãŒãžã®çŸåšå°ã«ããããçŸæ®µéã§ã¯æ±äº¬é§ ãªã©ã®é©åœãªå Žæ㧠OKã
䜿ããŠã£ãžã§ããã¯äž»ã« GoogleMap, PageView ã§ããããã Stack ã§éããŠãPageView ã¯ç»é¢äžéšã«çœ®ãã
å®éã«é©åœãªäœçœ®æ å ±ãå«ã hostLocation ããã¥ã¡ã³ããè€æ° Cloud Firestore ã«ä¿åããŠãååŸããã List ããŒã¿ã¯ãããäžã«ãã³ãç«ãŠãããããŠãããã PageView ã«è¡šç€ºããã
Figma ããŸã ãªããŠæçž®ã§ããããªããããã®èšäºã®ãã® GIF ã®ãããªã€ã¡ãŒãžïŒ
geohash ã®å€ã¯ãããšãã°æ±äº¬é§ ãªãäžèšã®ããã«ããŠåããïŒ
// Define GeoFirePoint by instantiating GeoFirePoint with latitude and longitude.
final GeoFirePoint geoFirePoint = GeoFirePoint(GeoPoint(35.681236, 139.767125));
// Gets GeoPoint instance and Geohash string as Map<String, dynamic>.
final Map<String, dynamic> data = geoFirePoint.data;
// {geopoint: Instance of 'GeoPoint', geohash: xn76urx66}
print(data);
ãããã«ããã
https://github.com/KosukeSaigusa/geoflutterfire_plus
ã® README ãããèªãããšïŒäžæç¹ãããã°èããŠãã ããïŒïŒïŒã
çŸæ®µéã§ã¯ PageView ã«è¡šç€ºããäžèº«ã¯é©åœã§ã OKãHostLocation ããã¥ã¡ã³ãã®å 容ããªããšãªã衚瀺ã§ããŠããã°ããã§è¯ãããã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
æŠèŠ
æ¹éã»èŠä»¶ã»è©³çŽ°ã»å®äºã®å®çŸ©ãªã©
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
FCM ããŒã¯ã³ã®è¿œå ã»ç¢ºèªãã§ããããã«ãã
ããïŒ
ã« userFcmToken
ãšããããã¥ã¡ã³ãã¢ãã«ã®å®çŸ©ãããŠããã®ã§ããããè¿œå ã»ç¢ºèªã§ããããã«ããã
userFcmToken
ããã¥ã¡ã³ãã set
ããuserFcmToken
ããã¥ã¡ã³ãã set
ããuserFcmToken
äžèŠ§ã衚瀺ãã UI ãäœããéçºçšãªã®ã§ ListView ãš ListTile ã®ãããªç°¡æãªå
容㧠OK. ãã°ã€ã³æžã¿ã®äººãã衚瀺ã§ããªãã¯ããªã®ã§ãAuthDependentBuilder
ã䜿ããšè¯ããããtoken
, deviceInfo
, createdAt
ãããã衚瀺ãããšè¯ãããString deviceInfo
ã«ã¯ãdevice_info_plus ããã±ãŒãžããåŸããã端æ«æ
å ±æååãä¿åãããOS, OS ããŒãžã§ã³ã端æ«ããããç¹å®ã§ãããã ãšå¬ããçææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
äžè¬ïŒã¯ãŒã«ãŒãŠãŒã¶ãŒïŒããã¹ããŠãŒã¶ãŒã«ãªãããã®æµããèŠä»¶ã確èªããŠèŠä»¶ã決ãã
ãã¶ãäœããã®ç³è«ãå¿ èŠ
ç³è«ã確èªããŠãOK ãåºããšããããšã¯ã¢ããã³ç»é¢ãå¿ èŠã«ãªã£ããããïŒïŒ
ã¢ããã³ç»é¢ãšãã£ãŠãã詳现ã®ç·šéãªã©ããªãæ©èœã«ã€ããŠã¯ Web ã®ã¢ããã³ã§ã¯ãªãã¢ãã€ã«ã¢ããªã®æ¹ã Mottai ã®éå¶è ã«ã¯æ¥œã ãšæããFirebase Auth ã®ã«ã¹ã¿ã ã¯ã¬ã€ã ã䜿çšããããšãæ€èšããã
2022-mm-dd
packages/mottai_flutter_app/lib/force_update ã®äžã«åŒ·å¶ã¢ããããŒãã®å®è£ ãè¡ãã
configurations/forceUpdateConfigïŒããã¥ã¡ã³ã ID 㯠forceUpdateConfig
ã§åºå®ïŒã«çžåœããã
Firestore ã®ããã¥ã¡ã³ãå®çŸ©ã«ããéãããã®ãã£ãŒã«ãã« 1.0.0
ã®ãããªåœ¢åŒïŒæååïŒã§æäœéå¿
èŠãªããŒãžã§ã³ãä¿åããäºå®ã
packages/mottai_flutter_app/lib/package_info.dart ããçŸåšã®ã¢ããªããŒãžã§ã³ãååŸãããšè¯ãã
@visibleForTesting
ã¢ãããŒã·ã§ã³ã䜿ãããšãæ€èšããŠãFirestore ã«ä¿åãããããŒãžã§ã³ãš package_info_plus ããã±ãŒãžãçšããŠåŸãããããŒãžã§ã³ãšãæ¯èŒããŠã匷å¶ã¢ããããŒããã¹ãããå€å®ããã¡ãœããã¯ãååã«ãã¹ãããã
Firestore ã«ä¿åãããããŒãžã§ã³ã®åœ¢åŒã«èª€ãããã£ãå Žåã§ããã§ããã°ããã§çºçããäŸå€ããšã©ãŒã¯æ¡ã朰ããŠããšãããã匷å¶ã¢ããããŒãããªãã§è¯ããšããå€å®ã«ãªãããå®è£ ã§ãããšå®å¿ã§ãããã
å®éã«åŒ·å¶ã¢ããããŒãç»é¢ã衚瀺ãããããªåŠçã¯æªå®è£ 㧠OK ã ãã
packages/mottai_flutter_app/lib/force_update/ui/force_update.dart
ã«ã匷å¶ã¢ããããŒã ON æã«è¡šç€ºãããŠã£ãžã§ãããããããã«äœæããŠããã
ããã㧠OKïŒ
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
UI ã¯ããïŒpackages/mottai_flutter_app/lib/chat/ui/chat_room.dart
ã¢ãã«ã¯ããïŒpackages/mottai_flutter_app/lib/chat/chat_room.dart
ã«å®è£ ããã
UI ã¯äž»ã«
ã衚瀺ããã
ãã®èšäºãšãµã³ãã«ãªããžããªãäžéšåèã«ããŠããã£ããæ©èœãå®è£ ããïŒããã«æ¹åããŠã»ããïŒã
èŠä»¶ãšæ¹åããŠã»ãããã€ã³ããšããŠã¯
QueryDocumentSnapshot
ãæž¡ããŠãããšãããæ¹åããŠã»ãããã¢ããªã¯ Cloud Firestore ã®ããšãç¥ããããªãã®ã§ãæåŸã«èªãã ããã¥ã¡ã³ã ID ãªã©ãæž¡ãã°è¯ãããã«ããŠã»ãã ïŒåèïŒhttps://github.com/KosukeSaigusa/flutter-infinite-scroll-chat/blob/204c6909b546cd3023fcd083de4e7f30881a5578/lib/repositories/chat.dart#L62ïŒäžå¿ããã¥ã¡ã³ãã¢ãã«ã«ã¯ããã·ã¹ãã ãããã®ã¡ãã»ãŒãžã®äœå°ãå ¥ããŠãããããŸã¯ç¡èŠã㊠OKã
äœè£ãããã°
ãå®è£ ãããšæªæ¢èªç®¡çæ©èœãŸã§å®æããã®ã§åãçµããã§ããªãã°ãæ¢èªãorãæªèªãã¯åºå®å€ã§è¡šç€ºããŠããã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
Google, Apple ãµã€ã³ã€ã³ã®å®è£
2022-mm-dd
ãã£ããã«ã¡ãã»ãŒãžã®åé€ãé·æŒãããŠã³ããŒããªã³ã¯ã®æå¹åã®æ©èœãè¿œå ãã
2022-mm-dd
Flutter SDK 10.0.3 ã«ã¢ããããŒã
2022-mm-dd
ã¢ã«ãŠã³ãããŒãžã® UI ã®å®è£ ããããFigma ã«åŸãã
ãã°ã€ã³äžã®ãŠãŒã¶ãŒãã¯ãŒã«ãŒã®ã¿ã§ãããšå Žåãšããã¹ãã§ãããå Žåãšã§ UI ãç°ãªãã
å¿
èŠãªãã°ïŒããããã§ã«ãããªãã°ïŒããã°ã€ã³äžã®ãŠãŒã¶ãŒãã¯ãŒã«ãŒã®ã¿ãªã®ãããã¹ãã§ãããã®ããè¿ã StreamProvider ãå®çŸ©ãããšè¯ããããïŒä»ã®ãã©ã³ã㧠Stream<ReadHost>
åã® hostStreamProvider
ã®ãããªãã®ãå®çŸ©ãããŠããããããããã main ã«ããŒãžãããã¿ã€ãã³ã°ãèªããŠããªãã®ã§ããã® Issue ã®ãã©ã³ãã§äœã£ãŠããŸã£ãŠãè¯ããã¿ã€ãã³ã°ãè¯ããã°ããã®æ©èœãå
¥ã£ã main ãã©ã³ããã掟çããŠãè¯ãïŒã
Section
ãŠã£ãžã§ãããšããã®ãããã®ã§æŽ»çšãããåé
ç®ã¯ãã¹ãŠããã§äžŠã¹ãã
ãæçš¿ããææ³ãã»ãæ²èŒäžã®ä»äºãã«ã€ããŠã¯ãdart_flutter_common ã® widgets ã« UI ãå®çŸ©ãããšè¯ããããèŠããã«ãã¿ã€ãã«ãšããã®äžã®è¿œå æ
å ±ãšããã®å³åŽã«ç»åãæå®ã§ããè§äžžã«ãŒãç¶ã®ãŠã£ãžã§ããããšããæå³åããFigma ã® Material 3 ã®ã³ã³ããŒãã³ããããã®ååã«åãã㊠MaterialHorizontalCard
ã¿ãããªåœåïŒ
ããœãŒã·ã£ã«é£æºãã«ã€ããŠã¯ããŸã ããã¥ã¡ã³ãã¢ãã«ãäœã£ãŠããªãã®ã§ããã£ããããŒãã³ãŒãã®èŠãç®ã§ OKã
çææã«ã¯ã#mottai-app-issues ãã£ã³ãã«ã«ãã® Issue ã貌ãä»ããã
ãŸããããããããã°ãèŠä»¶ã®æŽçãé²æã®ã€ã¶ããã®ãããªããšããã®ã¹ã¬ããã«æžããIssue ã®å 容ãä»æ§ã«é¢ãã説æãèªèåãããå¿ èŠãªå Žåãããã¢ãããåžæããå Žåã¯ãã®ã¹ã¬ããå ã§ãç¶ãã¹ã人ã«ã¡ã³ã·ã§ã³ããŠè©±ãé²ããã
A declarative, efficient, and flexible JavaScript library for building user interfaces.
ð Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ððð
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google â€ïž Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.