0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

melosを使ったマルチパッケージ構成を作ってみた

Posted at

初めに

こんにちは
先日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
    

appsappからそれぞれpackeageを呼ぶようにしています。

melosを使用することで、 appからはrepository,repositoryからはserviceをパッケージでインポートして使用するように制限できるため、serviceをview側読んでしまうなど、意図しない箇所でのパッケージの使用を防ぐことができます。

サンプルを作ってみて、

パッケージで分けることで、責務が明確になるのでとても堅牢な作りができて良いなと感じました。
ただ、今回シンプルなアプリなのでここまでしっかりとした作り方だと同じようなデータをの受け渡ししてるだけになるところがあり、冗長になってしまうなと感じました。今回、domainを使わなかったはそれが原因です。
実務の膨大なコードがある前提であればとてもいい構成なんだろうなと思っています。

 ├── packeages
            ├── app
            ├── base_ui
            ├── domain(今回、使用していない)
            ├── repository
            ├── service

終わりに

melosいいですね。melos自体あまり使っていなく、なんで流行ってるのか分かってなかったのですが、今回を機にどんどん使っていこうかなと思っています。
ご覧いただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?