SDK Remote Config для Unreal Engine (версия 1.0.0)
Вы можете интегрировать SDK только в том случае, если используете движок на платформе Android. Если у вас движок на платформе iOS, SDK Remote Config работать не будет. Для работы с iOS используйте Swift.
SDK Remote Config – это облачный сервис, который позволяет изменять поведение и внешний вид вашего приложения, не требуя от пользователей загрузки обновления приложения. Плагин инкапсулирует в себе запрос конфигурации с сервера, кэширование, фоновое обновление. Имеет удобное API для получения данных.
Пример реализации
Ознакомьтесь с приложением-примером, чтобы узнать, как правильно интегрировать SDK Remote Config.
Ключевые особенности
- Выбор наиболее удобного механизма обновления кон фигурации.
- Возможность указывать процент распространения конфигурации на аудиторию.
- Возможность передавать дополнительную информацию для построения воронки конкретной конфигурации. Формировать конфигурацию можно даже для конкретных пользователей.
- Набор callback, который можно использовать для аналитики.
- Минимальное количество внешних зависимостей.
Подключение в проект
-
Скопируйте проекты плагина из официального репозитория RuStore на GitFlic.
-
Скопируйте содержимое папки
unreal_example /Plugins
в папкуPlugins
внутри своего проекта. Перезапустите Unreal Engine. -
В списке плагинов (Edit — Plugins — Project — Mobile) отметьте плагины «RuStoreRemoteConfig» и «RuStoreCore».
-
В файле
YourProject.Build.cs
в спискеPublicDependencyModuleNames
подключите модули модулиRuStoreCore
иRuStoreRemoteConfig
. -
В настройках проекта (Edit — Project Settings — Android) установите параметры:
Minimum SDK Version
— не ниже 24.Target SDK Version
— не ниже 31.
Инициализация
Создание RemoteConfigClient
Инициализация RemoteConfigClient
должна происходить в момент Application.onCreate()
, так как при запуске фоновой синхронизации SDK должна быть проинициализирована.
Для инициализации RemoteConfigClient
выполните расширение класса GameApplication
и добавьте в метод onCreate
следующий код:
package com.example.RuStoreRemoteConfigApp;
import android.content.Context;
import com.epicgames.ue4.GameApplication;
import ru.rustore.unitysdk.remoteconfigclient.model.UnityUpdateBehaviour;
import ru.rustore.unitysdk.remoteconfigclient.RuStoreUnityRemoteConfigClient;
public class RuStoreRemoteConfigApplication extends GameApplication {
public final String APP_ID = "a83c91d3-21b4-4891-841e-0ed0fc39a562";
public final int UPDATE_TIME = 15;
public final String UPDATE_BEHAVIOUR = "Actual";
@Override
public void onCreate() {
super.onCreate();
RuStoreUnityRemoteConfigClient.INSTANCE.init(APP_ID, UPDATE_TIME, UPDATE_BEHAVIOUR, null, null, getApplicationContext());
}
}
APP_ID
— уникальный идентификатор инструмента remote config. Доступен в консоли разработчика RuStore на странице создания параметров remote config;UPDATE_TIME
— интервал таймера обновления в минутах;UPDATE_BEHAVIOUR
— параметр, определяющий поведение SDK. См. также Различия в значениях UpdateBehaviour.
Для замены класса GameApplication
на RuStoreRemoteConfigApplication
в файле манифеста вашего проекта, воспользуйтесь функционалом Unreal Plugin Language.
<prebuildCopies>
<copyDir src="$S(PluginDir)/Java" dst="$S(BuildDir)/src/com/example/RuStoreRemoteConfigApp" />
</prebuildCopies>
<androidManifestUpdates>
<addAttribute tag="application" name="android:name" value="com.example.RuStoreRemoteConfigApp.RuStoreRemoteConfigApplication" />
</androidManifestUpdates>
UpdateBehaviour
UpdateBehaviour
— это параметр, определяющий поведение SDK.
При создании экземпляра RemoteConfigClientBuilder
, по умолчанию используется значение UpdateBehaviour.Default
с интервалом синхронизации 15 минут.
Различия в значениях UpdateBehaviour
UpdateBehaviour | Описание |
---|---|
| При инициализации каждый запрос конфигурации выполняется через запрос к серверу. Значение Этот тип инициализации отменяет процесс фонового обновления. |
| При инициализации запрос конфигурации выполняется из локального постоянного хранилища, которое обновляется в указанный интервал. Если инициализация выполняется первый раз и локальное постоянное хранилище пустое, запрос отправляется на сервер. Скорость выполнения запроса зависит от объема данных и скорости сети. Доступ к конфигурации будет ожидать завершения инициализации. Значение Этот тип инициализации запускает процесс фонового обновления. |
| При инициализации запрос конфигурации выполняется из локального inMemory-хранилища. inMemory-хранилище заполняется результатом первого запроса из постоянного хранилища и сохраняется в таком виде до конца жизни процесса. Если инициализация выполняется первый раз и локальное постоянное хранилище пустое, запрос отправляется на сервер. Скорость выполнения запроса зависит от объема данных и скорости сети. Доступ к конфигурации будет ожидать завершения инициализации. Значение Этот тип инициализации запускает процесс фонового обновления. |