Server-Driven UIでプロダクト開発してますか?
Server-Driven UI(SDUI)はAirbnbが用いた設計手法でUIの構造、レイアウト、さらには一部の動作ロジックを、クライアント側ではなくサーバー側で定義・制御するアーキテクチャパターンです。
モバイルアプリ開発においてA/Bテスト等でUIを分ける際にいくつかやり方があるかと思いますが、
このLTではStacというFlutter専用のSDUIのFrameworkを用いた紹介をします。
Flutter 3.27.0 がリリースされ、 Android においても Impeller が標準となりました。
我々はAndroid のパフォーマンス向上を期待し、 Flutter をアップグレードすることに決めました。
手元の端末たちでは問題なく動作したため、アプリをリリースしました。
気がつくと、ユーザー様からクレームをたくさん頂くことになりました。
このセッションでは、失敗した経緯をみなさんと笑顔で振り返り、今後の糧とさせていただきます。
AWS Amplify をご存知でしょうか?
認証やデータベース、ストレージ機能といったものを手軽にモバイルアプリに実装できる、 AWS のサービスです。
我々のプロダクトでは、EC内のバナー表示制御のために導入しています。
これを実現したことで、複数箇所のバナー出稿を非エンジニアの運営メンバーのみでコントロールできるようになりました。
このセッションでは、 AWS Amplify と Flutter での実装方法の概要に触れ、我々のプロダクトの中でどのように利用しているかをお話しし、 Flutter アプリにも簡単に導入できる AWS Amplify の魅力をお伝えしたいと思います。
Flutterアプリのグローバル化対応、.arbファイルのキー分割やコードへのタグ埋め込みに悩んでいませんか?それは標準的な手法が持つ限界のサインかもしれません。グローバルアプリには、単純なキー値置換では乗り越えられない「語順」と「リッチテキスト」という大きな壁が存在します。
言語ごとに異なる文の構造、あるいは「利用規約に同意する」のような部分的なスタイル適用。これらに無理やり対応しようとすると、翻訳テキストは分断され、メンテナンスコストとヒューマンエラーを増大させます。
本トークでは、これらの課題をスマートに解決する「CSV主導」のグローバル化アーキテクチャを提案します。非技術者である翻訳者との協業を円滑にし、真にスケーラブルなグローバル化を実現しましょう。
このセッションでは、Flutterアプリを今すぐ改善できるTipsを5分で一気に紹介します。
テーマはパフォーマンス、UX、フォーム、アニメーション、画像、権限など幅広くカバー。
たとえば:
•起動時のカクつきを deferFirstFrame() で防止
•iOS絵文字の正しい表示方法
•SVGの事前コンパイルで描画高速化
•findChildIndexCallback による無駄な再構築防止
•textInputAction + onFieldSubmitted() でフォーム操作を快適に
すべて、誰でもすぐに試せる実践的な内容です。
想定視聴者
•Flutter歴問わず、すぐ使えるTipsを知りたい方
•短時間でUXやパフォーマンスを改善したい開発者
•小技・改善ネタが好きなFlutterエンジニア
Flutterの新レンダラー「Impeller」で3D描画が可能な flutter_sceneデモが登場してしばらく経ちますが、まだ活用例は多くありません。
私も試す中でセットアップに苦労しましたが、その可能性に惹かれ最新Flutterで動作するよう修正し、通常のアプリに統合する方法も見つけました
このセッションではその知見を共有し、3D表現に挑戦する開発者のきっかけになればと思います
•flutter_scene の仕組みと導入手順
•UIに3Dを活かす実用的アイデア(ゲーム以外も)
想定視聴者
•Flutterで表現力豊かなUIを実現したいと考えている開発者
•3D表現に興味があるが、どう取り入れて良いかわからないFlutterエンジニア
•flutter_scene や Impeller に興味を持っている中級者以上の方
•実際に動くデモを通してFlutterの可能性を広げたい方
Fragment Shaderは、ピクセル単位で色や効果を自在に制御できる技術で、Flutterでも通常のウィジェットでは実現できないリッチな表現が可能になります。FlutterでShaderを使えば、ユーザーを驚かせるような視覚体験を実現でき、アプリのデザインを“賞が取れる”レベルに引き上げることができます。
このセッションでは以下を紹介します:
•FlutterでのFragment Shaderの基本と使い方
•アプリ組み込みのユースケースと活用例
•Flutter内部でのShader利用とAndroidでのバグ修正事例
•カスタムShaderの入手法と応用テクニック
想定視聴者•Flutterでより高度な表現を目指す開発者
•UI演出にこだわりたいデザイナー/エンジニア
•Shaderに興味はあるが手を出せていない方
•内部実装に関心のある中級以上のFlutterエンジニア
2025/6/9、Appleは新たなデザイン言語であるLiquid Glassを発表しました。
そしてコミュニティから挙がった声は……
「Flutterはこのムーブメントについていけない、終わりだ!」「Flutter is dead.」 ……
なるほど、確かにFlutterは構造上、Liquid Glassを取り込むことは難しいです。
では、Flutterは本当に死を迎えたのでしょうか?
自分はそうは思いません。
むしろ、Flutterの真価はプラットフォーム固有の事情に左右されないことにあると考えています。
このトークでは、Flutterの立ち位置や採用する価値を整理したうえで、どのようなプロジェクトにFlutterが最適なのか?というお話をします。
世界にはおよそ100種類以上のバーコードの規格が存在すると言われています。
その中でアプリに適したバーコードを正しく読み取ることは、バーコードリーダー機能を持つアプリにとって根幹ともいえる重要な要素です。
読み取りに失敗すれば、それだけでアプリとして成立しないケースも珍しくありません。
そのためには、アプリの目的や想定される利用シーンに応じて、適切なバーコード形式を理解し、それに合ったパッケージを選定することが非常に重要です。
このセッションでは、Flutterで利用できる様々なバーコード読み取りパッケージを比較しながら、
用途ごとに「どのパッケージが適しているのか?」という観点で、選定のポイントや実装時の工夫について具体例を交えてご紹介します。
・バーコードの読み取りの実装をしている又は考えている方
iOS 17で登場した「Assistive Access」機能をご存知ですか?
一見するとFlutter開発者には無縁に思えるかもしれませんが、実はこの機能には認知にやさしいUI設計における多くのヒントが詰まっています。
本LTでは、Assistive Accessの概要とともに、Flutterアプリでも活かせる認知負荷を軽減するためのデザイン原則を紹介します。
特に、「ボタンはたくさんあったほうが便利」や「多機能こそユーザーフレンドリー」といった常識に疑問を投げかけ、誰にとってもわかりやすく、操作しやすいUIを考えるきっかけとなるセッションを目指します。
認知負荷の視点から、自分のアプリ設計を見直してみませんか?
私はライブ配信アプリの実装しています。想像の通りライブ配信アプリは視聴や配信機能に加え、様々な機能があるため、実装やパフォーマンス面の調整の難易度が高いです。
私たちはこのアプリをFlutterで実装したことで、想像以上に多くの課題にも直面しました。加えてライブ配信の仕組みは外部のネイティブSDKに依存しているので、ネイティブ連携も必要でした。
このトークではこのライブ配信アプリの視聴や配信機能の実装での知見や直面した課題を共有します。また最近取り組んでいるパフォーマンス改善についても紹介します。
1 視聴や配信の仕組み
2.動画プレイヤーでのPlatformViewやTexture Widgetの活用
3.パフォーマンス改善やその計測方法
「アプリ開発において、リリース後に深刻な不具合が発覚し、アプリの一部又は全体が正常に動作しなくなってしまう。」
そんな経験はありませんか?
私自身、個人開発しているアプリで最新版に不具合が含まれたままリリースしてしまい、結果として一部のユーザーがアプリを使えない状態に陥ってしまったことがありました。
このような事態を未然に防ぐ手段として有効なのが強制アップデートの仕組みです。
強制アップデートは、ユーザーに最新バージョンの導入を促すだけでなく、アプリと開発者自身を守る安全装置としても重要な役割があります。
このセッションでは、個人開発者として実際に直面した強制アップデートを実装していなかったことによるトラブルやそこから得られた教訓、導入した仕組み、バージョン管理の考え方まで、実践的な視点でお話しします。
Flutterに「こんな機能があったら便利なのに」と思ったことはありませんか? 不具合がFlutterのバグによるものであることが判明し、「Flutter SDKのバグが直れば解消できるのですが」と共有したことはありませんか?
Flutterはオープンソースプロジェクトであり、誰でも貢献できます。あなたのアイデアや不満は、あなたの貢献のきっかけになるかもしれません。
本セッションは「なぜFlutterの開発に"あなた"がなぜ関わるべきなのか」をテーマに、Flutterのコントリビューションの魅力と方法についてお話しします。また、話者がFlutterの開発に関わることで得た知識や経験をもとに、コントリビューションの様々な価値を紹介します。
みなさんはFlutterのデザインはどのようにする派閥でしょうか?
自分は圧倒的にネイティブデザイン派閥でした。ですがWWDC25でLiquid Glassが発表された今、ネイティブデザイン派閥は危機に直面しています。
コミュニティの動きはとても早くLiquid Glassの見た目の再現はすぐに達成されましたが、Flutter内で見た目だけ再現してもLiquid Glassの思想まで再現したとは残念ながら言えません。
そこで今回FlutterのAdd-to-appの機能を使って、Liquid GlassのナビゲーションレイヤーをSwiftUIで、コンテンツレイヤーをFlutterで記述するという形式にトライし、どこまでうまくいくのか?何が課題なのか?をざっくりと紹介していきます。
httpパッケージを利用したことがない、というFlutter開発者は少ないでしょう。一方で、cronet_httpやcupertino_httpのような、Native APIを利用するパッケージを利用したことはないという方も多いのではないでしょうか。
セッションでは各種HTTPクライアントパッケージの比較を通じて、「Dartによる実装」と「Native APIと連携する実装」の違いを確認します。違いを理解することで、あなたのアプリにとって最適なパッケージが何かを見極められるようになることが、本セッションの目的です。
Flutter開発では、アプリケーションの実行や配布のたびにビルドが発生します。
通常、ビルドキャッシュは意識せずとも自動で働きますが、その仕組みを理解することで開発効率をさらに高められます。
本セッションでは、Flutter SDKの内部実装に触れながら、ビルドキャッシュの構造と動作を詳しく解説します。
また、キャッシュが有効・無効になる条件を理解し、 flutter test
実行時の不要な再ビルドを回避することで、テスト実行を高速化できる実践的なアプローチも紹介します。
build/
ディレクトリや .dill
ファイルなど、ビルド成果物の正体を知りたい方ウィジェット機能とは、アプリを起動しなくてもOSのホーム画面上で情報を表示できる機能のことです。
しかし、Flutterでは「ウィジェット機能」を直接サポートしておらず、各OS機能に依存するため、Flutter単体での実現は困難です。
本セッションでは、Flutterアプリから各OSのウィジェットを活用するために必要な実装パターンと実践的なノウハウをご紹介します。
このセッションでは、以下の内容についてお話しします:
Firebase チームの開発した AI フレームワーク Genkit
は非常に強力ですが、Flutter/Dart からの利用には、型安全性の確保や Server-Sent Events (SSE) を扱うストリーミング対応など、手動での実装が必要でした。
私はこの課題を解決するため、Firebase Genkit チームのサポートを受けながらクライアントライブラリを開発し、機能拡充に努めています。
本セッションでは、開発に至った動機、他クライアント (Next.js/Angular) との一貫性を意識したインタフェース設計、型安全なストリーミングの実現について、お話しします。
なぜ pub.dev には無数の状態管理パッケージが公開されているのでしょうか。なぜ標準の StatefulWidget と InheritedWidget では不十分なのでしょうか。
このセッションでは、Flutter 標準の StatefulWidget/InheritedWidget に始まり、 30 を超える数の状態管理パッケージのドキュメントと実装を追いながら考えた Flutter の「状態管理」をまとめます。
Riverpod に限らない、あなたのプロジェクトにピッタリの状態管理手法が見つかるかも?
iOS26の発表直後、FlutterのHot reloadが実機では動作しない問題が発生し、アプリ開発者は窮地に立たされまさした。
この問題は現代のOSのセキュリティ制約とJITコンパイラが深く関わっています。この課題にどう向き合い、どう解決していったのかを時系列で振り返りましょう。この解決の過程を振り返ることで、フレームワークへの理解が更に進み、FlutterのコアであるHot reload技術についてより深い知見を得ることができます。
フレームワークやVMのアップデートが、どうやって自分たちの開発体験やアプリの品質に直結するのかを追体験しましょう。