firestoreのDBではなく、api通信を使用して別でサーバーを立てる際の参考として作成しました。
- FirebaseAuthentication
- OpenApi(dockerで立ち上げるように管理)
- Riverpod(state管理)
- freezed(モデルクラスのimmutableなオブジェクト用のコード生成をしてくれる)
- flutter_lint
- flutter_gen(assets配下リソースへのアクセス設定ファイルを生成)
- 定数管理
- DDDっぽいフォルダ構成
で構成したテンプレートです。
$ cp .env.default .env
$ flutter pub get
$ open -A Simulator
$ cd ./openapi ; docker-compose up --build
$ flutter run
$ openapi-generator generate -i openapi/openapi.yml -g openapi-yaml -o ./openapi/generated && openapi-generator generate -i openapi/openapi.yml -g dart-dio-next -o ./openapi/client
$ cd ./openapi/client && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd ../../
$ flutter packages pub run build_runner build --delete-conflicting-outputs
※ freezedについての参考
- https://note.com/mxiskw/n/n55441444bd46
- https://techgamelife.net/2021/02/20/flutter-freezed-easy-use/
$ brew install FlutterGen/tap/fluttergen
$ fluttergen
※ flutter_genの資料