KDDI株式会社では、au PAYアプリを内製開発しており、2023年に部分的にFlutterを採用しました。
基本的にネイティブ(Kotlin/Swift)で開発しているところに、Add-to-appにより部分的にFlutterを取り入れている形です。
また、2024年には、ネイティブで開発してきたau PAYの関連アプリをフルリプレイスする形でFlutterを全面採用することにしました。
Flutterの全面採用は、アプリ開発では勿論、API-GWの開発でも採用しており、バックエンドを含めたAll Flutterなプロジェクトになっています。
本セッションでは、Flutterの部分的採用から全面採用に至るまでに得られた知見を皆様にお届けします。
・Add-to-appによるFlutterの部分的採用
・Flutterで開発した機能
・部分的採用で得られた恩恵と課題
・状態管理にBlocを採用した話
・バックエンドも含めたFlutter(Dart)の全面採用
・全面採用に踏み切った理由と狙い
・All Dartによるクロスファンクショナルな開発
・部分的採用か全面採用かの判断の勘所
・既存のネイティブアプリにFlutterを部分的に採用することに興味がある方
・現場でFlutterを部分的に採用するか全面採用にするかで迷われている方
Flutter におけるアプリ開発において、 DevTools は必要不可欠な存在です。
しかし既存の DevTools に独自の機能をカスタマイズできることはあまり知られていません。
DevTools を独自にカスタマイズすることで、ログの表示制御、キャッシュの表示、アプリ内の開発者用の画面を DevTools に移行するなど、開発体験の向上が見込めます。
このセクションでは、devtools_extensions パッケージを使用して、 DevTools を独自にカスタマイズする方法や、
実際のチーム開発でどのような機能をカスタマイズしているかなどの実例を紹介します。
加えてパッケージ製作者向けに自身のパッケージに DevTools Extensions を提供する方法も解説します。
Flutter SDK は、Google の Material Design と Apple の Human Interface Guidelines に準拠したテーマ (Material Theme, Cupertino Theme) と関連 API を提供しており、これにより OS 標準のデザインに沿ったアプリ開発が容易になります。
しかし、独自のデザインシステムを採用したい場合にテーマ管理が複雑化したり、OS 標準のデザインシステムアップデートに伴う破壊的変更により開発コストが増大したりする可能性があります。
本セッションでは、Flutter のテーマと各 Widget のスタイルの関係性を掘り下げ、OS 標準のデザインシステムへの依存を軽減するテーマ管理のアプローチを発表します。
これにより、独自のデザインシステムの実現や、OS 標準のデザインシステムアップデートの影響を最小限に抑えることを目指します。
加えて、Flutter Roadmap でも触れられている blankcanvas の最新動向についても解説します。
ユーザーとして、この場面を想像してみてください:アプリAで長文を入力中、何度か他のアプリBに切り替えて使用し、アプリAに戻ったところ、突然すべてのデータが消えてしまいました。OSがアプリAを終了させてしまったのです!それはあまり良くないuxですね。開発者として、どうやってユーザーを挙動不審な行動に対して守ることができますか?実は、state restorationという簡単な解決方法があります。状態管理についてよく話しますが、state restorationのことを忘れることがあります。最新の個人開発アプリ「Japanana」ではこの機能が必要でしたので、実際の例を使ってその実装方法をこの発表で紹介したいと思います。
• State restorationについて理解したい開発者
• State restorationを実装したく、その方法を学びたい開発者
• State restorationを実装した後、テスト方法を学びたい開発者
Dart の新機能であるマクロ(Dart macros)の登場により、Flutter アプリ開発で煩雑だったボイラープレートの問題や build_runner によるコード生成の問題の解決が期待されています。
とはいえマクロはまだまだ試験的に公開されている段階であるために自由に触りづらく、できることを把握してどう活用するかをイメージしづらいのが現状です。サンプルとして話題に上がるマクロも JSON とオブジェクトの変換が簡単になるというもので、Flutter アプリ開発にどれほどのインパクトをもたらす機能なのかをイメージするには力不足です。
このセッションでは、実際に Flutter アプリ開発で活用することを想定したマクロをいくつか紹介し、実際にコーディングして使ってみることで、マクロ導入後の Flutter アプリ開発がどのように変化するのかを体験します。
来るマクロの正式リリースに備え、マクロの活用方法や作り方、そして適切な距離感を今から考えてみませんか?
This presentation introduces two tools for bridging Flutter apps with native code: FFI (Foreign Function Interface) and Pigeon. FFI enables direct calls to C/C++ functions, optimizing performance and hardware access. Pigeon streamlines method invocations between Flutter and native platforms (Android/iOS), facilitating better data communication. I’ll demonstrate the implementation and success stories of using these tools to enhance native functionality in Flutter applications.
Aiming to expand knowledge of FFI & Pigeon for native platform integration.