採択 2022/11/17 18:40〜 Live レギュラートーク(30分)

Flutterアプリの安全な変化と拡大を支えるアーキテクチャと単体テスト FlutterKaigi 2022

6
tfandkusu 高田 晴彦 tfandkusu

アプリは1度作ったら終わりでは無く、継続的に変化と拡大を続けることが多く、変化の過程で既存機能に不具合が発生すること(デグレード)は極力避けたいです。そのために必要となる考え方がアーキテクチャと単体テストです。ガイドラインに基づいて適切な粒度で分割された部品に対して単体テストを作成することで、規模や開発メンバーが増えても安全にアプリを変化させていくことが可能です。

このセッションではFlutterアプリのアーキテクチャや単体テストについて、Android公式のアーキテクチャガイドと、PEAKSから出版されている「チームで育てるAndroidアプリ設計」を主な引用元として、以下のことをソースコードを含めて解説する予定です。

  • RiverpodとFreezedで単体テストが書きやすい3層のレイヤードアーキテクチャを構築する
  • ソースコードのディレクトリ構成とクラス/関数の命名規則をガイドライン化してチームの共通認識にする
  • 各レイヤーの部品に対して単体テストを作成する
  • Mockitoで下のレイヤーのモック実装を作成して単体テストで使用する
  • Codecovで単体テストの網羅性を確認する