- Необходимо установить Android SDK (36.1 >) и, предпочтительно, Android Studio
- Склонировать репозиторий и перейти в корневую папку проекта
- Создайте в корне проекта файл
local.propertiesи заполните там следующие значения:
#Например, для Windows: C\:\\Users\\[ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ]\\AppData\\Local\\Android\\Sdk
sdk.dir=[ПУТЬ ДО ANDROID SDK]
#URL, который будет использоваться для REST запросов в конфигурации dev, например: http://10.0.2.2:8081
api.base.url=[URL БЭКЭНДА]
#Сокет, который будет использоваться для STOMP в конфигурации dev, например: 10.0.2.2:8081
api.socket=[SOCKET]- Собрать и развернуть приложение на устройство\эмулятор
Для корректной работы всех функций приложения необходимо запустить бэкэнд,
который должен быть доступен по URL и сокету из local.properties
Приложение построено по архитектурному шаблону MVVM, в качестве основного языка программирования используется Kotlin. Помимо этого, приложение построено в стиле "single activity" и использует навигацию и состояния для перехода между экранами или изменения экранов.
Список основных используемых технологий:
-
Для UI используется
Jetpack Compose, взаимодействие слоя ViewModel с UI осуществляется черезStateFlow. -
Для асинхронности в проекте используются корутины, взаимодействие с REST API реализовано с помощью библиотеки
Retrofitи сериализатораkotlinx.serialization. -
Навигация в проекте реализована через навигационные графы и
NavHostс использованием вложенных графов (fun NavGraphBuilder....). -
Реализация STOMP взаимодействия выполнена с помощью сторонней библиотеки, которая реализует протокол и интерфейс для реагирования на события STOMP через
rxjava2. -
Для DI в проекте был использован
Koin. -
Для взаимодействия с локальными данными приложения используется
DataStore. -
Для unit-тестирования используется
Robolectric, а также реализовано нескольно instrumented-тестов.