Simplexは約4年前から金融領域を中心にFlutterを活用した本番アプリ開発を推進し、近年はFlutter Webのサービス開発・運用にも挑戦しています。クロスプラットフォーム開発の強みを活かす一方、実際の現場では、下記のように多様な課題と向き合うことになりました。
本セッションでは、本番運用の現場で直面した課題と解決のプロセスを包み隠さずご紹介することで、
「Flutter Webの“できない”を“できる”に変える」ためのヒントや戦略をお持ち帰りいただけます。
プログラミングへの挫折から再起し、「ノリと勢い」でFlutter開発サークル「ぽちぽちのつどい」を大阪大学に創設した3年間の軌跡を語ります。
Flutterアプリを2年以上運用する中で直面したスクロールのカクつき、メモリ肥大化などのパフォーマンス低下を解決した実践的手法を紹介します。
このセッションでは、以下の内容についてお話しします:
Google が、先月6月10日にリリースした Android 16 QPR1 Beta 2 では、Pixel 9 など対応 Android デバイスでの Connected display サポートが追加されています。
これは、モバイルアプリでも、外部接続したディスプレイへの対応、つまりユーザーへのマルチウィンドウ+デスクトップ体験の提供が求められることを示します。
任意サイズに拡大縮小できるウインドウへの Adaptive UI / Responsive UI 対応だけでなく、キーボードやマウスでの操作や、マルチウィンドウによる、画面上の他のアプリとのデータ連携について、情報共有したいと思います。
・Android プラットフォーム対応エンジニア
・モバイルアプリの大画面対応や、ファミリーサービス連携対応予定のエンジニア。
「ゼロからFlutterチームを立ち上げる」。私たちの挑戦は、業務でのFlutter開発経験がない3名のAndroidエンジニアが新規事業にアサインされるところから始まりました。 事業スピードを落とさずに高品質なアプリを開発するという課題に対し、私たちが選択したのは「外部パートナーとの協業」という道でした。この事例共有を通じて、チームの立ち上げから自走に至るまでのリアルな道のりをお伝えできればと思います。
Flutter で複雑かつ高パフォーマンスなスクロール UI を実装する際、 Sliver は避けて通れない概念です。
本セッションでは、まず Sliver の概念を詳細に解説します。その上で、 CustomScrollView と各種 Sliver ウィジェットを組み合わせたベストプラクティスを紹介します。
さらに、単一の ScrollView に複数の ScrollController がアタッチされた際に発生するエラーなど、具体的な問題を取り上げます。 ScrollController のライフサイクル管理や、 ScrollNotification を活用した複雑な要件の対処法を紹介します。
Flutter の Rive アニメーション実装において、通常は rive パッケージを利用しますが、 Flutter 内の Renderer で処理しない Rive Renderer と呼ばれる高性能なランタイムを統合する rive_native が存在します。
本セッションでは、 rive_native の役割を解説します。rive_native は Rive に導入された一部新機能を Flutter に適応させるために必要です。具体的には、データとアニメーションを連携させる data binding 機能やレスポンシブな Rive を再現する機能があります。これらの機能をユースケースを交えて紹介します。
このセッションでは、Maestroに焦点を当て、integration_test, Patrol, Firebase App Testing Agent, MagicPodとの比較や、FlutterでE2Eテストを構築するための具体的なコードの書き方、テストコードの書き方を解説します。
さらに、ただUI操作をするだけではなく、スクリプトを活用してバックエンドの状態を自在に操る、より高度なE2Eテストの手法も紹介します。これにより、どんな複雑なシナリオでも再現可能とし、QA工数を大幅に削減したノウハウを、明日から浸かる実践的な知見として発表予定です。
多くのアプリで必要となるログイン機能。どう実装すれか迷いませんか?私は迷いました。本セッションでは、認証の仕組みであるOpenID Connect (OIDC)の基本的な仕組みから、Flutterアプリで実装するための具体的なステップまでを解説します。 トークンの管理や更新、リトライ処理といった実践的なコードも紹介。認証フローの全体像を理解し、自信を持ってセキュアなログイン機能を実装できるようになることを目指します。
生成AI(Claude Code、GitHub Copilot)を活用すれば開発効率が飛躍的に向上すると考えられがちです。
しかし、生成コードは非決定論的であるためレビュー負荷が増大し、品質保証がボトルネックになるケースも少なくありません。
本セッションでは、OpenAPI クライアントやログスキーマを API-first + コード自動生成 に置き換え、Flutter アプリの開発・運用を支えた取り組みを以下の観点から紹介します。
動画サービスが乱立する昨今、ユーザーの視聴体験に対する標準のハードルは上がり続けています。
ただ動画が見れるだけではなく、様々な視聴体験のUXが鍵になります。
本セッションでは、宣言的UIかつアニメーションの記述が行いやすいFlutterと、グローバルな状態管理に長けたRiverpodを活用し、
できる限りYouTubeの視聴体験と保守性の高いコードを実現できるアイデアを提案します。
UX要件: PiP, フルスクリーン再生, アプリ内の複数動画管理, etc
再生要件: 動画メタデータ(字幕, カスタムイベント), 再生キュー管理, キャスト再生, 倍速再生, バックグラウンド再生, etc
監視要件: モニタリング, RUM, etc
・動画をサービス内で利用されている方
・動画サービスを作りたいと思っている方
アプリはコード改竄やリバースエンジニアリングによる脅威に常に晒されています。
デバイスのルート化や不正ツールの利用によってサービス内での不正利用も考えられます。
今回は"デバイスから取得可能な物理データをもとにポイントを獲得できるような機能"を題材にして、
不正対策やセキュリティ向上を考えます。
本セッションでは不正のユースケースに対して取れるアプローチをご紹介します。
通常 Flutter は画面に紐づいた Engine 上で動作しますが、「アプリ終了中でも通知到着後ただちに処理したい」といったバックグラウンド上での即時性要求には応えにくいです。
主因は Engine が画面ライフサイクルに巻き込まれて早期に停止し、再起動時に重い初期化コストが発生するためです。
これへの解決策として Headless Engine 上で処理を常駐的かつ迅速に実行する方法があります。
本セッションでは Headless Engine の概要と実運用で遭遇した事象および得られた知見を共有します。
FlutterやDartでは、コード生成ツールとして build_runner が広く使われていますが、ビルド時間の長さが開発体験に影響を与えることもあります。
Dartのコード生成ツール「lean_builder」がどのようにして高速なビルドを実現しているかを解説します。
build_runnerと比較しながら、以下の技術的な工夫を紹介します:
Flutterアプリを継続的に運用していく中で、不具合やクラッシュ、問い合わせ、障害時の対応などは避けられません。
そのため、監視の仕組みを整えることは重要な要素の一つです。
近年はFlutterに対応した監視ツールも増えており、エラーの把握やユーザー行動の可視化、パフォーマンス監視を行うことが可能です。
一方で、どのツールを選ぶべきか、導入したもののチームで活用しきれない、障害時に情報が活かされないといった課題も少なくありません。
このセッションでは、Flutterアプリの運用を支える監視体制について、以下の観点から紹介します。
Flutterアプリの監視に課題を感じている方
Flutterはモバイルアプリ開発の強力なツールとして確立されていますが、Flutter Webの可能性はまだ十分に認識されていないかもしれません。本セッションでは、Flutter Webの最新の進捗と、特にSEO(検索エンジン最適化)フレンドリーなプログレッシブウェブアプリ(PWA)を構築するための具体的な戦略に焦点を当てます。レンダリングモードの選択(HTML vs Canvas Kit)、ルーティングとURL管理、メタデータの設定、Service Workerの活用など、Flutter Webで高性能かつSEOに強いPWAを開発するための実践的なテクニックを解説します。マルチプラットフォーム戦略におけるFlutter Webの真価を探ります。
Flutter開発者、Web開発者、プロダクトオーナー
近年急速に進化するAI技術をFlutterアプリケーションに統合することで、ユーザー体験はどのように変革されるでしょうか?本セッションでは、Flutterアプリ内でOn-device Machine Learning(デバイス上での機械学習)を活用することに焦点を当てます。具体的には、TensorFlow LiteやML Kitなどのライブラリを用いて、画像認識、音声認識、自然言語処理などのAI機能をFlutterアプリに組み込む方法を、具体的なデモとステップバイステップのコード解説で紹介します。未来のFlutterアプリがAIによってどのように進化していくのか、具体的なイメージを掴んでもらえるような内容を目指します。
全レベルのFlutter開発者、AIに興味のある開発者、プロダクトマネージャー
セッションでは、大規模なFlutterアプリケーション開発における状態管理とアーキテクチャ設計の課題に焦点を当て、具体的な解決策を提示します。Provider, Riverpod, Blocなどの既存の状態管理ライブラリの深い理解に加え、これらを組み合わせたより堅牢でスケーラブルなアーキテクチャパターン(例: Clean Architecture, MVVM-Cなど)について、実践的なコード例を交えながら解説します。特に、非同期処理、データの永続化、依存性注入、テスト容易性などを考慮した設計手法について深掘りします。発表者の実プロジェクトでの経験に基づいた成功事例や失敗談も共有し、参加者が自身のプロジェクトに適用できる具体的なヒントを提供します。
中級〜上級Flutter開発者、チームリーダー、アーキテクト
本セッションでは、Figmaと生成AIを活用して高品質なFlutterコードを生成し、爆速でアプリ開発を進めるための実践的なノウハウをデザイナーとエンジニア双方の経験から共有します。
Figmaからコードを生成するだけなら、今や誰でも簡単にできます。しかし、実用的なアプリを効率よく開発するためには、FigmaとFlutterの双方を理解し、適切な整理が不可欠です。
Figma側で最も重要なのは、色やテキストテーマ、コンポーネントを事前にしっかり定義することです。対するFlutter側では、生成されたコードを効率的に管理するためのコンポーネント分割やテーマの適用方法、言語ファイルの管理方法を指定する必要があります。
生成したはいいが、結局手直しが大変という状況から一歩先に進むための、具体的な知見を発表予定です。
flutter_appauthを使ったOIDC認証は、多くのFlutterアプリで採用されている標準的な実装パターンです。しかし、Android Custom Tabsでブラウザ認証を行う際、メモリ逼迫時や"Don't keep activities"設定下でMainActivityが破棄され、認証フローが中断される問題に直面しました。
本セッションでは、この問題の発生メカニズムから調査プロセス、複数の解決アプローチの検討、暫定的なWebViewソリューションを詳細に解説します。さらに、Android Custom Tabsで動作させるための今後の取り組みについても共有します。