LaunchDarkly: co to je, funkční příznaky a jak funguje

Autor: IT Sectr Publikováno: 2026-04-13 Doba čtení: 8 min

LaunchDarkly je platforma pro správu funkčních příznaků, která umožňuje vývojářům mobilních aplikací zapínat a vypínat funkce bez opětovného nasazení. Podle údajů LaunchDarkly, 2024 používá službu více než 4000 společností k bezpečnému spouštění nových funkcí, A/B testování a postupnému zavádění v reálném čase.

Hlavní body

  • LaunchDarkly — platforma pro správu funkčních příznaků pro bezpečné nasazení a testování nových možností
  • Feature flag — přepínač, který spravuje dostupnost funkce bez změny kódu aplikace
  • SDK synchronizuje stav příznaků v reálném čase přes SSE připojení k serveru
  • Postupné zavádění zapíná funkci pro vybrané procento uživatelů s možností okamžitého vrácení
  • A/B testování je postaveno na multivariačních příznacích s automatickým rozdělením provozu podle variant

Co je LaunchDarkly?

LaunchDarkly je platforma pro správu funkčních příznaků, založená v roce 2014 společností Catamorphic Corp. Hlavním úkolem služby je poskytnout vývojovým týmům možnost zapínat, vypínat a konfigurovat funkce aplikace v reálném čase bez nasazení nového kódu.

Na rozdíl od tradičního přístupu, kde vydání nové funkcionality vyžaduje publikování verze v obchodě s aplikacemi, LaunchDarkly umožňuje vzdálenou změnu chování. Pro mobilní vývoj je to obzvláště důležité — revize v App Store a Google Play trvá od několika hodin do několika dnů, zatímco příznak lze přepnout během sekund.

Jak funguje platforma LaunchDarkly

Architektura LaunchDarkly je postavena na třech komponentách: server příznaků, klientské SDK a ovládací panel. Server ukládá konfigurace příznaků, pravidla zapínání a segmenty uživatelů. SDK udržuje trvalé SSE připojení k serveru pro příjem aktualizací v reálném čase.

Když je příznak změněn na panelu, server odešle aktualizaci všem připojeným SDK. Zpoždění je 200–500 milisekund. Při ztrátě připojení SDK používá poslední uložený stav do obnovení kanálu. To zaručuje, že aplikace pokračuje v práci s nastaveními aktuálními v okamžiku přerušení.

Ovládací panel LaunchDarkly poskytuje vizuální rozhraní pro vytváření a správu příznaků. Panel zobrazuje aktuální stav každého příznaku, historii změn s auditem, kdo a kdy změnil konfiguraci, a také metriky použití. Pro každé prostředí lze nakonfigurovat samostatná pravidla — příznak ve stagingu může být zapnut na 100% a v produkci na 5%.

Klíčové pojmy LaunchDarkly

Feature flag je pojmenovaný přepínač s pravidly a cíli. Příznaky mohou být boolean, multivariační a JSON. Rules definují podmínky zapnutí: například „zapni pro 10% uživatelů Android 12 z Německa“. Segments seskupují uživatele podle verze OS, regionu, modelu zařízení a libovolných atributů.

Každý příznak má prostředí: development, staging a production. To umožňuje testovat novou funkci v izolovaném prostředí, než je zapnuta pro skutečné uživatele. Pravidla prostředí se konfigurují nezávisle — příznak může být zapnutý ve stagingu a vypnutý v produkci.

SDK a integrace s mobilními aplikacemi

LaunchDarkly poskytuje nativní SDK pro Android, iOS, React Native a Flutter. Každé SDK vyžaduje minimální konfiguraci: klíč SDK a identifikátor uživatele. Knihovna automaticky spravuje připojení, ukládání do mezipaměti a zpracování chyb.

Inicializace Android SDK

Pro připojení se vytvoří instance LDClient v Application.onCreate. Klient přijímá konfiguraci s mobilním klíčem a kontextem uživatele. Po inicializaci aplikace volá variaci příznaku na libovolném místě kódu metodou boolVariation.

kotlin
class MyApplication : Application() {
    private lateinit var ldClient: LDClient

    override fun onCreate() {
        super.onCreate()
        val config = LDConfig.Builder("mobile-key-abc123")
            .build()
        val user = LDUser.Builder("user-unique-id")
            .build()
        ldClient = LDClient.init(this, config, user)
    }
}

Čtení a přihlášení ke změnám příznaku

Po inicializaci se kontrola příznaku provádí jednou metodou. BoolVariation vrací hodnotu podle pravidel příznaku. Výchozí hodnota se použije, pokud se SDK nepodařilo získat konfiguraci. Metoda boolVariationDetail navíc vrací důvod, proč příznak přijal tuto hodnotu.

kotlin
val ldClient = LDClient.get()
val showNewFeature = ldClient.boolVariation(
    "new-checkout-flow",
    false
)
if (showNewFeature) {
    showNewCheckoutScreen()
} else {
    showLegacyCheckoutScreen()
}

A/B testování a postupné zavádění přes LaunchDarkly

A/B testování v LaunchDarkly je implementováno prostřednictvím multivariačních příznaků. Každé variantě je přiřazeno procento provozu — například 50% uživatelů vidí starou obrazovku (varianta A) a 50% — novou (varianta B). Platforma zaznamenává uživatele a zaručuje, že vždy spadá do stejné skupiny.

Postupné zavádění postupně zvyšuje procento uživatelů s přístupem k funkci. Typický harmonogram: 1% — první den, 5% — druhý, 25% — třetí, 100% — po týdnu. Při detekci chyby je příznak okamžitě vypnut pro všechny. LaunchDarkly se integruje s Amplitude, Mixpanel a Google Analytics pro sledování metrik každé variace.

Metriky a experimenty

Platforma poskytuje vestavěný systém experimentů, který automaticky vypočítává statistickou významnost rozdílů mezi variantami. Dostupné metriky: konverze, retence, počet relací, chyby a vlastní události. Výsledky se zobrazují na panelu s vizualizací intervalů spolehlivosti. Experimenty lze spouštět jak na produkčním provozu, tak na vyhrazených segmentech uživatelů.

Integrace LaunchDarkly s analytickými platformami je další výhodou. Data o příznacích jsou automaticky odesílána do Amplitude, Mixpanel, Google Analytics nebo vlastního datového pipeline přes Data Export API. To umožňuje vytvářet zprávy o dopadu každé funkce na klíčové metriky aplikace. LaunchDarkly také podporuje webhooky pro upozorňování externích systémů na změnu stavu příznaků.

Příklad integrace LaunchDarkly SDK v Androidu

Podívejme se na celý cyklus: přidání závislosti, inicializace a kontrola příznaku pro telemetrii pádů. Funkce by měla být aktivní pouze pro testery, ne pro skutečné uživatele. LaunchDarkly SDK pro Android je k dispozici přes Maven Central. Verze 5.x podporuje Kotlin Coroutines a Jetpack Compose pro reaktivní příjem aktualizací příznaků.

Pro iOS aplikace LaunchDarkly poskytuje podporu Swift Package Manager a CocoaPods. Swift SDK používá async/await pro asynchronní inicializaci a Combine framework pro přihlášení ke změnám. Obě SDK (Android a iOS) podporují synchronizaci na pozadí a ukládání do mezipaměti v lokálním úložišti pro offline provoz.

Závislost v build.gradle

groovy
// app/build.gradle
dependencies {
    implementation "com.launchdarkly:launchdarkly-android-sdk:5.2.0"
}

Kontrola příznaku v CrashReporter

Ve třídě CrashReporter kontrolujeme příznak crash-reporting-enabled. Pokud je příznak zapnutý pro aktuálního uživatele — spouštíme odesílání hlášení o pádech. SDK automaticky obdrží nový stav při změně na serveru, ale pro inicializaci stačí jednorázová kontrola.

kotlin
class CrashReporter {
    fun init() {
        val client = LDClient.get()
        if (client.boolVariation("crash-reporting-enabled", false)) {
            Crashlytics.start()
        }
    }
}

Typické scénáře a anti-vzory

Úspěšné scénáře: správa platebního toku s okamžitým vypnutím při výpadcích poskytovatele, postupné zavádění změn UI s monitorováním metrik, personalizace obsahu podle segmentů. Podle oficiálního blogu LaunchDarkly týmy zkracují dobu obnovy po chybách z hodin na minuty.

Anti-vzory: používání příznaků pro trvalou podmíněnou logiku (příznaky jsou dočasné), ukládání tajemství v atributech příznaků, vytváření překrývajících se pravidel. Doporučení: odstraňte příznak z kódu po dokončení zavádění — to zabraňuje technickému dluhu a komplikaci kódové základny. Další častou chybou je používání příznaků jako dlouhodobých přepínačů, které nejsou nikdy odstraněny z kódu po stabilizaci funkce.

Správná strategie správy příznaků zahrnuje plán odstranění pro každý nový příznak. LaunchDarkly poskytuje vestavěné nástroje pro detekci nepoužívaných příznaků — příznak je považován za nepoužívaný, pokud SDK nekontrolovalo jeho hodnotu více než 30 dní. Takové příznaky jsou označeny na panelu a lze je bezpečně odstranit z kódu.

Kdy se vzdát LaunchDarkly

Pro malé projekty s jedním týmem může být LaunchDarkly nadbytečný — stačí jednoduchý podmíněný výraz v kódu nebo Firebase Remote Config. Vyberte platformu, když je vyžadována složitá segmentace, audit změn, A/B experimenty nebo správa příznaků více týmy. Pro startupy a MVP projekty nabízí LaunchDarkly bezplatný Starter plán s omezením počtu příznaků a MAU.

Kompatibilita LaunchDarkly se stávajícími nástroji je důležitým kritériem výběru. Platforma se integruje s Jira, Slack, PagerDuty, Datadog a dalšími službami přes webhooky a API. Týmy, které již tyto nástroje používají, získávají bezproblémovou integraci bez dodatečné infrastruktury pro monitorování a upozornění při změně stavu příznaků. LaunchDarkly také podporuje poskytovatele Terraform pro správu příznaků jako kódu (Flags as Code) — to umožňuje ukládání konfigurace příznaků v Gitu a provádění code review před aplikací.

Často kladené otázky

Kolik stojí LaunchDarkly?

LaunchDarkly nabízí Freemium tarif s omezením počtu příznaků a MAU. Komerční plány pro týmy začínají na 150 USD měsíčně, včetně neomezených příznaků, auditu změn a integrace s Jira a Slack.

Jaká mobilní SDK LaunchDarkly podporuje?

Platforma podporuje více než 40 SDK, včetně nativních Android (Kotlin/Java), iOS (Swift/Objective-C), React Native a Flutter. Všechna mobilní SDK pracují přes Streaming API s ukládáním do mezipaměti v lokálním úložišti.

Lze LaunchDarkly použít pro A/B testování?

Ano, LaunchDarkly má vestavěný systém experimentů s multivariačními příznaky, rozdělením provozu a automatickým výpočtem statistické významnosti. Podporována je integrace s Amplitude, Mixpanel a Google Analytics.

Jak SDK funguje bez internetu?

Při ztrátě připojení SDK používá hodnoty z mezipaměti příznaků z lokálního úložiště. Po obnovení připojení se SDK synchronizuje se serverem a aplikuje aktuální stavy příznaků.

Čím se LaunchDarkly liší od Firebase Remote Config?

LaunchDarkly poskytuje A/B testování, multi-variantní příznaky, složitou segmentaci, audit změn a SDK pro serverové jazyky. Firebase Remote Config je jednodušší a zdarma, ale nepodporuje vícevariantní experimenty a podrobný audit.

Shrnutí

  • LaunchDarkly — platforma pro správu funkčních příznaků pro bezpečné zavádění nových možností v mobilních aplikacích
  • Feature flag podporuje boolean, multivariační a JSON typy s pravidly zapínání podle segmentů uživatelů
  • SDK pro Android, iOS, React Native a Flutter synchronizují příznaky v reálném čase přes SSE připojení
  • Postupné zavádění snižuje rizika — příznak je okamžitě vypnut při detekci problému bez vrácení verze
  • A/B testování je postaveno na multivariačních příznacích s automatickým rozdělením a statistickým reportováním
  • Segmentace podle verze OS, regionu, modelu zařízení a atributů umožňuje přesné nastavení zapínání
  • Doporučuje se odstraňovat použité příznaky z kódu, aby se zabránilo hromadění podmíněné logiky

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také