Реализация Remote Config для динамического управления параметрами

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Реализация Remote Config для динамического управления параметрами
Средний
~2-3 дня
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Реализация Remote Config для динамического управления параметрами

Remote Config — механизм доставки конфигурационных параметров в мобильное приложение без обновления через App Store или Google Play. Отличие от Feature Toggles: флаги управляют «что показываем», Remote Config управляет «как это работает» — числа, строки, URL, JSON-конфигурации.

Что управляется через Remote Config

  • Лимиты и пороговые значения: максимальное число попыток авторизации, timeout для HTTP-запросов, минимальная длина пароля
  • URL-адреса эндпоинтов, CDN-домены — переключение между регионами без релиза
  • Параметры UI: размер шрифта для определённых рынков, количество товаров в строке для разных размеров экранов
  • Конфигурация SDK третьих сторон: ключи API, параметры инициализации (не секретные)
  • Сообщения и тексты, которые нужно оперативно изменить (не замена локализации, но для срочных правок)

Firebase Remote Config — стандартная реализация

Firebase Remote Config — наиболее распространённое решение. Параметры хранятся в Firebase Console, доставляются через CDN Google с низкой латентностью (~50ms). SDK кеширует значения локально, при следующем запуске использует кеш, фоном обновляет.

Критически важная настройка: fetch interval. По умолчанию 12 часов — для production это разумно (CDN кеш, защита от rate limit). Для разработки: minimumFetchInterval = 0 в дебаг-сборке. В production при снижении интервала до 1 часа — велик риск превысить Firebase Remote Config quota (10 000 запросов/день на проект на бесплатном плане).

iOS:

let remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = isDebug ? 0 : 3600
remoteConfig.configSettings = settings

// Устанавливаем дефолты из plist — обязательно
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

// Fetch + activate с completion
remoteConfig.fetchAndActivate { status, error in
    let timeout = remoteConfig["api_timeout_seconds"].numberValue.intValue
    // Используем значение
}

Android (Kotlin):

val remoteConfig = Firebase.remoteConfig
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
remoteConfig.fetchAndActivate().addOnCompleteListener { task ->
    val maxRetries = remoteConfig.getLong("max_auth_retries").toInt()
}

Дефолтные значения — не опциональная деталь

Если Remote Config недоступен (первый запуск без сети, Firebase outage), приложение работает с дефолтами. Без явно прописанных дефолтов — SDK возвращает пустые строки и нули. api_timeout_seconds = 0 — каждый запрос немедленно тайм-аутится.

Дефолты в iOS — RemoteConfigDefaults.plist, Android — res/xml/remote_config_defaults.xml. Эти файлы — в репозитории, обновляются вместе с кодом. Когда добавляется новый параметр — дефолт добавляется одновременно.

Условные значения (Conditions)

Remote Config поддерживает targeting по: версии приложения, стране/региону, языку устройства, случайному проценту пользователей. Это позволяет:

  • Включить новый CDN-эндпоинт только для европейских пользователей
  • Показать особую конфигурацию пользователям бета-версии (app version contains "beta")
  • Постепенно переключить 10% пользователей на новый алгоритм ленты

Собственный Remote Config сервис

Firebase не всегда подходит: нельзя отправлять данные пользователей в Google, нужны кастомные условия таргетинга, или требуется интеграция с корпоративной IAM-системой.

Минимальная архитектура собственного решения:

  • API endpoint GET /api/config?appVersion=X&platform=ios&region=eu — возвращает JSON с параметрами
  • Redis для кеша с TTL 5 минут
  • PostgreSQL для хранения параметров и условий
  • Webhook или WebSocket для мгновенной инвалидации кеша при изменении
  • Admin UI для нетехнических сотрудников

Клиент кеширует ответ в UserDefaults/SharedPreferences с timestamp. При запуске — загружает кеш мгновенно, фоном проверяет обновления.

Сроки: интеграция Firebase Remote Config — 1–2 дня. Собственный Config-сервис с таргетингом и admin UI — 2–3 недели.