
FlutterNinjas Tokyo 2025 ã«åå ããŠããŸãã
æ ªåŒäŒç€Ÿ IVRy Software Engineer ã®ãã«ããŒã§ãã
IVRy 㯠2025幎5æ29,30æ¥ã«éå¬ããã FlutterNinjas Tokyo 2025 ã«ã·ã«ããŒã¹ãã³ãµãŒãšããŠåè³ãããŠããã ããŸããã
æ¬èšäºã¯ãã®åå å ±åãšãªããŸãã
pre-party
ã°ããŒãã«ã«ã³ãã¡ã¬ã³ã¹ã§ãã FlutterNinjas ã«ã¯æµ·å€ãããããããã®ãšã³ãžãã¢ãããããŠãããéå¬åæ¥ã«ã¯åžæè
ãåã£ãŠæ¥äžã«æ±äº¬èгå
ã®ãã¢ãŒãçµãŸããŠããŸãããpre-party ã¯ãã®èгå
ã®åŸã«æ±é座ã®ããŒã貞ãåã£ãŠéå¬ãããŠãããç§ãä»äºçµããã«åå ããŠããŸããð»
åå è
ã®æ§æã¯æ¥æ¬åšäœè
ãšæµ·å€åšäœè
ã®æ¯çãåã
ã»ã©ã§ã¹ããŒã«ãŒïŒç»å£è
ïŒã 4,5åããããŠããŸãããç§ã®æãè±èªã§ãèŸæ±åŒ·ãèããŠããããããã€ãªã³ã¬ã«ã®æ¹ã
ã«ãµããŒãããŠããã ããŠæ¥œããæéãéããããšãã§ããŸããããäžè©±ã«ãªã£ãæ¹ã
ã«ã¯æ¬åœã«å€§æè¬ã§ãã

Day 1
FlutterNinjas Tokyo ã¯ä»å¹Žã§ 2åç®ã®éå¬ãšãªããŸããäŒå Žã¯æšå¹Žãšåæ§ãå°å Žã® docomo R&D OPEN LAB ODAIBA ã§ãããã«ã³ãã¡ã¬ã³ã¹ã®ãã±ãããšã¯å¥ã«å ¥é€šèšŒãäºåã«çšæããŠããå¿ èŠããããããã ãæ³šæãå¿ èŠã§ãã
9:30 éå Žã§ç§ãåä»ãã 10:00 æç¹ã§ã¯æ¢ã«åããŒãã«ããããåãŸã£ãŠããŸããã
Day 1 ã®ããŒã¯ã»ãã·ã§ã³ã¯ä»¥äžã®éãã§ããã
åå
Seamless Passkey Authentication with Flutter à Firebase and our journey on Banking App (Ogawa & Yamamoto)
On-Device AI with fine-tuned Gemma in your Mobile and Web app (Sasha Denisov)
ååŸ
Unleashing Peak Performance: Mastering Flutter DevTools for Blazing-Fast Apps (Ashita Prasad)
Offline-First Flutter: Building Resilient Apps for Unreliable Networks (Akansha Jain)
KonMari your Flutter code using DCM (Csongor Vogel)
Decoding Dart: A Look at the DartVM (Festus Olusegun)
Adapting Flutter App UX for Users Across the World (Kenichi Kambara)
Day 2
2æ¥ç®ã¯å€©åãæªãã£ãã®ã§æ©ãã«åºçºãããšããæãã®å€æ©ãäŒå Žã«çããããããªãŒããã³ã°åã«ãåå è
ãšäº€æµã§ããæ©äŒããããŸããã
ããã§ Sentry ã® SDK éçºè
ãã Session Replay ã®è€éãã«ã€ããŠèŠåŽè©±ã䌺ã£ããããŸããã
Day 2 ã®ããŒã¯ã»ãã·ã§ã³ã¯ä»¥äžã®éãã§ããã
åå
Let's Talk About Memory Leaks in Dart and Flutter (Majid Hajian)
Mastering Shortcuts in Flutter: Building Desktop and Web Applications with Advanced Keyboard Support (Masahiro Aoki)
ååŸ
State Restoration - Making The Dead State Live Again (Samuel Abada)
LT
The Human Side of Flutter's Success Story (Mike Diamind)
Haskell: Lead Your Code to the Next Level (Tsuyoshi Chujo)
Macros are gone. What now? (Remi Rousselet)
Special Panel Discussion
ããã¯ã¢ãã
ç¹ã«è峿·±ãã£ãã®ã Sasha ããã®çºè¡š
âOn-Device AI with fine-tuned Gemma in your Mobile and Web appâ
ïŒå
ã®ã¿ã€ãã«ã¯ Building Flutter Apps with AI Capabilities Without Connection, Bills and Privacy ConcernsïŒ
ã§ãããSasha ãã㯠Flutter, Dart, Firebase, AI ã® Google Developer Expert ã§ãããããã¯ã°ã©ãŠã³ãã§ã¯ Backend, Frontend ã®çµéšãããéåžžã«å¹
åºãé åã«ç²ŸéããŠããã£ããããŸãã

åé ã§ çæAI, Multimodality, Function Calling ãããã£ãšããããããåŸãOn-Device AI ã®è©±ãå§ãŸããŸããã
äž»æšãšããŠã¯ãçŸåšäž»æµã® çæAI ã®æžå¿µäºé
ãšããŠ
å®å®ããæ¥ç¶
äœ¿çšæ
ãã©ã€ãã·ãŒ
ãæããããŸãããOn-Device AI ã§ããã°ãããã解決ããããšãã§ããããã¿ããªäœ¿ãããšããçºè¡šã§ããã
ç¹ã«ã¿ã€ãã«ã«ãããããã« Google ã®ãªãŒãã³ã¢ãã«ã§ãã Gemma ã«ãã©ãŒã«ã¹ããŠããŸãããChatbot Arena Elo Score ã§ã¯ DeepSeek ãšæ®æããªãããèšç®è² è·ãå§åçã«å°ãªããšããå©ç¹ã瀺ããGemma ã®ã¿ã€ã ã©ã€ã³ãã¢ãã«æ¯ã®æ©èœæ¯èŒã玹ä»ããŠããŸããã

https://deepmind.google/models/gemma/#:~:text=Performance%20and%20benchmarks ããåŒçšïŒçºè¡šã«äœ¿ãããŠããã¹ã³ã¢ãèŠã€ãããªãã£ãã®ã§å¥ã®ãã®ã§ãïŒ
ãŸããç»å£ã®æ°æ¥åã«çºè¡šããã Gemma 3n ã§ã¯æè¡çãªé©æ°ãèµ·ããŠããïŒâ»1ïŒã以äžã®ããã«çŸåš äžã®äžã«æ±ããããŠããæ°Žæºã«è¿ã¥ããŠããŠãããšã®ããšã§ããã
ãµã€ãº: ã¹ããŒããã©ã³ã§åäœãããããšãã§ããçšåºŠã®å°ããªã¢ãã«
ãã«ãã¢ãŒãã«: Text, Image, Audio
Audio ã¯è¿æ¥å¯Ÿå¿äºå®ãšã®ããš
å€èšèª: 140以äžã®èšèª
ç¹ã«æ¥æ¬èªããã€ãèªãéåœèªãã¹ãã€ã³èªããã©ã³ã¹èªã®å€èšèªããã©ãŒãã³ã¹ãåäžããŠããããã§ã
Gemma ãã¢ãã€ã«ã¢ããªã§å®è¡ããããã« MediaPipe ãšãã Google ã®ãã¬ãŒã ã¯ãŒã¯ããããããã䜿ãããšã§ LiteRTïŒæ§ TensorFlow LiteïŒãæèããããšãªãå©çšã§ãããããã Flutter åãã®ãã©ã°ã€ã³ã¯ãªãã£ãã®ã§ Sasha ããã flutter_gemma ãäœã£ããšã®ããšã§ããã
On-Device ã§é
åžããããšãèããå ŽåãGemma 3n 1BïŒâ»2ïŒã§ããã°ã¢ãã«ãµã€ãºã¯ 500MB çšåºŠãšã¯ããã¢ããªãšããŠã¯å·šå€§ãªã¢ãã«ããã³ãã«ããããšã«ãªããæ§ã
ãªèгç¹ã§é£ããïŒäžå¯èœã§ã¯ãªãïŒãããæè¿ flutter_gemma 0.8.3 ã®æ©èœè¿œå ã§ã¢ãã«ã®éåæããŠã³ããŒããå¯èœã«ãããšã®ããšã§ããã
ãã®ãã©ã°ã€ã³ã§ã¯ Gemma 3n ã®ãµããŒãããŸã ã§ããŠããªããã®ã®ãMediaPipe ã§ã¯æ¢ã«ãµããŒãããŠãããSasha ãããåž°åœããŠãžã§ããã©ã°ãæ²»ãé ã«ã¯å¯Ÿå¿ããããšãã£ããã£ãŠããŸããïŒâ»3ïŒã
åŸå㯠MediaPipe ã§ã® Fine-tuning ã®æ¹æ³ãšã㊠LoRA (Low Rank AdaptationïŒãæããŠå
·äœçãªé©ç𿹿³ã玹ä»ããŠãããŸãããFine-tuning éšåã¯åå¥ã«æäŸã§ããããã«ãªã£ãŠãããMediaPipe ã§ã¯ãã¹ãæå®ãã圢ã§çµã¿èŸŒãããšãã§ãããããããŒã¹éšåã®å€§ããªã¢ãã«ãéœåºŠå
¥ãæ¿ããå¿
èŠããªãå¹ççã«éçºãé²ãããããšã®ããšã§ããã
LoRA ã«ã€ããŠã¯ããã£ãšããŠããã®ã§ç§ã¯ã¡ãããšçè§£ã§ããŠããªãã®ã§ãã以äžã®èšäºãããããããã£ãã§ãã
Sasha ããã¯çºè¡šäžã«èŠããŠããããã¢ã ãã§ã On-Device AI ã䜿ã£ãæ§ã ãªã¢ããªãããã±ãŒãžãäœæããŠããããšã䌺ããŠåãã¢ãã€ã«ã¢ããªãšã³ãžãã¢ãšããŠèçã䌞ã³ãŸãããåºæ¿ãåã㊠IVRy ã§ã On-Device AI ãè²ã 詊ããŠã¿ãããšãã話ãããŠããŸãð¥
â»1: PLEïŒPer Layer EmbeddingsïŒãKVC å
±æãé«åºŠãªã¢ã¯ãã£ããŒã·ã§ã³éååãšãã£ãã€ãããŒã·ã§ã³ã«ããææãšã®ããšã§ãã
â»2: 1B 㯠10åãã©ã¡ãŒã¿ãŒãæå³ããŠããŸããGemma 3n ã«ã¯ãã®ä»ã« 2B, 4B ã®ã¢ãã«ããããŸãã
â»3: flutter_gemma ã® Changelog ãèŠãŠãããç»å£åã® 0.8.6 ãªãªãŒã¹æç¹ã§å¯Ÿå¿ãããŠããã®ã§ç§ã®èãééããããããŸããããã ããgemma 3n ã®å£²ãã§ãã Audio 察å¿ã«ã€ããŠã¯Â MediaPipe ã®çŸæç¹ã§ã®ææ°ããŒãžã§ã³ v0.10.24 ãå«ããŠæªã ãµããŒããããŠããªãããã§ãããgoogle-ai-edge/gallery ã«ã issue ãäžãã£ãŠããã®ã§æ³šèŠããããšæããŸãã
äŒå Žã®æ§å

åå¹
Session Stage ã«ã¯æ°ãæ é äžã«ãã£ã¹ãã¬ã€ãããããã«è±èªã®èªååå¹ã𿥿¬èªç¿»èš³ã衚瀺ãããŠããŸããããã ããå°éçšèªãå€ãã®çºè¡šã ãšç²ŸåºŠãããŸãã¡ãªããšãå€ã ãã£ãã®ã§ä»åŸã«æåŸ ã§ãã
å¬ãç©
PARK ãšãªã¢ã«ã¯ã³ãŒããŒããèåãã¹ããã«ãŒã眮ãããŠãããããã€ãªã¹ãããã FlutterNinjas / Flutter / Riverpod ã®ãã€ã«ãããŠãããããDay 2 ã«ã¯ããã§ããã®æäŸããã£ãããšãšãŠãè³ããã§ããããã§ãçŸå³ããã£ãã§ãð¢


ã©ã³ã
ãåŒåœãçšæãããŠããããŽã£ãŒã¬ã³ã»ãã©ã«åãã®ã¡ãã¥ãŒãå«ããŠæ°çš®é¡çšæãããŠããŸãããç§ã¯ããŸããŸåãååŸããæ¹ã ãšãäžç·ãããŠããããŸããã

亀æµ
åããŒã¯ã»ãã·ã§ã³ã®ééã«äœè£ããããåå è
å士ã§äº€æµããæ©äŒãå€ããŠå¬ããã£ãã§ãã
æ¥æ¬äººå士ã§ã®äŒè©±ã¯æ¥æ¬èªã鿥æ¬èªè©±è
ãããå Žåã¯è±èªã§è¡ã£ãŠããŸãããè±èªã®ååºãé æŽããããšãå€ããç§ãè±åã®ååºãçšæããŠãããã®ã§ããããé
ãããšãã§ããŸããã
ãã®ä»ãè±èªãèŠæã§ãèªå·±ç޹ä»ã¯äºåã«æºåããŠããããšãã§ããŸãããèªäœ/èªç€Ÿã¢ããªãããå Žåã¯ãã£ãšèŠããããç¶æ
ã«ããŠããããšã§åºéŒ»ãæ«ãããããšã¯æžãããšæããŸãã
æåŸã«
åå ããã«ããã£ãŠÂ æšå¹Žã® kboy ããã®äž»å¬è ç®ç·ã®ææ³èšäºãæèªãç±ãæ³ããæããªãããïŒtry! Swift ãæèããŠãããšã®ããšã§ïŒå²žå·ããã®Â try! Swift 2016ã200%楜ããããã«Â ãšããèšäºãæãåºããŠããŸãããFlutterNinjas Tokyo 2025 ã«ãŠåå è ãéå¶ã¹ã¿ããã®çããã®çãçããšããå§¿ãèŠãŠæ¹ããŠã«ã³ãã¡ã¬ã³ã¹ã«çŸå°åå ããæçŸ©ãšã¯ãªãã©ã€ã³ã®äº€æµã«ãããšãã¿ãã¿æããŸããã
ä»å IVRy ã¯ã·ã«ããŒã¹ãã³ãµãŒãšããŠåå ããŸãããããŒã¹åºå±ããªãã£ãã®ã§äžåå è ãšããŠæ¥œãã¿ãªããããããæ¥å¹Žä»¥éããŒã¹åºå±ã®æ©äŒãããã°ã©ããªæãã ããããšæ³åããªãããæšå¹ŽããŒã¹åºå±ããããŠãããããŒãã©ã¯ãŒãããã«ã話ã䌺ããªã©æºåãããããšãã§ããŸããð
çãããšäžç·ã« Flutter çéãçãäžããŠãããããã« IVRy ã§ã Flutter ã«é¢ããåãçµã¿ãç©æ¥µçã«çºä¿¡ããŠãããããšæ³ããŸãâïž

We are hiring!!
IVRy ã§ã¯ãšã³ãžãã¢ãå§ããå¹ åºãè·çš®ã§ã¡ã³ããŒãåéäžã§ããå°ãã§ãèå³ãæã£ãŠããã ããå Žåãã²ãæ°è»œã«ãé£çµ¡ãã ããïŒ