Files

34 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

# Структура проекта
Проект строится на основе фич и слоев.
## Общая иерархия
- `/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`.