Конфигурация SDK
Предварительные условия
- В приложении добавлен класс, расширяющий Application.
- В проекте должен быть подключён репозиторий Maven Central.
- Добавлена зависимость библиотеки в файл
build.gradle.ktsуровня приложения (app level):
dependencies {
implementation("com.altcraft:android-sdk:1.0.1")
}
Подготовка приложения
Настройка JWT-интерфейса (опционально)
JWTInterface — интерфейс запроса JWT-токена. Предоставляет актуальный JWT-токен из приложения по запросу SDK. Реализация данного интерфейса требуется, если используется JWT-аутентификация API-запросов. JWT подтверждает, что пользовательские идентификаторы аутентифицированы приложением.
Реализация JWT-аутентификации обязательна, если используется тип матчинга отличный от push-данных из подписки (например, идентификатор пользователя — email или телефон).
Интерфейс SDK:
interface JWTInterface {
fun getJWT(): String?
}
Реализация на стороне приложения
import android.content.Context
import com.altcraft.sdk.interfaces.JWTInterface
class JWTProvider(): JWTInterface {
override fun getJWT(): String? {
// код, возвращающий JWT-токен
}
}
Регистрация провайдера в Application.onCreate()
import android.app.Application
import com.altcraft.sdk.AltcraftSDK
class App : Application() {
override fun onCreate() {
super.onCreate()
AltcraftSDK.setJWTProvider(JWTProvider(applicationContext))
}
}
getJWT() — синхронная функция. Поток выполнения SDK будет приостановлен до получения JWT. Рекомендуется, чтобы getJWT() возвращал значение немедленно — из кэша (in-memory, SharedPreferences или EncryptedSharedPreferences) — это ускорит выполнение запросов. Желательно подготовить актуальный JWT как можно раньше (на старте приложения) и сохранить его в кэш, чтобы при обращении SDK токен был доступен без задержек. При отсутствии значения допустимо вернуть null.