Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Сегодня расскажу, как создавать большие приложения на Flutter с помощью многомодульности. Также она пригодится в случаях, когда нужно создать набор библиотек и когда общий код должен быть у 2 и более приложений.
У многомодульности есть 2 основных подхода: монорепозиторий и полирепозиторий. Сегодня рассмотрим первый. Кто-то изобретает велосипед, а мы используем готовый пакет Melos.
Для начала нам нужно установить его глобально через консоль.
dart pub global activate melos Далее создаем папку под проект. В ней обязательно должно быть 2 файла:
pubspec.yaml, в котором обозначим название проекта и версию Dart, а также melos.yaml для настроек монорепозитория. Создаём нужные приложения, пакеты и плагины, в которые будем писать код. Вот примерное расположение папок для 2 приложений:my_project
|— apps
| |— app_1
| |— app_2
|— common
| |— ui_kit
| |— models
|— features
| |— feature_1
| |— feature_2
| |— feature_3
|— melos.yaml
|— pubspec.yaml
|— README.md
pubspec.yamlname: my_project
environment:
sdk: '>=3.0.0 <4.0.0'
dev_dependencies:
melos: ^6.0.0
melos.yamlname: my_project
packages:
- apps/**
- common/**
- features/**
После этого мы получаем зависимости для всех созданных нами пакетов. Также это сгенерирует файлы
pubspec_overrides.yaml, которые нужно не забыть добавить в .gitignore. Делается это командой:melos bootstrapТак у нас появляется наш многомодульный проект на Dart и Flutter.
Поделитесь в чате, в каких многомодульных Flutter-проектах вы участвовали? С какими трудностями встречались?
