はじめに
こんにちは!ソリューション本部エンタープライズ事業部スポーツプロダクト部開発グループ Flutterエンジニアの鵜飼です。
今回は、日本最大級の Flutter カンファレンスである「 FlutterKaigi 2025 」の参加レポートをお届けいたします!この記事では、FlutterKaigi のセッションで得られたさまざまな学びや、弊社 DeNAブースの様子などから、FlutterKaigi の盛り上がり、そして技術カンファレンスの楽しさをお伝えできればと思います!
FlutterKaigi 2025 イベント概要
FlutterKaigi 2025 は11月13日に大手町プレイス ホール&カンファレンスにて行われました。FlutterKaigi は2021年にはじめて開催されて今年で5回目となり、年を重ねるごとに盛り上がりが大きくなっているホットな技術カンファレンスの1つです。
今年も多くの企業ブースと、Keynote を含め 20 のセッションそして 15 のLTがあり、会場は1日中参加者の熱気に包まれていました。今年はバリスタが淹れてくださるコーヒーを飲むことができたりと、飲み物やお菓子も充実していて楽しく参加できました。そしてお昼にはお弁当もあり、参加していた同僚とブースで楽しくランチをしました。
私はほとんどの時間をセッションの視聴に使っていましたが、セッション間に15分の時間が取られていたので、その時間を使い他社さんのブースを回らせていただきました。どの会社さんのブースも、アプリが触れたりじゃんけん大会などのイベントが開催されていたりと興味をそそられるものばかりで、もう1日欲しいと思うくらいに楽しかったです!
そして自由にメッセージを書き込めるボードが設置されていて、Flutter や FlutterKaigi への想いだったり登壇者の方は意気込みだったり、さまざまな方がたくさんのメッセージを書いていました。
DeNAブース紹介
弊社は FlutterKaigi 2025 へ Silver Sponsor として参加させていただけたため、企業ブースにて Flutter を活用したアプリ開発の紹介をさせていただきました。私が所属している部署にて開発しているアプリは Flutter を使っているため、インストールした端末を展示して実際に触れていただいたり、アプリのアーキテクチャや利用技術をまとめたスライドを投影し、ブースへ来られた方から頂いた質問へお答えしました。
当日は FlutterKaigi 全体の企画として企業ブースを回るスタンプラリーがあり、こちらのおかげもあってかたくさんの方に来ていただきものすごく盛り上がっていました。
セッション紹介
今回参加したセッションの中から、とくに印象に残った3つをピックアップしてご紹介します。どのセッションも Flutter の深い部分に触れる内容で、大きな学びがありました。
あの日のHotReloadはなぜ動かなかったのか? 〜OSセキュリティ(W^X)とJITコンパイラの攻防〜
このセッションは iOS 18.4 beta 1 で突如として動かなくなった HotReload、そしてその原因となった修正が戻されて安堵しているときに iOS 26 にて再び動かなくなったことについて、なぜ動かなくなったのか、Flutterチームはどのようにしてこの問題へ対応したのか、Debug Mode の動作に深く関わっている DartVM まで踏み込んで解説をするとても興味深いものでした。
前半では iOS 18.4 beta 1 で動かなくなってからの Apple と Flutterチーム、そしてコミュニティそれぞれの動きについての説明がありました。iOS 18.4 beta 1 で突然 Debug Mode が動かなくなり、コミュニティは焦っていたものの、beta 2 でその問題が生じた原因となる厳しい制限の追加が撤回され、Flutterチームは何もせずに問題がいったんは解決されたこと。しかしこの時に、将来の iOS のリリースではこの制限をかけることを Apple が告知をしていて、実際に iOS 26 で制限が追加されたため Flutterチームが対応し、Flutter 3.35.0 で対応が完了したという動きがあったようです。また、コミュニティの方では iOS 26 が出たタイミングで「Flutterチームは対応できるの?」「技術選択候補から外すかも」といった不安が出ていたことも知りました。
後半ではどうしてこの問題が起こったのかの技術的な解説と、それに対して Flutterチームはどのような対応をして Debug Mode を使えるようにしたのか、技術的な解説がありました。まず Flutter がどういう仕組みで動いているのか、Release Mode と Debug Mode それぞれがデバイスで動くまでの流れについて学ぶことができました。Debug Mode では Kernel と呼ばれる中間表現がインタプリタな方式で実行されますが、そもそもインタプリタな方式で実行するために DartVM やホストマシンがどのように関わっているのか、低レイヤーの知識まで絡めて解説されていて、Flutter の動作原理への理解も深まりました。
Flutterチームはこの問題に対して iOS 26 の発表後11日で対応が終わっていて、Flutter をメンテナンスし続けて広めていこうという気概がここに現れていると感じました。
Flutter DevToolsで発見!本番アプリのパフォーマンス問題と改善の実践
このセッションはユーザーからのパフォーマンスに関わる問い合わせに対して、DevTools を活用して原因の特定と改善をしていくという内容でした。
私は今まで DevTools を積極的に活用したことがなく、Inspector で Widget の階層構造を見たりするくらいの使い方が多かったです。しかし DevTools はかなり高機能なためさまざまな情報を見ることができ、とくにパフォーマンスに関する問題の調査に対してものすごく強力だということを学びました。
たとえば動作が重たく感じるいわゆる「カクつき」と呼ばれるようなものは、1フレームの描画処理が1回の画面更新の時間内に終わらず、複数の画面更新を跨いで描画されることで生じます。1秒間に60回画面を更新するデバイスであれば描画に17ms以上かかることでカクつきます。これに対して DevTools の Performance View や Enhance Tracing を使うことで、どのフレームでカクつきが生じていて、その原因となっている処理はどこなのか、を特定できます。
Flutter DevTools によってパフォーマンスに関する問題を解決できる場合があることを知り、今後積極的に使っていこうと思えるようなセッションでした。
オフライン対応!Flutterアプリに全文検索エンジンを実装する
このセッションはオフラインで動作する全文検索エンジンの実装について、Rust製の全文検索エンジンやトークナイザをネイティブプラグインとして組み込んで実現するという内容でした。
全文検索を実装したいモチベーションは、オンデバイスLLMの knowledge cutoff に対して良質なコンテキストを与えたいが、RAG を使ったアプローチでは限界があるということでした。実現する手法の1つとしてネイティブプラグインがあるということを学べましたが、それ以上により汎用的に Rust など他の言語で書かれた実装をネイティブプラグインとしてFlutterアプリへ組み込むことができ、さらにキャッチアップコストが高いと言われている Rust のような言語でもAIツールの普及により敷居が下がっている、といったことを学べたことに価値があると感じました。
Rust と聞くと所有権の概念だったり他の言語にはない特徴があり、試しに使ってみようという軽い気持ちで採用するのは難しいものだと感じていました。しかし全文検索といった Dart では実現が大変なことに対して、AIツールを駆使して Rust という高パフォーマンスが期待できる言語で実装されたものを以前よりも簡単に組み込め、さらには Flutter Rust Bridge といった Flutter と Rust を連携するためのライブラリが整っていたりと、以前よりももっと気軽に使える環境があることを知れました。
そしてこの Rust製の全文検索エンジンはパフォーマンスがものすごく高いことも特徴の1つです。他のセッションでも触れられていましたが、今後はデバイスの性能向上やコストの面などからオンデバイスのLLMが採用される事例が今よりも出てくるかもしれません。その際の knowledge cutoff の課題に対しての強力な解決策になりうる可能性があると感じました。
おわりに
私自身、Flutter を触り始めてから3ヶ月程度だったために参加前はセッションの内容についていけるか不安でした。しかしどのセッションでも基礎的なところに触れたり、前提を説明してから本題へ移っていたので非常にたくさんのことを吸収できたと感じています。今回紹介しきれなかったセッションにも興味をそそられるものがたくさんありました。資料が公開されているものもあるため、ぜひそちらを探して読んでみてもおもしろいかもしれません!また隙間時間という短い間にもいくつかの企業ブースにて他社さんでの Flutter を使った開発について聞くこともでき、インターネットではなかなか知ることのできないそういった情報を得られる貴重な機会でもありました。
FlutterKaigi は Flutter をものすごく使っている人だけでなく、初学者やこれから使ってみようと思っている人もたくさんのことを吸収できるカンファレンスだと感じました。来年も参加したいと思います!
最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。