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
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セッション

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

_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
LTセッション

Dart Flog で WebSocket 通信をマスターする

nihon_kaizou みね

概要

本セッションでは、Dart Frogを活用したWebSocket通信の実装方法を詳しく解説します。
WebSocket通信の実装には、接続管理、エラーハンドリング、再接続ロジックなど、考慮すべき点が多岐にわたります。また、Dartの非同期処理と組み合わせる際の適切な実装方法や、パフォーマンスの最適化も重要な課題です。
そこで Dart Frogの特徴や利点を紹介し、WebSocket通信の実装手順を step by step で説明します。さらに、実装上の注意点や最適化テクニックを共有し、効率的で信頼性の高いWebSocket通信を実現しましょう。

  1. Dart Frogの概要と特徴
  2. WebSocket通信の基本概念の復習
  3. Dart Frogを使用したWebSocketサーバーの構築
  4. Flutterクライアントでの WebSocket 接続の実装
  5. エラーハンドリングと再接続ロジックの実装
  6. best practices

想定視聴者

・Flutter でゲーム開発する際に Dart で websocket サーバーを実装したい開発者
・Dart Frogを使ったバックエンド開発に興味がある開発者

一般セッション

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

akihiro_kokubo Akihiro Kokubo

概要

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

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

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

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

想定視聴者

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

LTセッション

野菜で学ぶDartの高階関数

akihiro_kokubo Akihiro Kokubo

概要

ここに、野菜のリストがあります。
[にんじん, じゃがいも, たまねぎ, ブロッコリー]

あなたなら、緑色の野菜だけを選ぶにはどうしますか? それぞれの野菜をサラダ用にカットするには? 野菜の重さを合計するには? 空のコンソメスープに各野菜を追加するには?

これらの操作を簡単に実現できるのが、Dartの高階関数です。高階関数は、関数を引数や戻り値にとる関数のことです。Dartでは、map・where・reduce・foldなどが Iterableクラスのメソッドとして定義されています。これらを使うと、for文よりも簡潔で柔軟なコードが書けます。

本セッションでは、野菜を例に、Iterableクラスに定義された高階関数を直感的に理解することを目指します。また、具体的なケースで高階関数を使う場合と使わない場合を比較し、コレクション操作が簡潔で明瞭になることを体感します。さらに、Dart SDKの内部実装を参照して、Iterableクラスのメソッドの動作をより深く理解します。これにより、高階関数へのハードルが下がり、Dartでの開発がさらに楽しくなるでしょう!

想定視聴者

Dartの高階関数にハードルを感じている方
Iterableクラスの内部実装に興味がある方
野菜が好きな方

一般セッション

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