目次

  1. はじめに
  2. FlutterNinjas Tokyo 2025 について
  3. セッション内容(一部)
  4. 会場の様子
  5. おわりに

はじめに

株式会社WinTicketでエンジニアをしている2025年新卒入社の @keigomichi です。

現在、WINTICKETではモバイルアプリとブラウザ版の両方を提供しており、モバイルアプリはFlutterで開発しています。
今回、Flutter開発に関する技術的な知見を得ることや、海外を含む多様なエンジニアの方々と交流を深めることを目的に、弊社から5名のエンジニアがFlutterNinjas Tokyo 2025に参加しました。

本記事では、参加したメンバーが印象に残ったセッション、会場の様子などを振り返りたいと思います。

FlutterNinjas Tokyo 2025について

FlutterNinjas Tokyo 2025 は、Flutterに関する技術カンファレンスで、2025年5月29日〜30日の2日間にわたってdocomo R&D OPEN LAB ODAIBA(東京・台場)にて開催されました。海外から参加されている方も多く、全てのセッションが英語で行われます。

Remi Rousseletさんとの集合写真
Remi Rousseletさんとの集合写真

セッション内容(一部)

KonMari your Flutter code using DCM(Csongor Vogel さん)

【セッション概要】

Flutterプロジェクトがスケールするにつれて、未使用のファイル、肥大化したウィジェット、複雑に絡み合った依存関係など、コードの散らかりが開発の妨げになってくる。まるで自宅を片付けるように、コードベースも整頓できたらどうだろうか。
本セッションでは、近藤麻理恵氏の「こんまり®︎メソッド」をもとに、DCMを活用してFlutterコードベースを整理・保守する手法を紹介する。不要なコードの排除、ウィジェットの最適化、アセット管理、コードのスメルや違反の検出といったDCMの最新機能を振り返りながら、どのように技術的負債を削減し、コード品質を高め、コードベースを維持できるかを解説する。

Flutterプロジェクトのコード整理をテーマにした本セッションでは、プロジェクトが大規模になるにつれてコードが複雑化していく事例を取り上げ、こうした課題に対して DCM を活用し、近藤麻理恵さんの「こんまり®︎メソッド」になぞらえてコードを整理していくというアイデアがユニークでした。
未使用のコードやアセットの検出、複雑なウィジェットの可視化、静的解析を用いた改善点の提示など、DCMの機能は技術的負債の抑制に大きく役立つと感じました。

Decoding Dart: A Look at the Dart VM(Festus Olusegun さん)

【セッション概要】

すべてのDartアプリケーションはDart仮想マシン(Dart VM)上で実行されている。しかし、その内部では一体何が起きているのだろうか?
本セッションでは、Dart VMの裏側を解き明かし、コードの実行、パフォーマンス最適化、メモリ管理の仕組みを詳細に解説する。初心者から経験豊富な開発者まで、Dart VMの理解は、モバイル、Webなどあらゆるプラットフォームでより高性能なアプリを開発する手助けとなるだろう。Dart VMのアーキテクチャ、JIT(実行時コンパイル)とAOT(事前コンパイル)の違い、そしてガーベジコレクションの仕組みについて分かりやすく解説する。長年にわたりDart/Flutterアプリケーションを運用・最適化してきた経験をもとに、パフォーマンスとスケーラビリティを高めるための実践的な知見を提供する。

Dart VMの内部で特に印象に残ったのは、JITとAOTの違いです。JITではコードの変更をその場でコンパイルしてすぐ実行できるため、ビルド時間を待たずに試行錯誤できます。一方、AOTはリリース前にあらかじめ機械語に変換するため、起動時にランタイムコンパイルの遅延がなく、アプリの立ち上がりが格段にスムーズになります。
通常の開発ではコンパイルの仕組みを意識する必要がほとんどありませんが、JITとAOTを理解することで、Flutterに限らず他のフレームワークでも応用できる知見が得られると感じました。

Let’s Talk About Memory Leaks in Dart And Flutter(Majid Hajian さん)

【セッション概要】

メモリリークは、構文エラーやバグのように開発段階で明確に現れるものとは異なり、発見や再現が難しいため厄介である。Flutterアプリケーションでは、 WidgetController などがリスナーとともに積み重なることで、メモリリークはより複雑化しており、長時間の使用後にパフォーマンスの低下や予期せぬクラッシュを引き起こす原因となる。
本セッションでは、DartおよびFlutterにおけるメモリリークとメモリ膨張について取り上げ、それらがどのように発生し、なぜコード実装上で重要な問題となるのかを解説する。さらに、DevToolsやLeakTrackerなどを活用したデバッグ手法や、静的解析ツールによる “Shift Left” のアプローチにより、メモリリークを早期に検出・防止する方法についても紹介する。
また、本セッションでは、私が過去数年間に携わった実際のアプリケーション事例を多数交えながら解説を行う。

DartにおけるGCの発生しやすさを再認識するとともに、DCMなどを活用して静的解析でメモリーリークを防ぐのがとても興味深かったです。
Android開発においてはLeakCanaryがデファクトスタンダードとなっているメモリリーク解析ツールですが、FlutterにおいてはLeakTrackerやMemoryUsageが存在しており、以前に調査した頃よりも頻繁に開発が進んでいて、取り入れやすくなっているように感じました。リビルドのたびにメモリ使用量が増えてしまうため、ネイティブ開発よりもメモリリークが重大なパフォーマンス影響になりやすいと感じたので、このセッションを機に開発環境でも活用していこうと感じました。

Haskell: Lead Your Code to the Next Level(Tsuyoshi Chujo さん)

【セッション概要】

Haskellは純粋関数型言語であり、宣言的なアプローチを強制する。命令的な処理はなく、副作用も隠れておらず、すべての関数は完全に「純粋」である。
Flutterのコードをより読みやすく、テストしやすく、堅牢にするために、Haskellを学んでみてはどうだろうか?
このセクションでは、Haskellの考え方をどのようにFlutterアプリ開発に応用できるかを紹介する。

Dartでは自由に書けてしまうがためにカオスになりやすいコードがあります。それらをHaskellの持つ”処理の流れ自体”をコードにする関数型プログラミングのアプローチによって容易にカオスを防ぐことができることは非常に興味深かったです。
一方でFlutter、DartのようなUIも扱うプログラミングにおいて、関数型プログラミングをどこまで適用させるかは様々な意見があるかと思います。
今後、PoCなどで実際の使い心地を試したくなるセッションでした。

Macros are gone. What now?(Remi Rousselet さん)

【セッション概要】

Dartチームは、Macroを導入しない方針を発表した。この決定が自身のパッケージ、そしてDartエコシステム全体にどのような影響を及ぼすのかについて、考察してみたい。

Macro導入への挑戦が中止となってしまったことは、私自身にとって非常に残念でした。しかし、セッションを通じて改めて感じたのは、Dart開発チームのMacroへの取り組みを悲観的に捉えるのではなく、Dartが新たな形で進化していくことへの期待を持つべきだということです。
特に印象的だったのは、Remiさんの「Dart isn’t dying(Dartは終わっていない)」という言葉でした。この発言に力づけられ、私自身もDartの今後の進化に期待を寄せつつ、今後も積極的に試し、早期からフィードバックを届けていきたいと思います。

※ セッション概要は FlutterNinjas Tokyo 2025 の公式サイトより引用し、独自に和訳したものを掲載させていただきました。

会場の様子

会場はセッションが行われるエリアと、ドリンク等が提供されるエリアに分かれており、セッションの合間などでコーヒーや国内外のお菓子などを楽しむことができました。
また、お昼には弁当が提供されました。さらに、DAY 2の午後には「おでん」の提供もあり、非常に印象的でした。

会場で提供されたお菓子
会場で提供されたお菓子
会場で提供されたおでん
会場で提供されたおでん

おわりに

FlutterNinjas Tokyo 2025は、Flutterに関するツールや技術手法、最新動向を国内外のエンジニアを通して知ることができる貴重な機会となりました。特に、Flutterのパフォーマンス最適化やメモリ管理、Dart言語に関するセッションから、今後の開発に役立てられる知識を多く得ることができました。

また、会場での交流や懇親会では、多くのエンジニアの方と実際に会って話すことで、Flutterコミュニティの一員としてのつながりを深めることができました。

最後になりますが、FlutterNinjas Tokyo 2025運営スタッフの皆様および登壇者の皆様に対して、有意義なイベントを開催いただきましたこと、心より感謝申し上げます。