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

Remote Config iOS

Краткое содержание

Remote Config — инструмент для настройки поведения и внешнего вида приложения без изменения кода и публикации. Он позволяет задавать значения по умолчанию, получать обновления с сервера и активировать их для использования в приложении без выпуска новых версий.

Как это работает
Remote Config позволяет управлять настройками приложения, заданными по умолчанию, и переопределять их для всех пользователей или конкретных сегментов.

Шаг 1. Инициализация
Создайте экземпляр Remote Config:

let remoteConfig = MTMetricsApp.remoteConfig

Шаг 2. Установка значений по умолчанию
Задайте значения по умолчанию для параметров конфигурации:
из plist-файла

remoteConfig.setDefaults(plistName: "DefaultConfig")

из словаря

remoteConfig.setDefaults(dict: [
"welcome_message": "Добро пожаловать!",
"new_feature_flag": false,
"max_items": 10
])

Шаг 3. Настройка параметров запросов
Установите минимальный интервал между запросами и время ожидания ответа от сервера:

remoteConfig.minFetchInterval = 350
remoteConfig.fetchTimeout = 30

Шаг 4. Получение и активация значений с сервера
Получите и активируйте значения с сервера как можно раньше при старте приложения. Используйте асинхронный метод или completion handler:

Task {
let status = await remoteConfig.fetchRemoteConfigValues()
if status == .success {
remoteConfig.activate()
}
}

Шаг 5. Получение значений после активации
После активации значения доступны через метод configValue(_:). Для получения значений по умолчанию используйте defaultValue(_:).

Дальнейшие шаги
После добавления Remote Config необходимо настроить эксперимент в интерфейсе МТС Аналитики. Данные будут передаваться после запуска эксперимента и релиза приложения.

Remote Config — это инструмент, позволяющий настроить поведение и внешний вид приложения без изменения кода и публикации приложения.

Возможности

Remote Config позволяет задавать значения по умолчанию, получать обновления с сервера и активировать их для использования в приложении без необходимости выпуска новых версий.

Как это работает

В приложении прописываются дефолтные значения — они определяют, как выглядит и ведёт себя интерфейс. Через Remote Config вы сможете управлять этими настройками и переопределять их для всех пользователей или конкретных сегментов.

Шаг 1. Инициализация

Создайте экземпляр Remote Config`

let remoteConfig = MTMetricsApp.remoteConfig

Шаг 2. Установка значений по умолчанию

Задайте значения по умолчанию для параметров конфигурации. Это обеспечит работу приложения до получения Remote Config с сервера:

  • из plist-файла
remoteConfig.setDefaults(plistName: "DefaultConfig")
  • из словаря
remoteConfig.setDefaults(dict: [
"welcome_message": "Добро пожаловать!",
"new_feature_flag": false,
"max_items": 10
])

Шаг 3. Настройка параметров запросов

Рекомендуем установить относительно небольшой минимальный интервал выборки.

Важно

Если приложение выполняет запрос слишком часто за короткий период времени, SDK возвращает throttle — запрос не выполняется.

minFetchInterval

Минимальный интервал (в секундах) между последовательными запросами к серверу. Используйте для предотвращения частых запросов. Значение по умолчанию: 300 (сек.)

remoteConfig.minFetchInterval = 350

fetchTimeout

Максимальное время ожидания ответа от сервера (в секундах). Значение по умолчанию: 30 (сек.)

remoteConfig.fetchTimeout = 30

Шаг 4. Получение и активация значений с сервера

Совет

Рекомендуется получать и активировать значения с сервера как можно раньше при старте приложения, чтобы события попадали в текущий эксперимент.

  1. Чтобы получить обновленные значения с сервера, вызовите метод fetchRemoteConfigValues.

  2. Активируйте значения с помощью метода activate().

Асинхронное получение:

Task {
let status = await remoteConfig.fetchRemoteConfigValues()
if status == .success {
remoteConfig.activate()
}
}

С использованием completion handler:

Если хотите получить и активировать значения за один вызов, используйте

remoteConfig.fetchRemoteConfigValues { status in
if status == .success {
remoteConfig.activate()
}
}

Асинхронное получение и активация:

Task {
do {
let status = try await remoteConfig.fetchRemoteConfigValuesAndActivate()
if status == .success {
print("Конфигурация успешно обновлена и активирована")
}
} catch {
print("Ошибка при получении и активации: \(error)")
}
}

Шаг 5. Получение значений после активации

После успешной активации полученные значения будут доступны через метод configValue(_:). Этот метод возвращает объект, реализующий протокол MTRemoteConfigValue, который позволяет получить значение в различных форматах

if let welcomeMessage = remoteConfig.configValue("welcome_message")?.stringValue {
print("Сообщение приветствия: \(welcomeMessage)")
}

Получение значений по умолчанию

Если вам нужно получить значение по умолчанию, используйте метод defaultValue(_:):

if let defaultValue = remoteConfig.defaultValue("welcome_message")?.stringValue {
print("Значение по умолчанию для welcome_message: \(defaultValue)")
}

Дальнейшие шаги

После добавления Remote Config продуктологу или аналитику необходимо настроить эксперимент в интерфейсе МТС Аналитики. Данные будут передаваться после запуска эксперимента и релиза приложения.