mirror of
https://github.com/smmarty/friflex_flutter_starter.git
synced 2026-02-05 03:32:18 +00:00
feat: добавлена новый skill flutter_dev и документация (#46)
This commit is contained in:
33
.agent/skills/flutter_dev/references/project_structure.md
Normal file
33
.agent/skills/flutter_dev/references/project_structure.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Структура проекта
|
||||
|
||||
Проект строится на основе фич и слоев.
|
||||
|
||||
## Общая иерархия
|
||||
- `/assets` — графические ресурсы.
|
||||
- `/lib` — основной код.
|
||||
- `/app` — глобальные настройки, интерфейсы и реализации.
|
||||
- `/di` — конфигурация зависимостей.
|
||||
- `/routing` — описание путей.
|
||||
- `/features` — функциональные модули приложения.
|
||||
- `/gen` — сгенерированный код.
|
||||
|
||||
## Структура Feature-папки
|
||||
Каждая фича делится на три слоя:
|
||||
|
||||
1. **Data** (Поставщик данных):
|
||||
- `/dto` — модели данных для API.
|
||||
- `/repository` — реализация интерфейсов репозиториев.
|
||||
2. **Domain** (Бизнес-логика):
|
||||
- `/entity` — чистые модели для использования в UI.
|
||||
- `/repository` — **интерфейсы** репозиториев.
|
||||
- `/state` — управление состоянием (BLoC).
|
||||
- `/service` — реализации бизнес-сервисов.
|
||||
3. **Presentation** (Представление):
|
||||
- `/screens` — виджеты экранов (`*Screen`).
|
||||
- `/components` — переиспользуемые компоненты внутри фичи.
|
||||
|
||||
## Правила взаимодействия
|
||||
- **Data** → доступ к **Entity** (для маппинга), не знает про UI.
|
||||
- **Domain** → не знает про **Data** (работает через интерфейсы) и **Presentation**.
|
||||
- **Presentation** → работает через **Domain**, не знает про **Data**.
|
||||
- Объекты внутри фичи инкапсулированы. Глобальные объекты выносятся в `/app`.
|
||||
Reference in New Issue
Block a user