みなさんはどれくらいアプリのパフォーマンスを意識して開発していますか?
アプリの起動が遅い、アニメーションがかくつく、端末が熱くなるなどは、なかなか表だった不具合として姿を現しませんがアプリ利用者の不満に直結する極めて重要な課題です。
Flutterアプリの開発においてはDevToolsを活用することで定量的にパフォーマンス情報を取得・診断し”なんとなく重い”原因を突き止めることができるほか、アプリの品質改善にも役立ちます。
本セッションでは実際にDevToolsを使って描画遅延の原因を特定しパフォーマンスを改善する事例を共有します。
・ Flutterでプロダクト開発を行っている方
・ DevToolsの存在は知っているが、活用できていない/部分的にしか使っていない方
・ アプリの品質を改善したい方
「その文言、どこで使ってたっけ?」文言修正のたびにソースコードを漁り、多言語対応のファイル管理で疲弊していませんか?
本LTでは、その課題をスプレッドシートとCIで解決する、モダンな多言語対応フローを共有します。Flutterの文字管理ライブラリ「slang」、Googleスプレッドシート、GitHub Actionsを連携。非エンジニアがスプレッドシートを更新すると、アプリで利用する文言コードが自動生成される仕組みです。
手作業による修正漏れや衝突を撲滅する、未来のローカライズ管理術をご覧ください。
想定視聴者:
・ Flutterアプリの多言語対応に課題を感じている方。
・ 非エンジニアとの文言修正のやり取りを効率化したい方。
・ GitHub Actionsを使った開発フローの自動化に興味がある方。
要件定義、デザイン、実装。かつてはチームが必要だった全工程を、もし一人で、しかも数時間で完遂できるとしたら?本LTでは、その常識をAIツール群で破壊し、一つのアプリを完成させた反則的開発フローを共有します。
Geminiを「壁打ち相手」、FigmaのAIプラグインを「デザイナー」、Cursorを「最強のペアプログラマー」とし、一人三役を可能にする手法とコツを解説。AI時代の新たな開発スタイルをお見せします。
想定視聴者:
・ アイデアを高速で形にしたい全てのFlutter開発者。
・ デザインから実装まで一人でこなすことに課題を感じている方。
・ AIツールの具体的な連携や活用事例に興味がある方。
Flutter開発で頻繁に利用されるBuildContext。しかし、その役割の曖昧な理解は、パフォーマンス低下や予期せぬエラーの要因となります。
本LTでは、UIツリーでのBuildContextの位置と役割、そしてInheritedWidgetがデータ伝達と再構築にどう影響するかを解説します。
「Widgetのどこでcontextを使えばいいのか」が腑に落ちて、状態管理や画面遷移でつまずかないための最初の理解の壁を突破できることを目指します。
不安定なネットワーク環境でもアプリがスムーズに動くことは、ユーザー体験を大きく左右する。
オフラインでも快適なUXを実現するには大きく以下の3つのアプローチが有効。
データの永続化: オフラインでも情報の閲覧・入力ができるように、デバイス内にデータを保存する。HiveやSQFliteライブラリが役立つ。
バックグラウンド同期: ネットワーク回復時に、ユーザーに意識させず自動でデータを送受信する。Workmanager活用すればアプリがバックグラウンドにいても定期的に、あるいはネットワーク状態の変化を検知して同期処理を実行できる。
UI/UXのオフライン最適化: オフライン時でも違和感なくアプリを操作できるよう、UI設計が鍵。例えば、データのローディング表示、オンライン/オフライン状態の明示、入力データのオフラインキューイングなどで、ユーザーはストレスなくアプリを使い続けられる。
Flutterでネイティブ機能を使う方法、いくつ知っていますか?
基本のMethod Channel/EventChannelから、dart:ffiを使った直接バインディング、BasicMessageChannel、
そしてPigeonなどのコード生成ツールまで。選択肢は実に多様です。
「結局どれを使えばいいの?」
「それぞれの違いは?」
「Flutter 3.29で入ったスレッドマージングでどう変わる?」
このLTでは、主要な連携手法の実装例(Dart側・ネイティブ側)を実際のコードで比較しながら、
それぞれの特徴と適用場面を整理します。
各手法を理解し、プロジェクトに応じた最適な選択ができるようになることが目標です。
個人開発で2年間運営してきたFlutterアプリが、コードの肥大化と複雑な状態管理により、メンテナンス困難な状況に陥っていました。数百行に及ぶUIロジックの散在、Provider・StateNotifier・グローバル変数の混在、アーキテクチャの不統一による依存関係のスパゲッティ化など、技術的負債が深刻でした。
この課題に対し、DevinやCursorといった最新のAI開発支援ツールを活用し、リポジトリごと刷新するレベルの大規模リファクタをなるべく楽をして行いました。
想定視聴者
概要
Flutterアプリ開発において、エラーハンドリングは避けて通れない課題です。try-catchでの例外処理は型情報が失われ、エラーの見落としやランタイムエラーの原因となります。
本LTでは、Dart 3のSealed Classを活用したFlutterの公式ドキュメントに準拠したResult型パターンを用いて、型安全なエラーハンドリングをRiverpodを用いたMVVMベースのアーキテクチャで実現する方法を紹介します。
想定視聴者
概要
プログラミングへの挫折から再起し、「ノリと勢い」でFlutter開発サークル「ぽちぽちのつどい」を大阪大学に創設した3年間の軌跡を語ります
想定視聴者
FigmaをもとにしたFlutterアプリ開発で、デザイナーとのデザイン情報の伝達やカラーやテキストスタイル等のコード上での管理に課題を感じていませんか?
本セッションでは、Figmaデザイントークンを導入し、プロジェクト内のあらゆるデザイン定義を一元管理し、Flutter側ではThemeExtensionを用いてデザイントークンと一致するカスタムテーマを構築した事例を紹介します。
この手法により、デザインとコードが一気通貫でつながり、共通言語が生まれたことで認識齟齬を解消。UI変更にも迅速かつ正確に対応できる開発体制が実現しました。
デザインとコードに一貫性を持たせ、開発を加速させるヒントをお届けします。
対象者
Flutterアプリ開発においてローカルデータ永続化は不可欠ですが、数ある選択肢の中から「どれを選ぶべきか?」と悩む方も少なくないでしょう。
本LTでは、FlutterローカルDBの主要な選択肢それぞれの技術的特性を客観的に解説し、各DBが誕生した背景にある理由を分かりやすく紐解きます。
このトークを通して、ご自身のプロジェクトに最適なローカルDBを選定する基準をお持ち帰りください。
概要
FlutterでMVVMアーキテクチャを採用した際、
画面遷移処理がViewModelやViewに分散し、責務の分離やテストが難しくなる課題に直面しました。
特に、Navigator.pushや外部リンク遷移がビジネスロジックに混在すると、保守やUIテストが煩雑になります。
そこで本LTでは、MVVMにCoordinatorを組み合わせたMVVM-Cアーキテクチャを導入し、
遷移処理の責務を一元化・明確化した事例を紹介します。
このLTではMVVM-Cについて、以下のポイントを紹介します
想定視聴者
GitHub CopilotやClaude CodeなどのAIツールがコードレビューに進出する中、モバイルアプリ開発でも活用が進んでいます。
本LTでは実際にAIレビューで起きた珍事件を紹介します。
存在しないAPIを提案する、過剰な最適化を求める、テストコードにマジックナンバー回避を強要する、急に英語でまくしたてる、絵文字に気を取られる...思わず「それは違うだろ!」とツッコミたくなる事例ばかり。
しかしAIレビューを否定するのが目的ではありません。
これらの失敗から学んだ「AIレビューとの正しい付き合い方」として、実際のプロジェクトに導入できるルール化手法をお見せします。
AIは優秀なアシスタントですが、適切なガードレールがあってこそ真価を発揮します。
AIツールを使い始めた方、導入を検討している方に、共感と実践的な知見をお届けする5分間です。
本セッションでは、iOS(Swift)開発を主に担当してきたエンジニアが、業務上の要件によりFlutterによるクロスプラットフォーム開発に挑戦した際に、AIアシスタント(Cursor + GPT)を活用しながら実装・テストを進めた実体験を紹介します。
Dartの言語仕様、FlutterのWidgetツリー、テストの書き方、状態管理パターンなど、慣れない技術に対して、手探りではなくAIとの対話を通じてキャッチアップと実装を同時に進行させたことで、短期間でも一定の成果を出すことができました。
本発表では、AIを開発支援ツールとして活用して習得と実装を両立できた経験談を話したいと思います。
GitHubにAPIキーをうっかりPush…
FirebaseやAWSのトークンがAPKにそのまま埋め込まれてた…
それ、実はよくある事故なんです。
アプリ開発では外部サービスとの連携が欠かせない一方、機密情報の取り扱いが常に課題になります。
Flutterでも、これをしっかり対策しないと アプリの信頼性が一気に下がることに…!
このLTでは、「Flutterで機密情報をどう守る?」というテーマで、
難読化や暗号化といったFlutter内でもできる対策を中心にご紹介します。
想定視聴者
いいねボタンを押した時、ローディング中の演出、タブ切り替え時のアニメーション...
アプリの"気持ちいい体験"は、ちょっとした動きが鍵を握っています。
Flutterでアニメーションを実装していて、こんな風に思ったことはありませんか?
その「もっとこうしたい」、実はFlutterでも実現できるかもしれません。
このLTでは、Flutter×Riveを使ってアニメーションを簡単に制御する方法を、実例ベースでわかりやすくご紹介します!
想定視聴者
「UXグロースモデル」を読んだエンジニアが、その学びを活かすべくSNSアプリの個人開発に挑戦!
複数のプラットフォームでの展開を目指し、Flutterを選択したものの、その経験はチュートリアル程度というまさに初心者からのスタート・・・
この無謀な挑戦をClaude CodeとGitHub Copilotに「丸投げ」する形で実現した事例を紹介します。
Claude Codeでコーディングし、GitHub Copilotにコードレビューを担当させるという、まさに「AI任せ」の開発スタイル。
Flutter初心者がどこまでプロダクト開発を進められるのか、その可能性と実際の体験談をお話しします。
AI駆動開発のリアルな現場で得られた学びや、直面した課題、そしてそれらをどう乗り越えたか。
AIを活用した開発に興味のある方、生成AIの活用事例を知りたい方へ、実践的なヒントを提供できれば幸いです。
アプリの第一印象を左右するスプラッシュ画面。
flutter_native_splash パッケージを使えば数分で簡単に設定できる...と私も最初は考えていました。
ですが、Android特有の"ある挙動"を知らず、思わぬところで何時間も悩むことになりました。
本LTでは、スプラッシュ画面実装時にAndroidアプリで直面した予想外の挙動の原因と、
その背景にあるAndroid独自の特性、そして対処法について、
自身の経験を交えながら分かりやすく解説します。
Server-Driven UIでプロダクト開発してますか?
Server-Driven UI(SDUI)はAirbnbが用いた設計手法でUIの構造、レイアウト、さらには一部の動作ロジックを、クライアント側ではなくサーバー側で定義・制御するアーキテクチャパターンです。
モバイルアプリ開発においてA/Bテスト等でUIを分ける際にいくつかやり方があるかと思いますが、
このLTではStacというFlutter専用のSDUIのFrameworkを用いた紹介をします。
Flutterアプリのグローバル化対応、.arbファイルのキー分割やコードへのタグ埋め込みに悩んでいませんか?それは標準的な手法が持つ限界のサインかもしれません。グローバルアプリには、単純なキー値置換では乗り越えられない「語順」と「リッチテキスト」という大きな壁が存在します。
言語ごとに異なる文の構造、あるいは「利用規約に同意する」のような部分的なスタイル適用。これらに無理やり対応しようとすると、翻訳テキストは分断され、メンテナンスコストとヒューマンエラーを増大させます。
本トークでは、これらの課題をスマートに解決する「CSV主導」のグローバル化アーキテクチャを提案します。非技術者である翻訳者との協業を円滑にし、真にスケーラブルなグローバル化を実現しましょう。