- [[Flutter]]アプリにおいて念頭におくべきこと - [[Single Source of Truth]] (SSOT)原則に従った状態管理 - SSOT になっていない場合画面によって表示される情報が異なるという不整合が起こりやすくなる - 状態の流れを単方向データフロー (Unidirectional Data Flow) で組む - コマンドクエリ責務分離 (CQRS) - 遵守必須ではないが大抵守る方が良いこと - [[immutableプログラミング]] - Unit/Widget Test 可能 - 単一責任の原則を意識 - ディレクトリ構造 - Feature-first: 機能ごとにディレクトリを分ける - 関連の強いモデル・サービス・UIなどが近い場所に配置される - 特定の機能を改修したいときにそのディレクトリだけ見れば良い - 大規模なアプリでスケールしやすい構造 - Layer-first: レイヤごとにディレクトリを分ける - 参考リンク - [Flutterアプリにおける、過不足ない設計の考察](https://medium.com/flutter-jp/architecture-240d3c56b597) - [Flutter Project Structure: Feature-first or Layer-first?](https://codewithandrea.com/articles/flutter-project-structure/)