初めに
こんにちは
先日Flutter Kaigiに参加して、以下の発表の構成がとてもいいなと思い、似た構成のサンプルを作ってみました。
今回作ったのはこちらです。
ポケモンのAPIを最初に叩いてるだけのアプリです。
https://github.com/shunsukenoguchi/melos_monorepo
また、最近flutterの公式からアーキテクチャーの記事が出たのでそれも参考に作っています。
https://docs.flutter.dev/app-architecture/guide
アプリの構成
基本的なmelosの構成でpackages
をOmiaiの構成を参考にしています。
.
└── melos_monorepo
├── apps
├── app
├── flutterのプロジェクト
├── packeages
├── app
├── base_ui
├── domain(今回、使用していない)
├── repository
├── service
├── melos.yaml
├── pubspec.yaml
├── package-lock.json
apps
のapp
からそれぞれpackeageを呼ぶようにしています。
melosを使用することで、 app
からはrepository
,repository
からはservice
をパッケージでインポートして使用するように制限できるため、serviceをview側読んでしまうなど、意図しない箇所でのパッケージの使用を防ぐことができます。
サンプルを作ってみて、
パッケージで分けることで、責務が明確になるのでとても堅牢な作りができて良いなと感じました。
ただ、今回シンプルなアプリなのでここまでしっかりとした作り方だと同じようなデータをの受け渡ししてるだけになるところがあり、冗長になってしまうなと感じました。今回、domainを使わなかったはそれが原因です。
実務の膨大なコードがある前提であればとてもいい構成なんだろうなと思っています。
├── packeages
├── app
├── base_ui
├── domain(今回、使用していない)
├── repository
├── service
終わりに
melosいいですね。melos自体あまり使っていなく、なんで流行ってるのか分かってなかったのですが、今回を機にどんどん使っていこうかなと思っています。
ご覧いただきありがとうございました。