Налаштування Feature Flags у мобільному додатку: Firebase vs LaunchDarkly

Налаштування Feature Flags у мобільному додатку Feature flags (фіче-флаги) — механізм, що дозволяє вмикати або вимикати функціональність додатку на льоту без публікації нового білда. Для мобільних додатків це особливо критично: App Review може затягнутися на добу, а помилка в проді здатна параліз

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Налаштування Feature Flags у мобільному додатку: Firebase vs LaunchDarkly
Середній
~2-3 дні

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

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Налаштування Feature Flags у мобільному додатку

Feature flags (фіче-флаги) — механізм, що дозволяє вмикати або вимикати функціональність додатку на льоту без публікації нового білда. Для мобільних додатків це особливо критично: App Review може затягнутися на добу, а помилка в проді здатна паралізувати роботу. Уявіть: нова фіча ламає платіжний флоу у 5% користувачів. Хотфікс через App Store потребує 2 години, а kill switch на флазі спрацює за 30 секунд. У більш ніж 50 проектах ми переконалися: feature flags — це не опція, а необхідність для trunk-based development і безпечних релізів. Наприклад, один із наших клієнтів втратив $50,000 через 10-хвилинний простій — після впровадження флагів час реакції на збої скоротився до секунд. Ми гарантуємо стабільну роботу вашого додатку за допомогою грамотного налаштування флагів.

Стеки: iOS (Swift 5.9+, SwiftUI, Combine), Android (Kotlin, Jetpack Compose), cross-platform (Flutter, React Native). Інструменти: Firebase Remote Config, LaunchDarkly. За визначенням Wikipedia, feature flags — техніка, що змінює поведінку системи без зміни коду.

Чому feature flags критичні для мобільних додатків?

Без флагів кожна нова функція — ризик. App Store Review може затягнутися, а помилка в релізі призведе до втрати користувачів. Feature flags дозволяють:

  • Плавно вмикати фічі для частини аудиторії (rollout).
  • Відключати проблемний код без релізу (kill switch).
  • Тестувати нові версії на реальних користувачах (A/B тестування).

Згідно з документацією Firebase, Remote Config підтримує до 2000 параметрів і оновлюється за секунди. Це базовий інструмент, але для складних сценаріїв знадобиться LaunchDarkly.

Який інструмент обрати: Firebase Remote Config чи LaunchDarkly?

Таргетинг LaunchDarkly в 10 разів точніший, ніж у Remote Config, завдяки підтримці user_id та custom attributes.

Критерій Firebase Remote Config LaunchDarkly
Вартість Безкоштовно (в рамках Firebase) Платний, від $100/міс
Таргетинг по user_id Ні (тільки по сегментах Firebase) Так, з правилами targeting
Rollout за відсотками Так (через A/B Testing) Так, з точністю до 1%
Моніторинг флагів Вбудований Dashboard Розширений, з аналітикою
SDK для iOS/Android Так, офіційний Так, офіційний
Робота без інтернету Так, з дефолтними значеннями Так, з кешем

Вибір залежить від ваших завдань. Для простого kill switch і A/B тестів достатньо Remote Config. Для кастомних правил (наприклад, увімкнути фічу тільки користувачам з планом "Enterprise") краще взяти LaunchDarkly — він масштабується під будь-яку складність.

Типи feature flags

Тип флага Призначення Час життя
Kill switch Аварійне відключення функції Постійно
Rollout Поступове включення нової фічі До 100%
A/B тест Порівняння двох варіантів 2-4 тижні
Permission Включення за ролями користувачів Постійно

Налаштування Firebase Remote Config (iOS)

// iOS let remoteConfig = RemoteConfig.remoteConfig() remoteConfig.setDefaults([ "new_payment_flow_enabled": false as NSObject, "chat_feature_enabled": false as NSObject, "max_cart_items": 50 as NSObject ]) remoteConfig.fetch(withExpirationDuration: 300) { status, error in remoteConfig.activate() } var isNewPaymentEnabled: Bool { remoteConfig.configValue(forKey: "new_payment_flow_enabled").boolValue } 

Налаштування Firebase Remote Config (Android)

// Android val remoteConfig = Firebase.remoteConfig remoteConfig.setDefaultsAsync(mapOf( "new_payment_flow_enabled" to false, "chat_feature_enabled" to false )) remoteConfig.fetchAndActivate().addOnCompleteListener { task -> val isNewPaymentEnabled = remoteConfig.getBoolean("new_payment_flow_enabled") } 

Організація флагів у коді

Всі флаги в одному місці — не розкидані по бізнес-логіці:

// FeatureFlags.swift struct FeatureFlags { private let remoteConfig = RemoteConfig.remoteConfig() var isNewPaymentFlowEnabled: Bool { remoteConfig.configValue(forKey: "new_payment_flow_enabled").boolValue } var isChatEnabled: Bool { remoteConfig.configValue(forKey: "chat_feature_enabled").boolValue } var maxCartItems: Int { Int(remoteConfig.configValue(forKey: "max_cart_items").numberValue) } } if AppDependencies.featureFlags.isNewPaymentFlowEnabled { showNewPaymentFlow() } else { showLegacyPaymentFlow() } 
Приклад реалізації флага на SwiftUI
struct ContentView: View { @AppDependency(\.featureFlags) var featureFlags var body: some View { if featureFlags.isNewPaymentFlowEnabled { NewPaymentView() } else { LegacyPaymentView() } } } 

Lifecycle флага: створення → видалення

Флаги накопичуються і стають техборгом. Хороша практика — флаг живе максимум 3 місяці:

  1. Флаг створено — фіча прихована
  2. Rollout розпочато — вмикаємо поступово
  3. 100% користувачів на новій версії → флаг = true для всіх
  4. Видаляємо флаг і мертвий код старого поведінки з кодової бази

Якщо не видаляти — через рік у коді буде 40 флагів, половина з яких давно true для 100% аудиторії. Наші інженери проводять регулярний аудит флагів, щоб уникнути цієї ситуації. В одному з проектів ми скоротили кількість флагів з 35 до 8 за місяць, прискоривши rollout нових фіч на 40%.

Як feature flags врятували проект? Кейс з нашої практики

При впровадженні нової системи автоплатежів у мобільному банкінгу ми використовували три флаги: kill switch для екстреного відключення, rollout для поступового включення та permission для доступу VIP-клієнтів. Kill switch дозволив відключити фічу за 10 секунд, коли legacy-система не впоралася з навантаженням. Збиток міг становити $100,000, але kill switch запобіг цьому. Без флагів довелося б відкочувати версію через App Store — мінімум 2 години простою.

Процес впровадження feature flags

  1. Аналіз: визначаємо, які фічі потребують флагів, обираємо інструмент (Firebase або LaunchDarkly)
  2. Проектування: створюємо централізований шар FeatureFlags, налаштовуємо дефолтні значення
  3. Реалізація: підключаємо SDK, пишемо обгортку для бізнес-логіки
  4. Тестування: перевіряємо роботу флагів offline, коректне перемикання
  5. Деплой: налаштовуємо дашборд та правила rollout

Що входить у роботу з впровадження feature flags

  • Аудит поточного релізного процесу та визначення критичних фіч.
  • Вибір та налаштування інструменту (Firebase Remote Config або LaunchDarkly).
  • Розробка централізованого шару доступу до флагів на iOS та Android.
  • Документація з управління флагами та процедурою rollout.
  • Навчання команди: як додавати нові флаги та видаляти старі.
  • Технічна підтримка протягом першого місяця після впровадження.

Термін виконання

Firebase Remote Config з базовим набором флагів: 0,5–1 день. LaunchDarkly з targeting rules і відсотковим rollout: 1–2 дні. Вартість розраховується індивідуально.

Зв'яжіться з нами для консультації — ми оцінимо ваш проект і запропонуємо план впровадження. Замовте впровадження feature flags вже сьогодні — це захистить ваш релізний процес від дорогих простоїв.