Перейти к основному содержимому

Android-приложение

Руководство разработчика для Android

Этот документ посвящён нативному Android-приложению LeadHub, написанному на Kotlin, которое подключается к вашему экземпляру LeadHub через REST API. Руководство предназначено для разработчиков, которым необходимо собрать, настроить или развернуть приложение.


Требования

Перед началом убедитесь, что у вас есть:

ТребованиеПодробности
Android StudioHedgehog (2023.1.1) или новее
JDK17 или выше
Минимальный уровень API26 (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
Состояние UIViewModel + LiveData
Локальное хранилищеRoom (база данных SQLite)
Push-уведомленияFirebase Cloud Messaging (FCM)
Хранение учётных данныхEncryptedSharedPreferences

Процесс аутентификации

  1. Пользователь вводит URL экземпляра и API-ключ на экране входа.
  2. Приложение вызывает GET /api/health, чтобы проверить доступность экземпляра.
  3. Приложение вызывает GET /api/users/me, используя API-ключ в качестве Bearer-токена.
  4. При успехе API-ключ сохраняется в EncryptedSharedPreferences, и пользователь считается аутентифицированным.

Push-уведомления

Приложение использует Firebase Cloud Messaging для уведомлений о новых лидах.

  1. Создайте проект в Firebase Console.
  2. Добавьте Android-приложение с именем пакета вашего приложения.
  3. Скачайте google-services.json и поместите его в папку app/.
  4. Добавьте ключ сервера 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Отображение этапов воронки