deanbot / flutter_monorepo_flavors

approaches for flutter monorepos w/o pub.dev publishing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Monorepo

See melos example.

Setup

  • Application packages (packages compiled for devices) are scaffolded in the apps directory. Library packages (packages shared or consumed by application packages) are scaffolded in the packages directory.

example:

root
│   .gitignore
│   [...]
└───apps
│   └───app_a
│   │   └───[...]
│   └───app_b
│       └───[...]
└───packages
    └───app_core
    │   └───[...]
    └───auth_service
        └───[...]
  • Shared (library) packages require a directory in packages, a pubspec.yaml, and a same-named barrel file in lib. Private files are placed in lib/src by convention (errors are shown when any consumer imports from src directly).

example:

packages
└───app_core
    │   pubspec.yaml
    │   [...]
    └───lib
        │   app_core.dart
        │   [...]
        └───src
            └───[...]

apps/app_a/pubspec.yaml:

dependencies:
  app_core:
    path: ../packages/app_core

packages/http_album_repository/pubspec.yaml:

dependencies:
  app_core:
    path: ../app_core

About

approaches for flutter monorepos w/o pub.dev publishing


Languages

Language:Dart 48.6%Language:HTML 44.1%Language:Swift 4.6%Language:Kotlin 1.4%Language:Shell 0.8%Language:Objective-C 0.4%