App lib directories
Flutterアプリのlibディレクトリの構成についてのAltive標準構成を提示する。 アプリごとに最適解は異なるが、推奨を示す。 実践して感じた改善案があれば、ぜひIssueやPRを投げてください。
2 minute read
テストしやすいコードを書くことを心がける。
DateTime.now()
を使用すると、テストで日時を差し替えることができない。clock パッケージを使用し、代わりに clock.now()
を使用しておくことで、 withClock
メソッドを使ってテスト時に日時を差し替えることができる。
以下に該当する場合は、必要なフィールドのみを個別にUIコンポーネントの引数で渡して利用するようにする。
以上に該当しない場合や、UIの名前とモデルクラスの名前が一致したり、違和感ない場合はそのまま使用する。
e.g., EventReport
というモデルクラスを EventReportListTile
の引数として使用する。
UIに最適化された、専用のIn-houseAPIであれば、そのまま使用できることが多い。
詳細ページや編集ページなどのPageクラスで引数に値を渡したい場合は、ID等のパラメータを設定し遷移先でProviderを通じて必要なオブジェクトを取得する。
なお、コスト的な問題やオブジェクトにした場合のメリットが大きい場合は除く。
Flutterアプリのlibディレクトリの構成についてのAltive標準構成を提示する。 アプリごとに最適解は異なるが、推奨を示す。 実践して感じた改善案があれば、ぜひIssueやPRを投げてください。
Riverpod is a state management library for Flutter. It is a fork of the Provider package.
REST API Client
FlutterアプリにおけるNavigatorの使い方について