Интеграция SDK
- Общие рекомендации при интеграции
- Шаг 1. Добавьте библиотеку в проект
- Шаг 2. Инициализируйте библиотеку
- Шаг 3. Задайте конфигурацию по умолчанию с помощью XML файла
- Шаг 4. Запустите обновление конфигурации флагов в фоне
- Шаг 5. Активируйте конфигурацию
- Получение флагов из интерфейса
- Получение ID устройства для проверки эксперимента
Требования к приложению:
-
Android, версия 5 и выше.
-
Android Studio 2021 или выше.
-
Убедитесь, что в файле сборки вашего приложения используются следующие значения:
- minSdkVersion 21 или выше;
- compileSdkVersion 31 или выше.
Общие рекомендации при интеграции
-
При старте новой сессии вызывайте метод
activateConfig()
, чтобы получить значения сохраненных флагов. -
Запускайте
fetchConfig
в фоне, чтобы выгрузить новые значения флагов с сервера и активировать их при старте следующей сессии. -
Не рекомендуется вызывать метод
activateConfig()
в середине сессии — это может привести к неконсистентному поведению приложения.
Шаг 1. Добавьте библиотеку в проект
Чтобы подключить Varioqub SDK добавьте следующие зависимости в Gradle файл на уровне модуля вашего приложения, обычно app/build.gradle.kts или app/build.gradle:
dependencies {
implementation("com.yandex.varioqub:config:0.7.0")
implementation("com.yandex.varioqub:appmetrica-adapter:0.7.0")
implementation("com.yandex.android:mobmetricalib:5.3.0")
}
dependencies {
implementation 'com.yandex.varioqub:config:0.7.0'
implementation 'com.yandex.varioqub:appmetrica-adapter:0.7.0'
implementation 'com.yandex.android:mobmetricalib:5.3.0'
}
Шаг 2. Инициализируйте библиотеку
Для инициализации библиотеки используется метод init(settings: VarioqubSettings, adapter: VarioqubConfigAdapter, context: Context)
. В качестве параметров он принимает:
-
settings: VarioqubSettings
. Содержит обязательные и опциональные настройки.В настройках укажите идентификатор своего проекта в формате
appmetrica.XXXXXX
, где XXXXXX — идентификатор приложения из интерфейса AppMetrica (например,VarioqubSettings.Builder("appmetrica.1234567")
).Совет
ID приложения можно получить на странице Настройки AppMetrica: скопируйте его из Общие настройки → ID приложения.
Дополнительно можно передать список пользовательских параметров в
withClientFeature
. Например, признак того, что пользователь подписан на рассылки. -
adapter: VarioqubConfigAdapter
. Адаптер для сбора и передачи статистики в аналитическую систему, например, в AppMetrica. Если вы не хотите собирать статистику, используйте нулевой адаптер. -
context: Context
.
import com.yandex.varioqub.appmetricaadapter.AppMetricaAdapter
import com.yandex.varioqub.config.FetchError
import com.yandex.varioqub.config.OnFetchCompleteListener
import com.yandex.varioqub.config.Varioqub
import com.yandex.varioqub.config.VarioqubSettings
class YourApplication : Application() {
override fun onCreate() {
super.onCreate()
val settings = VarioqubSettings.Builder("appmetrica.1234567")
.withClientFeature("my_cool_feature", "true")
.build()
Varioqub.init(settings, AppMetricaAdapter(this), this)
}
}
import com.yandex.varioqub.appmetricaadapter.AppMetricaAdapter;
import com.yandex.varioqub.config.FetchError;
import com.yandex.varioqub.config.OnFetchCompleteListener;
import com.yandex.varioqub.config.Varioqub;
import com.yandex.varioqub.config.VarioqubSettings;
public class YourApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
VarioqubSettings settings = new VarioqubSettings.Builder("appmetrica.1234567")
.withClientFeature("my_cool_feature", "true")
.build();
Varioqub.init(settings, new AppMetricaAdapter(this), this);
}
}
Настройки VarioqubSettings
Содержит обязательные и опциональные настройки:
-
VarioqubSettings.Builder("client_id")
— конструктор с идентификатором проекта в форматеappmetrica.XXXXXX
, где XXXXXX — идентификатор приложения из интерфейса AppMetrica (например,VarioqubSettings.Builder("appmetrica.1234567")
).Совет
ID приложения можно получить на странице Настройки AppMetrica: скопируйте его из Общие настройки → ID приложения.
-
withClientFeature("myCoolFeature", "LovelyFeatureValue")
— функция со списком пользовательских параметров. Например, признак того, что пользователь подписан на рассылки. -
.withThrottleInterval(2000)
— ограничение частоты обновления конфига в миллисекундах. Рекомендуется использовать только для тестирования. -
withUrl(url: String)
— изменение URL для ответов сервера. Используется только для тестов. -
withLogs()
— включение внутреннего логирования. При обращении в поддержку лучше сначала включить логирование и отправить лог с описанием проблемы. -
withActivateEvent(enabled: Boolean)
— отправка события при активации конфигурации флагов. По умолчанию отправка события включена.
Один пользовательский параметр
val settings = VarioqubSettings.Builder("appmetrica.1234567")
.withClientFeature("my_cool_feature", "true")
.withThrottleInterval(2000)
.build()
Несколько пользовательских параметров
val settings = VarioqubSettings.Builder("appmetrica.1234567")
.withClientFeature("my_cool_feature", "true")
.withClientFeature("my_best_feature", "false")
.withClientFeature("mode", "night")
.withThrottleInterval(2000)
.build()
Один пользовательский параметр
VarioqubSettings settings = new VarioqubSettings.Builder("appmetrica.1234567")
.withClientFeature("my_cool_feature", "true")
.withThrottleInterval(2000)
.build();
Несколько пользовательских параметров
VarioqubSettings settings = new VarioqubSettings.Builder("appmetrica.1234567")
.withClientFeature("my_cool_feature", "true")
.withClientFeature("my_best_feature", "false")
.withClientFeature("mode", "night")
.withThrottleInterval(2000)
.build();
Шаг 3. Задайте конфигурацию по умолчанию с помощью XML файла
Вы можете установить конфигурацию по умолчанию чтобы ваше приложение использовало необходимые значения параметров до того, как оно подключится к серверу с удаленной конфигурацией.
-
Скачайте XML файл конфигурации со страницы Конфиг флагов и сохраните его в каталоге
res/xml
вашего приложения. -
Передайте загруженный XML файл конфигурации с помощью метода
setDefaults(int)
.KotlinJavaVarioqub.setDefaults(R.xml.ab_defaults)
Varioqub.setDefaults(R.xml.ab_defaults);
Примечание
Название файла
ab_defaults.xml
является демонстрационным.
Шаг 4. Запустите обновление конфигурации флагов в фоне
Чтобы использовать самую свежую конфигурацию флагов из интерфейса, запустите фоновое обновление конфигурации с помощью метода fetchConfig
.
Примечание
Не забудьте активировать конфигурацию через activateConfig()
после получения самой свежей версии.
Varioqub.fetchConfig(object : OnFetchCompleteListener {
override fun onSuccess() {
Log.i("VARIOQUB", "FETCH SUCCESS")
// идентификатор устройства (ID) можно использовать при проверке эксперимента
// для этого нужно указать его в соответствующем поле в A/B эксперименты
Log.i("VARIOQUB", Varioqub.getId())
}
override fun onError(message: String, error: FetchError) {
Log.i("VARIOQUB", "FETCH ERROR: $message")
}
})
Varioqub.fetchConfig(new OnFetchCompleteListener() {
@Override
public void onSuccess() {
Log.i("VARIOQUB", "FETCH SUCCESS");
// идентификатор устройства (ID) можно использовать при проверке эксперимента
// для этого нужно указать его в соответствующем поле в A/B эксперименты
Log.i("VARIOQUB", Varioqub.getId());
}
@Override
public void onError(String message, FetchError error) {
Log.i("VARIOQUB", "FETCH ERROR: " + message);
}
});
Шаг 5. Активируйте конфигурацию
Совет
Основной сценарий использования:
Переодически скачивайте конфигурацию и активируйте ее при запуске приложения. Это гарантирует, что флаги не поменяются во время пользовательской сессии. Рекомендуется запускать активацию как можно раньше.
Активируйте конфигурацию с помощью метода activateConfig()
.
Varioqub.activateConfig()
Varioqub.activateConfig();
Используйте метод activateConfig()
каждый раз, когда необходимо активировать полученную/загруженную конфигурацию (например, при старте новой сессии).
Получение флагов из интерфейса
Значения флагов вычисляются и предоставляются в следующем порядке:
- Флаг есть в эксперименте.
- Флаг есть в загруженной конфигурации.
- Флаг есть в конфигурации по умолчанию.
Методы для получения флагов:
Varioqub.getString(key, default)
.
Пример кода:
val flag = Varioqub.getString("flag", "defaultValue")
Log.i("VARIOQUB", flag)
String flag = Varioqub.getString("flag", "defaultValue");
Log.i("VARIOQUB", flag);
Получение ID устройства для проверки эксперимента
Для получения ID устройства используйте метод Varioqub.getId()
:
Log.i("VARIOQUB", Varioqub.getId())
Log.i("VARIOQUB", Varioqub.getId());
Примечание
До первого успешного вызова fetchConfig
метод Varioqub.getId()
может возвращать пустой ответ.
Подробнее о создании и проверке эксперимента читайте в разделе Создание эксперимента.