Remote Config Flutter
Краткое содержание
Remote Config — это инструмент, позволяющий настроить поведение и внешний вид приложения без изменения кода и публикации приложения. Он позволяет задавать значения по умолчанию, получать обновления с сервера и активировать их в приложении без выпуска новых версий.
Как это работает
Remote Config устанавливает дефолтные значения, которые определяют интерфейс и поведение приложения. Через инструмент можно управлять настройками для всех пользователей или отдельных сегментов.
Шаг 1. Инициализация
В статье приведена пошаговая инструкция по инициализации Remote Config с настройкой параметров конфигурации.
Шаг 2. Установка зна чений по умолчанию
В тексте описано, как задать значения по умолчанию для параметров, чтобы приложение работало до получения данных с сервера.
Шаг 3. Настройка параметров запросов
В статье указано, как настроить минимальный интервал между запросами к серверу для предотвращения частых обращений.
Шаг 4. Получение и активация значений с сервера
В тексте описаны методы для получения обновленных значений с сервера и их активации. Также указано, как получить значения после активации и использовать значения по умолчанию при необходимости.
Дальнейшие шаги
После добавления Remote Config необходимо настроить эксперимент в интерфейсе МТС Аналитики. Данные будут передаваться после запуска эксперимента и релиза приложения.
Remote Config — это инструмент, позволяющий настроить поведение и внешний вид приложения без изменения кода и публикации приложения.
Remote Config позволяет задавать значения по умолчанию, получать обновления с сервера и активировать их для использования в приложении без необходимости выпуска новых версий.
Как это работает
В приложении прописываются дефолтные значения — они определяют, как выглядит и ведёт себя интерфейс. Через Remote Config вы сможете управлять этими настройками и переопределять их для всех пользователей или конкретных сегментов.
Шаг 1. Инициализация
Проинициализируйте Remote Config`
MtsAnalyticsConfig config = MtsAnalyticsConfig()
..logLevel = LogLevel.DEBUG
..crashReportingEnabled = true
..backgroundTimeout = 120
..activeTimeout = 90
..eventStorageLimit = 3000
..networkTrafficEnabled = false
..androidFlowId = ""
..iosFlowId = "";
final mtsAnalyticsPlugin = MtsAnalyticsPlugin();
mtsAnalyticsPlugin.init(config);
mtsAnalyticsPlugin.remoteConfig.init(config);
Шаг 2. Установка значений по умолчанию
Задайте значения по умолчанию для параметров конфигурации. Это обеспечит работу приложения до получения Remote Config с сервера
MtsAnalyticsConfig config = MtsAnalyticsConfig()
..logLevel = LogLevel.DEBUG
..crashReportingEnabled = true
..backgroundTimeout = 120
..activeTimeout = 90
..eventStorageLimit = 3000
..networkTrafficEnabled = false
..androidFlowId = ""
..iosFlowId = "";
final mtsAnalyticsPlugin = MtsAnalyticsPlugin();
mtsAnalyticsPlugin.init(config);
mtsAnalyticsPlugin.remoteConfig.init(config);
mtsAnalyticsPlugin.remoteConfig.setDefaultsMap({
'key1': 'true',
'key2': 'blue',
'key3': '13.40',
'key4': '100',
'key5': '{ "childKey": "child value"}',
});
Шаг 3. Настройка параметров запросов
Fetch interval
Минимальный интервал minFetchInterval (мс.) между последовательными запросами к серверу.
Используйте для предотвращения частых запросов. Значение по умолчанию: 300000
MtsAnalyticsConfig config = MtsAnalyticsConfig()
..logLevel = LogLevel.DEBUG
..crashReportingEnabled = true
..backgroundTimeout = 120
..activeTimeout = 90
..eventStorageLimit = 300000
..networkTrafficEnabled = false
..androidFlowId = ""
..iosFlowId = "";
final mtsAnalyticsPlugin = MtsAnalyticsPlugin();
mtsAnalyticsPlugin.init(config);
mtsAnalyticsPlugin.remoteConfig.init(config);
mtsAnalyticsPlugin.remoteConfig.setMinFetchInterval(300);
Шаг 4. Получение и активация значений с сервера
Чтобы получить обновленные значения с сервера, вызовите метод fetchRemoteConfigValues. После получения активируйте их с помощью метода activate().
Получение config
MtsAnalyticsConfig config = MtsAnalyticsConfig()
..logLevel = LogLevel.DEBUG
..crashReportingEnabled = true
..backgroundTimeout = 120
..activeTimeout = 90
..eventStorageLimit = 3000
..networkTrafficEnabled = false
..androidFlowId = ""
..iosFlowId = "";
final mtsAnalyticsPlugin = MtsAnalyticsPlugin();
mtsAnalyticsPlugin.init(config);
mtsAnalyticsPlugin.remoteConfig.init(config);
mtsAnalyticsPlugin.remoteConfig.fetchRemoteConfigValues();
mtsAnalyticsPlugin.remoteConfig.activate();
Получение и активация
MtsAnalyticsConfig config = MtsAnalyticsConfig()
..logLevel = LogLevel.DEBUG
..crashReportingEnabled = true
..backgroundTimeout = 120
..activeTimeout = 90
..eventStorageLimit = 3000
..networkTrafficEnabled = false
..androidFlowId = ""
..iosFlowId = "";
final mtsAnalyticsPlugin = MtsAnalyticsPlugin();
mtsAnalyticsPlugin.init(config);
mtsAnalyticsPlugin.remoteConfig.init(config);
mtsAnalyticsPlugin.remoteConfig.fetchRemoteConfigValuesAndActivate();
Получение значений после активации
После успешной активации полученные значения будут доступны через метод configValue(String key)
MtsAnalyticsConfig config = MtsAnalyticsConfig()
..logLevel = LogLevel.DEBUG
..crashReportingEnabled = true
..backgroundTimeout = 120
..activeTimeout = 90
..eventStorageLimit = 3000
..networkTrafficEnabled = false
..androidFlowId = ""
..iosFlowId = "";
final mtsAnalyticsPlugin = MtsAnalyticsPlugin();
mtsAnalyticsPlugin.init(config);
mtsAnalyticsPlugin.remoteConfig.init(config);
mtsAnalyticsPlugin.remoteConfig.fetchRemoteConfigValuesAndActivate();
final result = mtsAnalyticsPlugin.remoteConfig.configValue('date');
Получение значений по умолчанию
Если требуется получить значение по умолчанию, используйте поле defaultValue(String key)
MtsAnalyticsConfig config = MtsAnalyticsConfig()
..logLevel = LogLevel.DEBUG
..crashReportingEnabled = true
..backgroundTimeout = 120
..activeTimeout = 90
..eventStorageLimit = 3000
..networkTrafficEnabled = false
..androidFlowId = ""
..iosFlowId = "";
final mtsAnalyticsPlugin = MtsAnalyticsPlugin();
mtsAnalyticsPlugin.init(config);
mtsAnalyticsPlugin.remoteConfig.init(config);
mtsAnalyticsPlugin.remoteConfig.fetchRemoteConfigValuesAndActivate();
final result = mtsAnalyticsPlugin.remoteConfig.defaultValue('date');
Дальнейшие шаги
После добавления Remote Config продуктологу или аналитику необходимо настроить эксперимент в интерфейсе МТС Аналитики. Данные будут передаваться после запуска эксперимента и релиза приложения.