Android-приложение
Руководство разработчика для Android
Этот документ посвящён нативному Android-приложению LeadHub, написанному на Kotlin, которое подключается к вашему экземпляру LeadHub через REST API. Руководство предназначено для разработчиков, которым необходимо собрать, настроить или развернуть приложение.
Требования
Перед началом убедитесь, что у вас есть:
| Требование | Подробности |
|---|---|
| Android Studio | Hedgehog (2023.1.1) или новее |
| JDK | 17 или выше |
| Минимальный уровень API | 26 (Android 8.0) |
| Экземпляр LeadHub | Доступен по HTTPS с действующим SSL-сертификатом |
| API-ключ | Сгенерирован в панели пользователя |
Настройка проекта
1. Открыть проект
Откройте папку android/ в Android Studio. Gradle автоматически синхронизирует зависимости.
2. Настроить базовый URL
Откройте app/src/main/assets/config.xml и укажите URL вашего экземпляра:
<config>
<base_url>https://yourdomain.com</base_url>
</config>
3. Синхронизировать и собрать
Выполните Build → Make Project, чтобы убедиться, что всё компилируется корректно.
Архитектура
Приложение использует стандартный паттерн Android MVVM:
| Слой | Технология |
|---|---|
| Сеть | Retrofit + OkHttp |
| Состояние UI | ViewModel + LiveData |
| Локальное хранилище | Room (база данных SQLite) |
| Push-уведомления | Firebase Cloud Messaging (FCM) |
| Хранение учётных данных | EncryptedSharedPreferences |
Процесс аутентификации
- Пользователь вводит URL экземпляра и API-ключ на экране входа.
- Приложение вызывает
GET /api/health, чтобы проверить доступность экземпляра. - Приложение вызывает
GET /api/users/me, используя API-ключ в качестве Bearer-токена. - При успехе API-ключ сохраняется в EncryptedSharedPreferences, и пользователь считается аутентифицированным.
Push-уведомления
Приложение использует Firebase Cloud Messaging для уведомлений о новых лидах.
- Создайте проект в Firebase Console.
- Добавьте Android-приложение с именем пакета вашего приложения.
- Скачайте
google-services.jsonи поместите его в папкуapp/. - Добавьте ключ сервера FCM (
FCM_SERVER_KEY) в конфигурацию сервера LeadHub, чтобы бэкенд мог отправлять уведомления.
Сборка для релиза
1. Создать Keystore
keytool -genkey -v -keystore leadhub.keystore -alias leadhub -keyalg RSA -keysize 2048 -validity 10000
2. Настроить подпись
Добавьте данные keystore в файл build.gradle вашего приложения в секцию signingConfigs.
3. Собрать релизный APK / AAB
Используйте Build → Generate Signed Bundle / APK в Android Studio или выполните:
./gradlew bundleRelease
Выходной AAB-файл будет находиться в app/build/outputs/bundle/release/.
4. Загрузить в Google Play
Загрузите AAB-файл в Google Play Console в разделе Производственный → Создать новый релиз.
Используемые API-эндпоинты
| Эндпоинт | Назначение |
|---|---|
GET /api/health | Проверить доступность экземпляра |
GET /api/users/me | Проверить API-ключ и получить ин формацию о пользователе |
GET /api/leads | Получить список лидов |
GET /api/leads/{id} | Получить детали лида |
PUT /api/leads/{id} | Обновить лид |
GET /api/pipelines | Получить воронки и этапы |
Минимально необходимые права API-ключа
| Право | Причина |
|---|---|
read:leads | Просмотр лидов |
write:leads | Обновление лидов из приложения |
read:pipelines | Отображение этапов воронки |