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