はこんだて

サービス概要

構成

利用技術・パッケージ

状態管理

  • Riverpod : 状態管理パッケージ,コンパイル時のエラー検知や無駄なクラスのネストを回避できる
  • State Notifier : 状態値をimmutableに扱うためのパッケージ
  • freezed : State Notifierをより簡素に実装するためのパッケージ
    • freezed_annotation
    • build_runner

ローカルデータ

  • SQLite
  • Moor : SQLiteとAppを繋ぐパッケージ,DB操作とかが楽になる

遷移(Routing)管理

  • Navigator 2.0 : 宣言的な遷移の実装ができるパッケージ
  • 2022/3/6 Naivigator 2.0 がわかりにくいので,それをラップしたパッケージであるRoutemasterを利用しています

アーキテクチャ

MVVMを採用
flutter-architecture-blueprintsなどを参考に構築

Null Safetyを採用
Sound null safety in Dart
Null safety in Flutter

概要

  • view : Widgetの描画
  • view_model : viewで受け取った入力の処理
  • model : view_modelで扱うクラスの管理
  • repository : 保存データへのアクセス管理
    • local : ローカルデータとの通信処理
    • remote : リモートデータとの通信処理

コーディング規約

基本的にはEffective DartStyle guide for Flutter repoに従う

翻訳してくれているサイト

Effective Dartまとめ

実際にあったミス

  1. リストの要素,Widgetツリー,オプション引数の最後の要素にカンマをつけてない
    Widget(
      childlen: [
        Widget1(),
        Widget2()  // ここのカンマ(,)
      ]            // ここも
    );