一般セッション

Dart macrosの仕組みを知ろう

K9i_apps K9i - Kota Hayashi

概要

  • Flutter開発を大きく変えると注目されているDartのmacros機能。メタプログラミングとして従来のbuild_runnerを使ったコード生成と比べて、パフォーマンス、効率、生産性に優れた新しいアプローチとされています。
  • このセッションでは、Dartのmacrosがanalyzerやcompilerでどのように扱われているのかを深掘りしつつ、従来のbuild_runnerとの違いとその優位性を明らかにします。

想定視聴者

  • Dartのmacrosに興味があり、メタプログラミングを活用して開発効率を向上させたい開発者
  • build_runnerとmacrosの違いを実現方法から知りたい開発者
1
一般セッション

少数精鋭で挑む大規模アプリ開発の裏側

_masssun 増山洸輝

概要

数100万 MAU を誇る大規模アプリを Flutter にてリプレースを行い、現在も開発を続けています。

本セッションでは、少数精鋭 (3〜5名程度) で大規模アプリのリプレースを成功させ、アプリの信頼性を落とすことなく、いま現在も安定した開発を続けている、その開発の裏側についてお話しします。

【セッション内容の詳細】

・技術選定
・どのようなアーキテクチャ、package などを採用したか
・アーキテクチャの解説
・意思決定の背景
・アプリの信頼性を担保するための取り組み
・自動テスト
・モニタリング
・持続可能で安定した開発をどのように実現しているのか
・CI/CD
・チームの技術力の底上げ
・しくじり談

想定視聴者

・これからサービスの立ち上げに関わる方
・アプリの品質の担保に悩んでいる方
・少数チームで持続可能で安定した開発を実現させたい方

一般セッション

Flutter x Supabase ユニットテスト大全

Aoi_Umigishi Aoi Umigishi

概要

Supabaseは Firebaseの代替となるオープンソースのBaaSです。

本セッションでは、Supabaseを利用したアプリ開発における、
ユニットテストの実装方法について、
私の業務での実装経験をベースに、
認証、SQLデータベースへのCRUD操作の2つの観点から解説を行います。

具体的には以下の内容について解説します。

  • Supabase とは
  • ユニットテストとは
  • 認証に関するユニットテストの実装方法
  • CRUD操作に対するユニットテストの実装方法

Flutter 用のパッケージが提供されていること、
Postgres SQLというFirebaseとの差別化点があることから、
Flutter と Supabaseでの開発は、今後も増えていくと考えられます。

テストに関する情報はまだまだ少なく、
実装に困っている方は多いと考えます。
本セッションが開発者の方々の一助となれば幸いです。

想定視聴者

  • Flutterアプリ開発にて、Supabaseの導入を検討している方
  • テストの実装方法について学びたい方
一般セッション

Flutter GPU ~ Flutter x 3D で実現できる未来 ~

Aoi_Umigishi Aoi Umigishi

概要

Flutter 3.24のアップデートにて、
Flutter GPU と呼ばれる低レベルのグラフィックレンダリングのAPIが紹介されました。
Flutter GPU により、2Dだけでなく3Dのグラフィックが、
ネイティブのコードの利用をせずに利用できるようになります。

本セッションでは、Getting started with Flutter GPUと、
私の調査結果から、このFlutter GPUについて紹介、解説を行います。

具体的には以下の内容について解説します。

  • Flutter での3次元レンダリングの過去
  • Flutter GPU について
  • Flutter GPU での2次元図形作成
  • Flutter Scene を利用した3次元モデルの描画
  • Flutter x 3D の未来

本セッションを通して、Flutterの未来を覗いてみませんか?

想定視聴者

  • 3D モデルを利用したFlutterアプリ、ゲームを開発しようとしている方
  • 高度なアニメーションをFlutterで実装しようとしている方
  • レンダリングを向上させるパッケージの開発に興味のある方
一般セッション

Goodbyeストア審査!CodePushでスピーディーなプロダクト運用を実現

BowyerApp Takaya Shono

概要

モバイルアプリの開発において、審査は避けられないプロセスです。
しかし、リリース後にバグが発覚すると、再び審査を経る必要があり、ユーザーに不便を強いることがあります。
特にユーザー数が多い企業のアプリでは、このプロセスが大きな課題となり得ます。

このセッションでは、月間約2万人が利用する弓道アプリ「採点簿」での実際のCodePush導入経験を基に、運用ノウハウを解説します。
また、このノウハウを本業の大規模アプリに組み込み、実際に稼働させた過程を具体的に説明します。

このセッションで得られること

  • CodePushの基礎知識
  • CodePushを本番環境で安定稼働させるまで適用戦略
  • CodePushの安定性やパフォーマンスについて
  • 実際の社内の大規模アプリにおけるCodePushの適用戦略

想定視聴者

  • CodePushの導入を検討しているが、具体的な始め方がわからない方
1
一般セッション

SliverAppBarはなぜ変化する? ~ Sliverを内側から理解する ~

Aoi_Umigishi Aoi Umigishi

概要

SliverAppBarはスクロールに応じて大きさが変化したり、スクロールを中断時に出現したりするAppBarのWidgetです。
ちょっとリッチなスクロールを実装する際に利用するこのWidget、
どうしてこのような動きが実現できるのでしょうか?
SliverAppBarを題材に、FlutterのSliverの中身を深掘りして解説します。
また、Flutter 3.24で追加されたPinnedHeaderSliver、SliverResizingHeaderについても、中身を解説します。

具体的には以下の内容について解説します。

  • SliverAppBar の動き
  • Sliverとは
  • Sliverの仕組み
  • SliverAppBarの仕組み
  • PinnedHeaderSliver、SliverResizingHeaderについて

Flutterでのスクロール画面でのエラーに対し、
CustomScrollView、Sliverの利用はよく採用される解決策です。
今回の発表を通してSliverへの理解を深めていただき、
開発力の向上の一助となればと思います。

想定視聴者

  • Flutterでリッチなスクロール画面を実装したい方
  • Flutterの内部実装に興味のある方
  • Sliverの取り扱いに悩んでいる方
一般セッション

UIパフォーマンス計測入門

akihiro_kokubo Akihiro Kokubo

概要

真心を込めて開発したアプリがカクついたときのショックは、今でも忘れられません。

アプリがスムーズに動かないとき、あなたなら何から始めますか?どこから修正しますか?リビルドの回数を減らすために const を使ったところ、カクつきが改善されました。でも、リビルドの回数は何回から何回に減少したのでしょう?パフォーマンスを改善する際には、推測に頼るのではなく計測をしてボトルネックを特定することが重要です。

本セッションでは、UIパフォーマンス計測の入門として、DevToolsに注目します。DevToolsは、Flutterアプリのパフォーマンス計測には欠かせないツールです。特に、フレームレートの監視、ジャンクやスクロールヒッチの検出、ウィジェットのリビルドの計測、メモリの割り当てとCPU使用率の分析に焦点を当てます。そして、サンプルプロジェクトを使って実際にUIパフォーマンスを計測し、問題の原因を特定し、一つずつ改善していきます。

UIパフォーマンスの問題により、描画が乱れたり、操作が遅くなったりすることは珍しくありません。そんなときでも焦らず計測し、ボトルネックを特定し、問題を解消するための実践的な方法を、デモを交えて紹介します。

想定視聴者

スムーズで快適なアプリをユーザーに届けたい方
根拠を持ってUIパフォーマンスの改善をしたい方

一般セッション

Flutter学び直し:知っておきたいWidgetとテクニック

akai_t AKAI Tadaaki

概要

Flutterアプリケーション開発の核心となるのは、WidgetとPackageです。これらを深く理解することで、あらゆる開発課題に効率的に対応できるようになります。

本セッションでは、YouTubeで公開されている「Flutter Widget of the Week」や「Flutter Package of the Week」シリーズの内容からピックアップしてFlutterのWidgetとPackageについて解説します。
参加者の皆様は、Flutterの基本的な要素を再確認しつつ、新たな視点や活用法を学ぶことができます。WidgetとPackageの理解を深めることで、より効率的で創造的なFlutter開発のスキルを身につけることができるでしょう。

想定視聴者

本セッションは、以下の方々に特におすすめです:

Flutterを始めたばかりの初心者の方

基本的な開発経験はあるが、さらなるスキルアップを目指す方

WidgetやPackageについて体系的に学びたい方

Flutterを始めたばかりの初心者からなんとなく一通りの開発ができる人まで幅広く聞いてもらえるセッションにする予定です。

一般セッション

Dart Puzzle

SakushinFlutter さくしん

概要

以下のようなコードがDartで書けることはご存じでしょうか。
Dart3でパターンマッチングが導入されてから、色々な表現の幅が広がりました。このトークでは、あまり標準的ではないDart標準の表記方法をクイズ形式で紹介していこうと思います。

Person fromJson(Map<String, dynamic> json) {
  if (json case {'company': String company, 'name': String name}) {
    return Person(company: company, name: name);
  } else if (json case {'name': String name}) {
    return Person(name: name);
  }

  throw Exception('Illegal json format');
}

想定視聴者

Dart 中級者以上

1
一般セッション

Firebase Dynamic Links終了に備える:FlutterアプリでのAdjust導入とディープリンク最適化

appgrape techiro

概要

2025年8月にFirebase Dynamic Links(FDL)のサービスが終了することが発表され、多くのアプリ開発者がAdjust、AppsFlyer、Bitly、Branch、Kochavaなど代替ソリューションの選定を迫られています。

本セッションでは、実際のプロダクトで行ったFDLからAdjustへの移行作業を通じて、FDLの主要な機能をカバーしつつ、Adjustを用いたディープリンクの設定方法、ディープリンク機能の実装例、分析に不可欠なログの実装方法、およびパーソナライズされたユーザー体験を提供するための戦略とその制約を紹介します。

これにより、FDL終了後のアプリ開発において、どのようにスムーズな移行を実現し、必要な機能を維持するかについて、明確な指針を提供します。このセッションを通じて、ディープリンク技術がどのようにアプリの成長と成功を支えるかを理解し、実際の開発に役立つ知識を提供します。

想定視聴者

  • FDLを利用したプロダクトを運用しており、代替の移行先を検討している方
  • ユーザーエンゲージメントの向上やアプリの成長に関心があり、ディープリンク技術を活用したいと考えている方
2
一般セッション

Effective Form ~ Flutterによる複雑なフォーム開発の実践 ~

_chocoyama たまねぎ

概要

「フォーム」を取り扱うアプリの機能実装は、考慮すべき点が多岐に渡り、難易度が非常に高い部分です。

例えば、商品注文や申請作成の入力画面は、単純な入力画面とは性質が異なり、複雑な仕様の中でミスができない実装が求められます。
そこでは、高度なバリデーションや、複数ソースからの動的なデータ取得・更新など、「複雑なロジックをフロントで実装する必要がある」点で多くの課題が存在します。

Flutterの活用は、開発効率を上げる有効な手段の1つですが、単に導入するだけでは上記課題は解消しきれません。
本トークでは、複雑度が極めて高いフォーム開発を、宣言的かつ型安全に保つことで、効率的に実現する方法をご紹介します。

トピック

  • Flutterでのフォーム画面開発
    • 実プロダクトの事例紹介
  • 状態管理とバリデーションのアプローチ
    • 状態設計の手法
    • Riverpod, flutter_hooksの活用
    • フォーム要素間の相互依存関係の処理
    • 複数画面間でのデータ同期の実装
  • ユーザー体験向上の工夫
    • エラー、アラートのフィードバック
    • 入力補助
    • 細かな操作感

想定視聴者

  • フォーム開発の設計や実装に悩んだことがある方
  • Flutterを使って効率的に複雑なフォームを実装したい方
一般セッション

MVVM実践:プレーン Flutter API で ViewModel と状態管理とDIを作って、処理フローのテストを書こう。

cch_robo robo

概要

このセッションでは、プレーン Flutter API を使って、MVVM アーキテクチャと簡単な状態管理や依存性注入を作り、仕組みの基本を知ってもらい、
これらのキーポイントを知ることで、要件仕様書を満たし、機能の追加や振る舞い変更も、処理フローのテストもしやすい実装作りを説明します。

仕事や自分でアプリを作るにも、 「このボタンを押したら、サーバからデータを取得して画面のここの表示が変わる」などから、
「必要なライブラリなどの要素技術を選択して、どんな入力で、どんな関数やフローで、どんな出力やエラーを期待するか」の要件仕様書ができます。

ですが要件仕様書を愚直に Widget に実装すると、神Widgetが誕生してしまうので、
一般的に MVVMで、Clean Archtecture に則り、View はデータの表示に徹し、ViewModel はデータ(状態)の提供と更新に徹し、
状態管理ライブラリで、状態更新された View のみの表示更新①、DI/依存性注入ライブラリで、テストコード①②を実装しています。

①Riverpod/GetItは、MVVM 専用ではありませんから、実装コードには工夫が必要!
②テストする関数やフローの実装を変えず、依存するデータや状態をテストダブル(モックオブジェクト等)にすり替えます。

想定視聴者

初心者から中級者

1
一般セッション

ストア審査なしでFlutterアプリを即時更新する方法

概要

このセッションではFlutter創設メンバーであるEric Seidelらが手掛けているサービスのShorebirdについて話します。
モバイルアプリの更新はWebアプリとは異なり、各プラットフォームのストア審査を通過する必要があり、時間と手間がかかります。
特に、ユーザーの手元で発生している不具合対応のアップデートが必要な状況では、この審査プロセスが迅速なリリースの障害となることがあります。
Shorebirdを使えば、AndroidとiOSアプリをストアの審査なしで素早く更新することが可能になります。
セッション内では実際にコードの修正を行い、ストアを経由せずにアプリを更新するデモンストレーションを行う予定です。

想定視聴者

  • アプリの更新プロセスを効率化したいと考えている開発者
  • Shorebirdを活用してリリースサイクルの短縮やアジリティの向上に興味がある開発者
2
一般セッション

Flutter+Supabase+Stripeで実現する総合的なイベントチケットシステムの構築

YumNumm もぐもぐ

概要

本セッションでは、FlutterとDartを活用した総合チケット管理システムの開発経験を共有します。
Flutter/Dartのクロスプラットフォーム対応の強みを最大限に活かし、Webサイト、モバイルアプリケーション、バックエンドを一貫して開発した経験を共有します。

システム構成

  • Flutter Webによるチケット購入サイト
  • Flutter Webによる主催者向けチケット管理サイト
  • チケット管理アプリケーション

技術スタック

  • Flutter (Web/iOS/Android)
  • Supabase (データベース)
  • Cloudflare Workers + Dart(バックエンド)
  • Stripe (決済処理)
  • Prometheus, Grafana(可視化とアラート)

その他

  • コード共有による開発効率の向上とメンテナンス性の改善
  • Supabase RLSのユニットテスト実装によるデータセキュリティの強化
  • Dartバックエンドの実装・運用

対象者

  • Flutterでのクロスプラットフォーム開発に興味のある開発者
  • Supabase+Stripeの決済システムに興味のある方

(注:本プロジェクトは進行中のため、詳細は変更の可能性があります)

1
一般セッション

全社を挙げてSQLに取り組む我々のローカルキャッシュ戦略

seikoseikou shayashi

概要

AwarefyではローカルキャッシュのためのパッケージをHIVE→Isar→Floor(sqflite)という流れで置き換えてきました。ローカルキャッシュを実装する上でのキャッシュ戦略について、Floorでの実装を交えながらお話しします。

想定視聴者

  • SQLになかなか触れることがないが、知識をつけたい方
  • ローカルキャッシュについて知りたい方
  • Floorについて知りたい方
1
一般セッション

Master of Gesture

nihon_kaizou みね

概要

Flutter アプリケーションにおいて、ジェスチャー操作は重要な UI 要素です。基本的なタップやスワイプは広く実装されていますが、より複雑で洗練されたジェスチャー操作の活用はまだ十分ではありません。
複雑なジェスチャーの実装には、 GestureDetector の深い理解が必要です。また、多様なジェスチャーの種類、適切な制御方法、カスタムジェスチャーの作成など、高度なスキルが求められます。
本セッションでは、 GestureDetector の仕組みから、様々なジェスチャーの種類と実装方法、制御テクニック、オリジナルのジェスチャー作成までを包括的に解説します。実践的なコード例と共に、複雑なジェスチャーを使いこなすための知識とスキルを提供します。

  1. GestureDetector の内部構造を理解
  2. 利用可能なジェスチャーの種類と特徴
  3. 複数のジェスチャーを組み合わせた高度な操作の実装
  4. ジェスチャーの衝突を防ぐ制御テクニック
  5. カスタムジェスチャーの設計と実装方法

想定視聴者

・より高度なユーザーインターフェースの実装に挑戦したい開発者
・独自のジェスチャー操作を実装したいと考えているアプリ開発者

1
一般セッション

アニメーションを最深まで理解してパフォーマンスを向上させる

nihon_kaizou みね

概要

Flutter でのアニメーション実装は、簡易に実装できてアプリの魅力を向上させる重要な機能ですが、複雑なアニメーションや大規模なアプリケーションでは、パフォーマンスの問題に直面することがあります。
複雑なアニメーションを実装する際、フレームレートの低下やメモリ使用量の増加など、パフォーマンスの低下が課題となっています。また、アニメーションの最適化手法や、適切なタイミングでの RepaintBoundary の使用など、開発者が理解すべき点が多岐にわたります。
本セッションでは、 Flutter のアニメーションを深く理解し、パフォーマンスを向上させるための実践的な手法を紹介します。 Flow を活用した複雑なアニメーションの実装、アニメーションのパフォーマンス最適化テクニック、そしてレンダリングを最小限に抑えるための tips について詳しく解説します。

  1. Flutter アニメーションの基本概念と内部実装を理解する
  2. Flow を使用した高度なアニメーションの実装手法
  3. アニメーションパフォーマンスの測定と分析
  4. レンダリング最適化テクニック

想定視聴者

・ 複雑なアニメーションの実装に苦戦している開発者
・ アニメーションのパフォーマンス向上に興味がある開発者

1
一般セッション

Dart Class modifiers Deep Dive! 実践的なモデリングを行うためのテクニック集

iktakahiro 池内 孝啓

概要

Dart の Class modifiers (クラス修飾子) は、2023年5月にリリースされた Dart 3 で大幅に機能が強化され、今では Dart/Flutter で開発するアプリのクラス設計において欠かせない存在となりました。

本セッションでは、Dart の Class modifiers の機能を簡単におさらいするとともに、実際のモデリングやクラス設計、実装においてどのように活用できるのかを紐解きます。Class modifiers の理解を深めることで、インターフェースを利用した抽象化、sealed class を利用したパターンマッチングなど、クリーンなコードを書くためのヒントを得られます。

また、Dart の機能・言語仕様にとどまらず、 Class modifiers を知り、活用することで Flutter アプリの開発にどのようなメリットが生じるのか、といった実践的な内容にも踏み込んで解説します。

想定視聴者

本セッションの想定視聴者は次のとおりです。

  • Flutterアプリ開発者全般
  • Class modifiers をどのようにクラス設計に活用できるのか、公式ドキュメント以外の実践例が知りたい
  • Class modifiers を利用したクラス設計が、アプリ開発にどのようなメリットをもたらすのかを知りたい
2
一般セッション

video_playerで追っかけ再生を実現する方法

b4tchkn batch

概要

このセッションでは、Flutter公式が開発しているvideo_playerについて話します。
video_playerの構成や使える機能などの紹介はもちろん、動画という各ネイティブ独自の機能を呼び出すときに考えなければいけない難しい部分についての話を行います。
video_playerはシンプルな機能しか提供していません。
本セッションでは、そんなvideo_playerを拡張するためにはどのような実装が必要かを、基本的なHLSの説明を元にvideo_playerに追っかけ(タイムシフト)再生を追加する例を元に紹介します。

  1. video_player
    1. 概要
    2. 全体構成
    3. 使える機能、使えない機能
  2. video_playerのpigeonを使ったネイティブコード呼び出し
  3. video_playerに機能追加を試して理解を深める
    1. AVPlayerとExoPlayerの仕様差異とその吸収の仕方
    2. ネイティブ機能を使うパッケージ開発の困難なところ
  4. video_playerの直近の動きと今後

想定視聴者

・video_playerを使っている人
・Flutterの動画再生に興味がある人
・Flutterでネイティブコードの呼び出しを実装したことがある人、興味がある人

2
一般セッション

Flutterアプリで可用性を向上させたFeatureFlagの運用戦略とその方法

b4tchkn batch

概要

WINTICKETアプリは2021年からトランクベース開発をFeatureFlagを取り入れながら行ってきました。
大規模が故に常に10数個のFeatureFlagをコードベースに埋め込みながら新機能の開発を進めていますが、公開前の機能が見えてしまったり、リリース前のコードが実行されてしまうなどの問題がいくつかありました。

本セッションではFeatureFlag運用を3年ほどした経験から、WINTICKETアプリ開発での具体的な運用方法とどのように可用性を向上させたFeatureFlagの運用戦略をとっているかを紹介します。

・WINTICKETでどのようにFlutterでFeatureFlagを用いたトランクベース開発の運用をしているかの紹介
・その運用で実際に起きた不具合例の紹介
・そのような不具合がどのような原因で発生したのかの分析
・不具合を起こさないためのFeatureFlag運用戦略とその具体的な対応方法の紹介

想定視聴者

・FeatureFlagを用いたトランクベース開発をしている方
・FlutterアプリでFeatureFlagを用いたトランクベース開発を検討している方

4