Files Structure - fpmi-pmvs2025/pmvs13-lab8-batonchiki GitHub Wiki
Структура файлов приложения
Структура директорий
app/
├── src/
│ └── main/
│ ├── java/com/example/pharmacyapp/
│ │ ├── data/
│ │ │ ├── local/
│ │ │ │ ├── AppDatabase.kt
│ │ │ │ ├── dao/
│ │ │ │ └── entities/
│ │ │ ├── remote/
│ │ │ │ ├── ApiService.kt
│ │ │ │ └── models/
│ │ │ └── repository/
│ │ │ ├── ProductRepository.kt
│ │ │ └── ProductRepositoryImpl.kt
│ │ ├── ui/
│ │ │ ├── screens/
│ │ │ │ ├── catalog/
│ │ │ │ ├── details/
│ │ │ │ ├── favorites/
│ │ │ │ └── home/
│ │ │ ├── theme/
│ │ │ │ └── Theme.kt
│ │ │ ├── viewmodel/
│ │ │ └── MainActivity.kt
│ │ └── PharmacyApplication.kt
│ └── res/
└── build.gradle.kts
Описание основных компонентов
1. Слой приложения
- PharmacyApplication.kt: Основной класс приложения, инициализирует ключевые компоненты и зависимости
2. Слой данных
-
Локальное хранилище
AppDatabase.kt
: Конфигурация базы данных Roomdao/
: Объекты доступа к даннымentities/
: Классы сущностей базы данных
-
Удаленное API
ApiService.kt
: Интерфейс Retrofit для работы с APImodels/
: Модели данных для API
-
Репозиторий
ProductRepository.kt
: Интерфейс репозиторияProductRepositoryImpl.kt
: Реализация репозитория
3. Слой UI
-
Экраны
catalog/
: Экран каталога товаровdetails/
: Экран деталей товараfavorites/
: Экран избранных товаровhome/
: Главный экран с акциями
-
ViewModels
- Содержит ViewModels для каждого экрана
- Управляет бизнес-логикой и состоянием
-
Тема
Theme.kt
: Настройки темы Material3
4. Ресурсы
- Содержит макеты, изображения и другие ресурсы