In the AI generation, we are living in now. How can we use it well to develop and implement better products? In this session, I will share with you how to complete an AI application through Flutter Full Stack, combining multi-connection interaction and fun. I will explain the full-end features, functional codes, and benefits it can bring to us so that everyone can experience more possibilities of Flutter!
ChatGPTのような生成AIの登場によって、プログラミングの在り方は大きく変わろうとしています。さらに、GitHub Copilot や Cursor などの開発ツールに登場によって、さらに素早く生成AIの機能を使えるようになってきています。
本セッションでは、日常から生成AIをFlutterアプリ開発などのプログラミング作業でフル活用している筆者が、生成AIを使い、より効率的に検索、コード生成、問題解決する方法を探ります。そのためのルールの書き方や、関連ツールについても紹介します。
生成AIの活用方法が気になるFlutterアプリ開発者
トランジションとは、アプリの個々の要素を繋ぐ短いアニメーションのことです。トランジションは、変化した意味を説明したり、UI要素の階層を明確化したり、ユーザーがアプリの動作を直感的に理解するのに役立つため、うまく使うことで、優れたUXを提供します。
本セクションでは、Material Designで紹介されている以下のような代表的なトランジションパターンと、それらの使い道や、実際にFlutterで実現する方法などについて紹介します。また、実際に業務で導入しようとしたときの体験談や反省点などについてもお話します。
トランジションパターンについて正確に理解することによって、UIアニメーションの利点を、ただ単にカッコいいからといった感覚的な理由からではなく、理屈で説明できるようになると思います。
・アニメーションを使ったUX改善に興味がある人
未踏アドバンスト事業 2023 に採択された私は flutter_unity_widget を利用した Flutter × Unity による AR アプリの開発に挑戦し、リリースしたアプリの運用を半年間経験しました。
参考リンク:https://www.cyberagent.co.jp/way/list/detail/id=29535
本トークでは、その際に得た flutter_unity_widget を利用した iOS / Android アプリを運用する上での知見について詳しくお話しできればと思います。
・flutter_unity_widget を利用したアプリをリリースしてみたい人
・flutter_unity_widget を利用したアプリで気をつけるポイントを知りたい人
・Flutter と Unity を掛け合わしたアプリを作ってみたい人
今後Flutterが大きく変わる転換点としてMacrosがあります。
私の所属するチームでは、freezedなどのモデル生成からflutter_genでのアセット管理、独自で運用しているmock用クラスを生成するfake_genなどがあります。それらの生成ファイルが既に1000件を超えており、開発環境及びCI環境で無視できない時間がかかっていました。
今後Macros導入によってそれらが何が変わり、何が必要なくなるのかをお話しします。
Flutterアプリ開発において「Widget」は欠かすことのできない重要な概念です。
Flutterのアップデートともに多彩な進化を遂げているWidgetを、私たちはどれくらい知り、どれくらい正しく使えているでしょうか?
例えば、DialogにはAlertDialog・SimpleDialog・Dialogが存在しますが目的や使い方は異なります。
本セッションでは普段のアプリ開発でよく使うWidgetから最近登場したWidgetまで、その機能と適切な使い所と実装について有名なパッケージなどを例に挙げながらサンプルコードと共に詳解します。
・ 新しいウィジェットや、あまり知られていないウィジェットの使い方を学びたい方
・ ウィジェットの選択や使い分けに関する知識を深めたい方
このセッションでは、Flutter開発における最新のCodePush技術を活用し、コンテンツの動的更新の実現方法を紹介します。CodePushを利用することで、アプリの審査を通さずに迅速な更新が可能となり、開発プロセスが効率化されます。具体的には、CodePushを実現する代表的なパッケージであるShorebirdの内部構造について説明します。また、先駆けとなったReact Native CodePushとの比較を通じて、Flutterの技術的な優位性や制約についても詳しく解説します。
Flutterの新しいレンダリングエンジン「Impeller」は、従来のSkiaと比べて多くの進化を遂げていますが、その具体的な技術的な違いや利点についてはまだ広く理解されていません。
このトークでは、「Impellerを知ろう」というテーマのもと、Impellerの基本的な動作原理やパフォーマンス向上の理由を解説します。
また、メリット・デメリットについても紹介し、実際に運用しているアプリのImpeller有効化の可能性を探っていきます。このセッションを通じて、Impellerの基本をしっかりと押さえ、Flutter開発における新たな可能性を探りましょう。
FlutterのScrolling Widgetsには様々な選択肢があり、それぞれに適用シーンや特長がありますが、最適な選択をするためには各ウィジェットの利点と用途を理解することが必要です。
このトークでは、Scrolling Widgetsの代表例であるSliverをはじめ、ListView、SingleChildScrollView、CustomScrollViewなどを徹底比較し、それぞれの利点と適用シーンを明確にします。
また、なぜ特定のWidgetがパフォーマンスに優れているのか、その背後にある技術的理由を解説します。また、実際に運用されているアプリでの実例などを踏まえつつ、より効率的でパフォーマンスの高いアプリを開発するための知識と技術を身に付けましょう。
Webアプリケーションでお馴染みのhookという概念があります。
これを使うと状態管理や副作用を隠蔽した状態で、とても宣言的にUIを書き上げることができます。
Flutterにおいてもflutter_hooksを使用することで同等の機能を実現でき、StatefulWidgetを全く書く必要がなくなります。
例えばTextEditingControllerなどの各種Controller系コンポーネントの初期化や破棄の処理をいちいち手書きする必要がなくなるのです。
私は業務でflutter_hooksを活用することで、非常に快適に状態管理を行えています。
本セッションでは以下のお話をします。
本セッションでは、Flutter開発におけるCI/CDの重要性と、各開発環境に適したツールの選択について解説します。個人開発、受託開発会社、自社開発スタートアップ、大規模SIer案件まで、幅広い開発経験を持つ講演者が、実践的な知見を共有します。
主な内容:
本セッションを通じて、参加者はFlutter開発におけるCI/CDの実践的な知識を得られ、自身のプロジェクトに最適なCI/CD戦略を立てる力を身につけることができます。
どの規模の開発チームにも適用できる知見を提供し、Flutter開発の効率と品質の向上に貢献します。
本セッションでは、国際的なFlutterカンファレンスへの登壇経験を共有します。2024年、State Of Open Conference(イギリス)、Flutter Connection(パリ)、Fluttercon EU(ベルリン)、Flutter Formosa(台湾)に登壇した経験を基に、以下の点についてお話しします:
このセッションの最大の目的は、グローバルカンファレンスがもたらす素晴らしい機会を皆様にお伝えすることです。最新のFlutter情報収集だけでなく、有名パッケージの作者との意見交換や、かけがえのない友人関係の構築など、得難い経験ができます。
Flutterコミュニティの一員として、より多くの日本人開発者がこの素晴らしい経験をし、グローバルな舞台で活躍することを願っています。本セッションを通じて、皆様の挑戦への第一歩を後押しできれば幸いです。
高品質でアプリデリバリーを3倍にする
迅速かつ高品質なアプリデリバリーは競争力の源泉です。しかし、開発速度を上げる一方で、品質を落とすことなくアプリを提供することは難易度の高い課題です。本セッションでは、私たちの開発チームが実際に実践し、アプリを週1回リリースから週3回のリリースにデリバリー速度を向上させた具体的な戦略とツールの活用方法を紹介します。
このセッションの内容は以下の通りです:
私たちのチームは、約2年間にわたり自動テストの運用を行い、そのシナリオ数は70を超えました。その過程で多くの課題と学びがありました。
カバレッジを維持するためには、自動テストの書き方の統一性、痒いところに手が届く記法の必要性などの数多くの課題が存在します。
以下の内容についてお話しします。
Flutter開発の効率と快適さは、適切なツールの活用に大きく左右されます。本セッションでは、DevTools Extensionsを活用して開発体験を向上させる方法を、実際に拡張機能を作りながら探求します。
DevTools Extensionsは、Flutterの標準開発ツールをカスタマイズし、プロジェクト固有のニーズに合わせた機能を追加できる強力な機能です。このトークでは、DevTools Extensionsの基礎から応用まで、ハンズオン形式で詳しく解説します。
Flutter開発の効率と快適さは、適切なツールの活用に大きく左右されます。本セッションでは、DevTools Extensionsを活用して開発体験を向上させる方法を、実際に拡張機能を作りながら探求します。
DevTools Extensionsは、Flutterの標準開発ツールをカスタマイズし、プロジェクト固有のニーズに合わせた機能を追加できる強力な機能です。このトークでは、DevTools Extensionsの基礎から応用まで、ハンズオン形式で詳しく解説します。
数100万 MAU を誇る大規模アプリを Flutter にてリプレースを行い、現在も開発を続けています。
本セッションでは、少数精鋭 (3〜5名程度) で大規模アプリのリプレースを成功させ、アプリの信頼性を落とすことなく、いま現在も安定した開発を続けている、その開発の裏側についてお話しします。
【セッション内容の詳細】
・技術選定
・どのようなアーキテクチャ、package などを採用したか
・アーキテクチャの解説
・意思決定の背景
・アプリの信頼性を担保するための取り組み
・自動テスト
・モニタリング
・持続可能で安定した開発をどのように実現しているのか
・CI/CD
・チームの技術力の底上げ
・しくじり談
・これからサービスの立ち上げに関わる方
・アプリの品質の担保に悩んでいる方
・少数チームで持続可能で安定した開発を実現させたい方
Supabaseは Firebaseの代替となるオープンソースのBaaSです。
本セッションでは、Supabaseを利用したアプリ開発における、
ユニットテストの実装方法について、
私の業務での実装経験をベースに、
認証、SQLデータベースへのCRUD操作の2つの観点から解説を行います。
具体的には以下の内容について解説します。
Flutter 用のパッケージが提供されていること、
Postgres SQLというFirebaseとの差別化点があることから、
Flutter と Supabaseでの開発は、今後も増えていくと考えられます。
テストに関する情報はまだまだ少なく、
実装に困っている方は多いと考えます。
本セッションが開発者の方々の一助となれば幸いです。