Flutter で高度なグラフィックスを実現するために、これまでは RenderObject や CustomPainter を利用していました。
しかし、これらは CPU 上で多くの処理を実行することになってしまうため、柔軟性や表現力にどうしても限界がありました。
Flutter 2.8 で Fragment Shader を利用可能になり、GPU 上で処理を実行できるようになったため、より柔軟で高度なグラフィックスを実現できるようになりました。
本セッションでは Fragment Shader の基礎から Flutter での具体的な実装例についてお話しします。
私たちのチームは、品質維持を目指してテスト戦略の見直しを行い、その結果、integration_testを用いた自動テストの導入に至りました。
これまで一年間の運用を通じて、自動テストのシナリオ数は40を超え、その過程で多くの課題と学びがありました。
具体的には、以下のような問いに対する答えを探求しました。
私たちがこれらの課題にどのように取り組み、何を学んだのかを共有します。さらに、以下の観点からも話を進めます。
本トークは、Flutterとintegration_testを使用したプロジェクトの事例を中心に話しますが、その内容はモバイルアプリ全般の開発に役立つ情報を提供します。
「TOKYO MIX CURRY」はアプリストア評価4.8を獲得している「アプリでしか注文できないカレー屋」です
4年前よりFlutterを採用しており、その主要な機能である決済に関して、以下の方法を提供しています:
本セッションでは、実際の商用プロダクトとして4年間運用した際の課金に関するノウハウについて、詳細にまとめて解説します
Dart言語はFlutterとともにアプリフロントエンドの領域で広く認知されてきました。しかし、バックエンドにおける実践的な活用例はまだまだ少ないのが現状です。
とはいえ、Flutterアプリ向けのBFF(Backend For Frontend)をDartで実装することは、型宣言を共通化することができ、生産性を飛躍的に向上させるアプローチとなり得ます。
本セッションでは、Dartをバックエンド・BFFに採用する背景から、dart_frogというパッケージの特徴と、マルチパッケージ管理ツールであるmelos を利用して、Flutterでのアプリ構築を加速させる過程について深掘りします。更に、実際の案件でdart_frogとmelosを導入していく過程、そしてそれをどのようなプロジェクトに組み込んだのかの経験談を交えながら、Dartバックエンド・BFFとしての魅力と、それを実現する具体的な手法をお伝えます。
アプリケーションを作る上でライフサイクルの管理は欠かせません。
しかしながらFlutterはEverything is a Widgetになっているため、既存のモバイルアプリのライフサイクルの概念にあてはめるには少し考える必要があります。
また最新のFlutter 3.13.0でライフサイクルの動作がどのように変わったのかを解説します。
このセッションでは以下の内容を想定しています。
Flutter/Dart による開発を行う際、json_serializable や freezed に代表されるような、build_runner を用いたコード自動生成パッケージを利用している方は多いのではないでしょうか。
本セッションでは、既存の主なコード自動生成パッケージや、スピーカーが開発中のコード自動生成パッケージ flutterfire_gen を例に挙げながら、Dart のコード自動生成の内部の仕組みや、コード自動生成パッケージの自作方法について解説します。
主な内容:
このセッションでは普段あまり考える機会が少なそうなセキュリティの話をします。
Flutterで動くものを作りたい!というときに機能開発に目がいきがちで、しっかりとFlutterでのセキュリティを意識した開発を視聴者に意識付けることが目的です。
内容的には、弊チームで業務でFlutterアプリを開発するに当たって導入しているFlutterでのセキュリティ実装を紹介しながら、どのような対策を行えるかをセッションを通して考えていきます。
Flutterアプリを開発する上でCI周りでのセキュリティ面の話も少しできたらと思います。
漫画アプリをFlutterで作成する機会が訪れました。
漫画のビューアでは画像を表示するだけでなく、拡大やページ移動、見開き表示など様々な機能に対応する必要があります。
このセッションでは、漫画ビューアでよく利用される以下の内容についてお話しいたします。
2023 年現在の Flutter アプリ開発において、「状態管理パッケージを使わない」 という選択肢は無いと言っても過言ではないでしょう。
GetX や BLoC, Riverpod と多くの選択肢がある状態管理パッケージですが、特に日本においては Riverpod が採用されるケースがほとんどだと思います。
しかし考えてみると、なぜすべてのアプリに必要な「状態管理」の仕組みに対して我々はサードパーティのパッケージをインストールする必要があるのでしょうか。どのアプリでも必要なのであれば、 Flutter 自体に標準で用意されていても良さそうに思えます。
このセッションでは、その「Flutter 自体に標準で用意されて」いる InheritedWidget や Provider などの「古い」状態管理手法を利用することの問題点と、それを解決する Riverpod のアプローチについて議論することで、状態管理パッケージの選定の際に確かな根拠を持って「このアプリには Riverpod が必要です」と言える状態を目指します。
Google I/O 2023でのnext-gen UIの発表や、2023年のFlutter Forwardでの3Dオブジェクトの描画に関する新機能の披露があり、Flutterで目を惹くUIデザインを実現する取り組みが加速しています。加えて、Flutter公式のハッカソンであるFlutter Clock ChallengeやFlutter Puzzle Hackの入賞作品のUIデザインはどれも魅力的なものでした。
しかし、こういった魅力的でユーザーの目を惹くUIデザインの実装にチャレンジしている方はまだ少ないのではないでしょうか。
このセッションでは、Flutterで目を惹くUIデザインを実現するための4つの手法を紹介します。
これらの手法を具体例をもとに、それぞれの実装方法や特徴を徹底解説します。
このセッションを通して、ユーザーを惹きつける洗練されたUIデザインのアプリを開発できるようになるでしょう。