一般セッション

スケーラブルなFlutter CI/CD:個人開発から大規模SIerまで

ma_freud Masahiro Aoki

本セッションでは、Flutter開発におけるCI/CDの重要性と、各開発環境に適したツールの選択について解説します。個人開発、受託開発会社、自社開発スタートアップ、大規模SIer案件まで、幅広い開発経験を持つ講演者が、実践的な知見を共有します。

主な内容:

  • CI/CDの基本概念とFlutter開発での具体的なメリット
  • 主要なCI/CDツール(Codemagic、Bitrise、GitHub Actions、fastlane)の比較
  • チーム規模と予算に応じたCI/CDツールの選択基準
  • 各開発環境に適したCI/CDパイプラインの構築方法
  • CI/CD導入時の課題と解決策(予算確保、保守方法、上司の説得など)

本セッションを通じて、参加者はFlutter開発におけるCI/CDの実践的な知識を得られ、自身のプロジェクトに最適なCI/CD戦略を立てる力を身につけることができます。

想定視聴者

  • CI/CDの導入を検討しているFlutter開発者
  • 既存のCI/CD環境の改善を目指すチームリーダー
  • 効率的な開発プロセスに興味のあるプロジェクトマネージャー
  • Flutter開発の品質向上とデリバリー速度の改善を目指す開発者

どの規模の開発チームにも適用できる知見を提供し、Flutter開発の効率と品質の向上に貢献します。

1
一般セッション

グローバルFlutterカンファレンスに挑戦しよう!

ma_freud Masahiro Aoki

概要

本セッションでは、国際的なFlutterカンファレンスへの登壇経験を共有します。2024年、State Of Open Conference(イギリス)、Flutter Connection(パリ)、Fluttercon EU(ベルリン)、Flutter Formosa(台湾)に登壇した経験を基に、以下の点についてお話しします:

  • 効果的な英語学習法
  • 採択されるCFP(Call for Papers)の書き方
  • 海外カンファレンスでの適切な振る舞い方

このセッションの最大の目的は、グローバルカンファレンスがもたらす素晴らしい機会を皆様にお伝えすることです。最新のFlutter情報収集だけでなく、有名パッケージの作者との意見交換や、かけがえのない友人関係の構築など、得難い経験ができます。

Flutterコミュニティの一員として、より多くの日本人開発者がこの素晴らしい経験をし、グローバルな舞台で活躍することを願っています。本セッションを通じて、皆様の挑戦への第一歩を後押しできれば幸いです。

想定視聴者

  • グローバルなFlutterコミュニティに参加したいと考えている開発者
  • 海外カンファレンスでの登壇に興味がある方
  • 英語での技術プレゼンテーションに挑戦したい方
  • Flutterの国際的なネットワークを築きたいエンジニア
LTセッション

環境構築をスキップしてFlutterでのプロトタイピングを高速に行う

chigichan24 chigichan24

概要

環境構築が開発を行う上で最も最難関の準備パートではないでしょうか? flutter doctor コマンドを使っても解決まで時間がかかった経験を持っている初学者の方はいませんか?
Project IDX はこれらの課題を解決し、すぐに関心事である実装に集中することができます。 Project IDX はいわゆるplaygroundの一種で、オンラインで開発環境を提供するツールです。Flutterはこの中に含まれています。オンラインで開発の環境が完結しているため、環境構築の手間をほとんど0にしてコードを書くことができます。

このプロジェクトは発展途上ではありますが、プロトタイピングに非常に優れています。プロトタイプした完成のみならず、コード自体も共有しアイデアをすぐに実装・プロトタイプに反映する、高速な開発を進めることが可能になります。

このLTでは、IDXを用いてプロジェクトを作る方法や、既存のFlutterプロジェクトをIDXにする方法、エミュレータの使用方法など Flutter のための Project IDX の使い方を共有します。

想定視聴者

  • これまで、環境構築に苦労した経験のある方
  • プロトタイプの完成品だけでなく、コードを簡単に共有したい方
  • Project IDX に興味がある方
LTセッション

0から作るFlutter開発組織 2024

nato_ring Kohei Natori

概要

本セッションではFlutter開発経験が0のモバイルエンジニアのみで構成された弊チームが、どのようにしてFlutterを学び、新規アプリをリリースするまでに至ったかを2024年度版と題してご紹介します。
Flutter導入の背景から、効果的だった勉強方法やそうでなかった方法、実際に新規アプリを開発・リリースするまでの道のりについて具体的にお話しします。
現在では、Flutterで開発したアプリを1つリリースし、さらに2つの新規アプリを開発中です。
Flutterの導入を検討しているエンジニアやマネージャーにとって有益な情報を提供し、実際の導入事例を通じてチーム全体で新しい技術を学ぶ際の参考にしていただければと思います。

想定視聴者

・ Flutterに興味があるが、どのように学習を進めれば良いか悩んでいるエンジニア
・ 新しい技術を導入する際のチームの学習プロセスやリソース配分について知りたい方
・ チーム全体で新しい技術を学ぶ際の効果的な方法や、実際の導入事例を知りたい方
・ 新しい技術を導入する際のメリットやデメリット、実際の導入事例を通じて、組織全体の技術戦略を考える参考にしたい方

一般セッション

高品質にアプリデリバリーを3倍にする

新垣清奈

タイトル

高品質でアプリデリバリーを3倍にする

概要

迅速かつ高品質なアプリデリバリーは競争力の源泉です。しかし、開発速度を上げる一方で、品質を落とすことなくアプリを提供することは難易度の高い課題です。本セッションでは、私たちの開発チームが実際に実践し、アプリを週1回リリースから週3回のリリースにデリバリー速度を向上させた具体的な戦略とツールの活用方法を紹介します。

このセッションの内容は以下の通りです:

  • 高リリース頻度を実現するCI/CDの構築
  • コード品質を維持するためのQCとe2eのプラクティス
  • カスタムLintルールの導入と運用によるコード品質の向上
  • SLI/SLOとフィードバックループの活用
  • 実際に得られた成果と改善点についてのデータ共有

想定視聴者:

  • 開発スピードを高めつつ、品質を保ちたいプロジェクトマネージャーやプロダクトオーナー
  • CI/CDパイプラインの構築や最適化に興味があるデベロッパー
  • コードレビューやLintツールを使ってコード品質の向上を目指すチームリーダー
  • 自動テストやモニタリングの導入に関心があるエンジニア
  • システムのスケーラビリティと信頼性を高めたい技術チーム
1
採択
一般セッション

Shorebirdを活用したFlutterアプリの即時アップデート:Code Pushの実践と可能性

ma_freud Masahiro Aoki

本セッションでは、Flutterアプリの「Code Push」(即時コードアップデート)を実現するShorebirdについて深掘りします。Shorebirdを使用することで、FlutterアプリのDartコード部分の更新を、ストア審査なしでエンドユーザーのデバイスに即座に配信できます。

ただし、以下の重要な点に注意が必要です:

  • 初回リリースや大幅な変更時は従来通りの審査が必要
  • 更新できるのはDartコードのみ(ネイティブコードは不可)
  • 各アプリストアの規約遵守が必須

このセッションでは、以下の点に焦点を当てます:

  • Shorebirdの基本概念と仕組み
  • Code Pushの使用方法(ライブデモ含む)
  • CI/CDとの統合
  • 料金体系
  • Shorebirdの利点と課題
  • 実プロジェクトでの経験に基づく知見と教訓
  • アプリストア規約との整合性と法的考慮事項

想定視聴者:

  • 即時アップデートに関心のある開発者
  • Shorebirdを検討中の方
  • 実践的な使用例を知りたい方

複数プロジェクトでのShorebird導入・運用経験を基に、実践的な洞察と具体的なアドバイスを提供します。理論と実践の両面から、Shorebirdの効果的かつ適切な活用方法をお伝えします。技術的側面だけでなく、法的な観点からも安全な利用指針を示します。

1
LTセッション

E2Eテストシナリオのカバレッジを維持する技術

naruogram なるお

概要

私たちのチームは、約2年間にわたり自動テストの運用を行い、そのシナリオ数は70を超えました。その過程で多くの課題と学びがありました。
カバレッジを維持するためには、自動テストの書き方の統一性、痒いところに手が届く記法の必要性などの数多くの課題が存在します。

以下の内容についてお話しします。

  • 基本的なIntegration Testの書き方
  • SMS・メールアドレスログインやWebView、Map機能などの自動テストの書き方
  • 自動テストの効果的な定期実行方法
  • ライブラリ更新に気づく自動テストの手法

想定視聴者

  • Flutterを使ったアプリ開発での自動テストに興味がある方
  • 自動テストの導入・運用を検討中の方
  • Integration Testに興味がある方
1
一般セッション

E2Eテストシナリオのカバレッジを維持する技術

naruogram なるお

概要

私たちのチームは、約2年間にわたり自動テストの運用を行い、そのシナリオ数は70を超えました。その過程で多くの課題と学びがありました。
カバレッジを維持するためには、自動テストの書き方の統一性、痒いところに手が届く記法の必要性などの数多くの課題が存在します。

以下の内容についてお話しします。

  • 基本的なIntegration Testの書き方
  • SMS・メールアドレスログインやWebView、Map機能などの自動テストの書き方
  • 自動テストの効果的な定期実行方法
  • ライブラリ更新に気づく自動テストの手法

想定視聴者

  • Flutterを使ったアプリ開発での自動テストに興味がある方
  • 自動テストの導入・運用を検討中の方
  • Integration Testに興味がある方
一般セッション

作ってわかるDevTools Extensions

itometeam itome

Flutter開発の効率と快適さは、適切なツールの活用に大きく左右されます。本セッションでは、DevTools Extensionsを活用して開発体験を向上させる方法を、実際に拡張機能を作りながら探求します。
DevTools Extensionsは、Flutterの標準開発ツールをカスタマイズし、プロジェクト固有のニーズに合わせた機能を追加できる強力な機能です。このトークでは、DevTools Extensionsの基礎から応用まで、ハンズオン形式で詳しく解説します。

主な内容:

  • DevTools Extensionsの概要と開発体験改善における利点
  • ステップバイステップで学ぶカスタム開発支援拡張機能の作成方法
  • 実践的なコード生産性向上のための拡張機能の実装
  • UIデザインとレイアウト調整を効率化する拡張機能開発
  • チーム全体の開発効率を向上させるDevTools Extensionsの活用法

想定読者

  • 中級〜上級のFlutter開発者
  • 開発プロセスの効率化に興味のあるエンジニア
  • 開発者体験の向上を目指すチームリーダーやテックリード
一般セッション

作ってわかるDevTools Extensions

itometeam itome

Flutter開発の効率と快適さは、適切なツールの活用に大きく左右されます。本セッションでは、DevTools Extensionsを活用して開発体験を向上させる方法を、実際に拡張機能を作りながら探求します。
DevTools Extensionsは、Flutterの標準開発ツールをカスタマイズし、プロジェクト固有のニーズに合わせた機能を追加できる強力な機能です。このトークでは、DevTools Extensionsの基礎から応用まで、ハンズオン形式で詳しく解説します。

主な内容:

  • DevTools Extensionsの概要と開発体験改善における利点
  • ステップバイステップで学ぶカスタム開発支援拡張機能の作成方法
  • 実践的なコード生産性向上のための拡張機能の実装
  • UIデザインとレイアウト調整を効率化する拡張機能開発
  • チーム全体の開発効率を向上させるDevTools Extensionsの活用法

想定読者

  • 中級〜上級のFlutter開発者
  • 開発プロセスの効率化に興味のあるエンジニア
  • 開発者体験の向上を目指すチームリーダーやテックリード
LTセッション

インタラクティブなアニメーション演出をコードで作る

oinariman 三原亮介

概要

Flutter用のゲームエンジン「Flame」をご存知でしょうか? Flameは、スプライト管理、衝突判定、エフェクトなど、2Dゲームに必要な機能を一通り備えています。FlameのGameWidgetはFlutterのWidgetツリーのどこにでも挿入できるため、ゲームアプリ以外のアプリにもゲーム的な要素を盛り込むことができます。

近年のモバイルアプリでは、LottieやRiveといったツールで作成されたベクターアニメーションが盛んに利用されていますが、これをFlameを使ってゲームライクなインタラクティブコンテンツに置き換えると、またちがった面白さが生まれるかもしれません。

このトークでは、Flameを用いて一般的なモバイルアプリのアニメーション演出をユーザーが操作できるコンテンツに変換した事例を紹介します。Flameを活用した派手な演出の作成方法や、GameWidgetとFlutterアプリ本体との連携方法についてもお話しします。

想定視聴者

  • 楽しい演出でユーザーを引きつけたい方
  • インタラクティブなアニメーション演出をコードで作ってみたい方
一般セッション

マルチパッケージをFlutterアプリ開発に取り入れる

K9i_apps K9i - Kota Hayashi

概要

  • ネイティブ開発で広く採用されている一般的なマルチモジュール構成、最近ではFlutterでもmelosを使ったマルチパッケージ構成が徐々に導入されています。
  • このセッションでは、実際に業務でmelosを活用してFlutterアプリにマルチパッケージ構成を導入した実体験を共有します。導入のメリット・デメリット、現状の課題、そして今後の展望について具体的に語ります。

想定視聴者

  • マルチパッケージ構成に興味がある開発者
  • melosやPub Workspaceを使った開発に関心がある人
  • マルチパッケージでのアーキテクチャや実践事例を知りたいエンジニア
1
一般セッション

Dart macrosの仕組みを知ろう

K9i_apps K9i - Kota Hayashi

概要

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

想定視聴者

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

build_runner の実行を高速化する

_masssun 増山洸輝

概要

昨今の Flutter 開発の現場において、build_runner は欠かせない存在になっているかなと思います。

しかし一方で、それなりに大きなコードベースで作業されている方は特に、build_runner の実行時間の長さによって生産性が低下したり、また DX (Developer Experience) が阻害されているという人も多いのではないでしょうか。

本セッションでは build_runner による待ち時間を少しでも短くするための tips についてお話しします。

想定視聴者

・開発現場で build_runner を使っている方
・build_runner の実行時間に課題を抱えている方

一般セッション

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

_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で実装しようとしている方
  • レンダリングを向上させるパッケージの開発に興味のある方
採択
LTセッション

Dart Native Assets で広がる開発の幅

SKKbySSK_TC ぎもちん

概要

Dart や Flutter ではいままで、ビルド時に追加の処理を行う手段がありませんでした。
しかし最近、 Native Assets と呼ばれる新機能が追加され、ビルド時に追加の処理を行うことが可能になりました。
本LTでは、 Native Assets とはそもそもどんな機能なのか、どのように活用できるのかをお話しします。

想定視聴者

Dart/Flutter でアプリやパッケージ開発をする方全般
特に、FFIを用いた開発をしている方

LTセッション

エンジニア、デザイナー、みんなのためのデザイン定義

_a_akira AAkira

概要

現在担当しているサービスはモバイルアプリ(Flutter)とWebブラウザ(PC/SP)の複数プラットフォームに提供していますが、各プラットフォームでは一部を除いて共通のデザインコンポーネントを使って実装しています。
Flutterアプリで効率よく実装、管理するためにはどういったコンポーネント定義なら実装しやすいかをFlutterのコードを踏まえながら、デザイン作業も兼任しているエンジニア目線で解説します。

このセッションでは以下の内容を想定しています

  • Material Designの扱い方
  • デザインツールでの管理方法 (例としてFigmaを想定しています)
  • Flutter実装
    • Color
    • Text
      • TextStyle
      • Font
    • ThemeExtensionを用いたコンポーネント管理
      • Light/Dark Theme
      • Button, Cardなど

想定視聴者

  • テーマの管理方法に悩んでる開発者
  • Flutterアプリを担当している、しようとしているデザイナー
一般セッション

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

BowyerApp Takaya Shono

概要

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

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

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

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

想定視聴者

  • CodePushの導入を検討しているが、具体的な始め方がわからない方
1