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

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 продуктологу или аналитику необходимо настроить эксперимент в интерфейсе МТС Аналитики. Данные будут передаваться после запуска эксперимента и релиза приложения.