# PMA & SMA

## PitManagerAndroid

#### Язык, сборка и плагины

| Технология | Версия | Описание |
|------------|--------|----------|
| AGP | 8.5.2 | сборка Android-модулей (app/library) |
| Kotlin | 1.9.24 | основной язык проекта |
| KSP | 1.9.24-1.0.20 | генерация кода (Room, Hilt и др.) вместо kapt |
| Kotlin Serialization Plugin | 1.9.24 | кодоген для kotlinx.serialization |
| Hilt Gradle Plugin | 2.50 | интеграция DI в сборку |
| Safe Args | 2.7.7 | типобезопасная генерация аргументов навигации (gradle plugin + artifacts) |

#### Базовые Android-зависимости

| Библиотека | Версия | Описание |
|------------|--------|----------|
| androidx.core:core-ktx | 1.12.0 | Kotlin-утилиты для Android API |
| androidx.appcompat | 1.6.1 | совместимость и темы |
| androidx.annotation | 1.9.1 | аннотации (nullability и пр.) |
| Material Components | 1.12.0 | UI-компоненты по Material Design |
| ConstraintLayout | 2.1.4 | верстка сложных экранов |
| RecyclerView | 1.3.0 | списки и адаптеры |

#### Архитектура, жизненный цикл, сервисы

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Lifecycle ViewModel KTX | 2.7.0 | ViewModel, корутины |
| androidx.lifecycle:lifecycle-service | 2.8.3 | LifecycleService для сервисов с управляемым жизненным циклом |

#### Навигация

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Navigation Fragment/UI KTX | 2.7.7 | графы, NavController, deep links |
| Hilt Navigation Fragment | 1.2.0 | внедрение зависимостей в фрагменты с навигацией |

#### DI

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Hilt Android | 2.50 | внедрение зависимостей |
| Hilt Android Compiler | 2.50 | кодоген для Hilt |
| androidx.hilt:hilt-compiler | 1.2.0 | доп. кодоген (WorkManager/Nav и пр.) |

#### Данные и хранение

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Room (room-runtime, room-ktx, room-compiler) | 2.6.1 | БД, DAO, транзакции, Flow |
| DataStore Preferences | 1.0.0 | безопасное key-value-хранилище настроек/состояний |

#### Сеть, сериализация, локальный сервер

| Библиотека | Версия | Описание |
|------------|--------|----------|
| OkHttp | 4.12.0 | HTTP-клиент, интерсепторы, TLS |
| Gson | 2.9.0 | JSON-сериализация/парсинг (где нужно) |
| kotlinx-serialization-json | 1.6.3 | современная сериализация под Ktor/модели |
| Ktor Server (ktor-server-core, ktor-server-cio) | 2.3.7 | встраиваемый локальный HTTP-сервер |
| ktor-server-content-negotiation + ktor-serialization-kotlinx-json | 2.3.7 | JSON-ответы |
| ktor-server-cors | 2.3.7 | CORS-политики |
| ktor-server-call-logging | 2.3.7 | логирование запросов |

#### Карты, гео и локация

| Библиотека | Версия | Описание |
|------------|--------|----------|
| osmdroid-android | 6.1.18 | карта, тайлы, оверлеи |
| osmbonuspack | 6.9.0 | маршруты, маркеры, доп. утилиты поверх osmdroid |
| proj4j | 1.1.3 | проекции и преобразование координат |

#### UI-утилиты

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Intuit sdp/ssp | 1.0.6 | масштабируемые dp/sp для адаптивной верстки |

#### Утилиты/инфраструктура

| Библиотека | Версия | Описание |
|------------|--------|----------|
| commons-io | 2.10.0 | файловые утилиты, потоки |
| ckchangelog | 1.2.2 | экран/диалог change log |
| ANR-WatchDog | 1.4.0 | детектор ANR |

#### Тестирование

| Библиотека | Версия | Описание |
|------------|--------|----------|
| JUnit | 4.13.2 | базовые юнит-тесты |
| AndroidX Test Ext JUnit | 1.1.5 | интеграция JUnit для Android |
| AndroidX Test Runner | 1.5.2 | раннер инструментальных тестов |
| kotlinx-coroutines-test | 1.8.1 | тесты корутин/TestDispatcher |

---

## StaffManagerAndroid

#### Язык, сборка и плагины

| Технология | Версия | Описание |
|------------|--------|----------|
| AGP | 8.3.0 | сборка Android-модулей (application/library) |
| Kotlin | 1.9.0 | основной язык проекта |
| KSP | 1.9.0-1.0.13 | генерация кода (Room, Hilt и др.) вместо kapt |
| Hilt Gradle Plugin | 2.50 | DI-интеграция на этапе сборки |
| Safe Args | 2.7.7 | типобезопасная генерация аргументов навигации (gradle plugin + artifacts) |

#### Базовые Android-зависимости

| Библиотека | Версия | Описание |
|------------|--------|----------|
| androidx.core:core-ktx | 1.12.0 | Kotlin-утилиты для Android API |
| androidx.appcompat | 1.6.1 | обратная совместимость и темы |
| ConstraintLayout | 2.1.4 | разметка сложных экранов |
| Material Components (Views) | 1.11.0 | UI-компоненты по Material Design 2 |
| Multidex | 2.0.1 | поддержка проектов с большим числом методов (выход за пределы одного DEX) |

#### Архитектура, жизненный цикл

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Lifecycle ViewModel KTX | 2.7.0 | ViewModel, корутины |
| Lifecycle Service | 2.7.0 | LifecycleService для сервисов с управляемым жизненным циклом |

#### Навигация

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Navigation Fragment/UI KTX | 2.7.7 | NavController, графы, deep links |

#### DI

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Hilt Android | 2.50 | внедрение зависимостей |
| Hilt Android Compiler | 2.50 | кодоген для Hilt |

#### Данные и хранение

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Room (room-runtime, room-ktx, room-compiler) | 2.6.1 | БД, DAO, транзакции, Flow |
| DataStore Preferences | 1.0.0 | безопасное key-value-хранилище настроек/состояний |

#### Сеть и сериализация

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Retrofit | 2.9.0 | декларативные API-интерфейсы |
| converter-gson | 2.9.0 | JSON-конвертер для Retrofit |
| OkHttp | 4.12.0 | HTTP-клиент |
| OkHttp Logging Interceptor | 4.12.0 | детальное логирование запросов/ответов |
| Gson | 2.9.0 | парсинг/сериализация JSON, совместим с Retrofit-конвертером |

#### UI: Compose + классические Views

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Material3 (Compose) | 1.2.1 | современный UI-стек на Compose |
| Glide | 4.16.0 | загрузка и кэширование изображений |
| Compose ui-tooling-preview | 1.6.4 | предпросмотры в IDE |
| Compose ui-tooling | 1.6.4 | инструменты разработчика |

#### Карты, гео и локация

| Библиотека | Версия | Описание |
|------------|--------|----------|
| osmdroid-android | 6.1.18 | карта, тайлы, оверлеи |

#### UI-утилиты

| Библиотека | Версия | Описание |
|------------|--------|----------|
| Intuit sdp-android | 1.0.6 | масштабируемые dp для адаптивной верстки |

#### Утилиты/инфраструктура

| Библиотека | Версия | Описание |
|------------|--------|----------|
| commons-io | 2.10.0 | файловые утилиты, потоки |

#### Тестирование

| Библиотека | Версия | Описание |
|------------|--------|----------|
| JUnit | 4.13.2 | базовые юнит-тесты |
| AndroidX Test Ext JUnit | 1.1.5 | интеграция JUnit для Android |
| AndroidX Test Runner | 1.5.2 | раннер инструментальных тестов |
| kotlinx-coroutines-test | 1.8.1 | тесты корутин/TestDispatcher |

#### Общая информация

| Параметр | Значение |
|----------|----------|
| Язык | Kotlin |
| UI | View и XML |
| Работа с сетью | синхронизация с сервером происходит по TCP через Socket-подключение, для HTTP-запросов используется OkHttpClient и Retrofit |
| Dependency injection | Hilt |
| Локальная база данных | Room |
| Хранение настроек приложения | DataStore |
| Паттерн разработки | MVVM |
| Движок карты | OpenStreetMap |