LaunchDarkly: Was es ist, Feature-Flags und wie sie funktionieren

Autor: IT Sectr Veröffentlicht: 2026-04-13 Lesezeit: 8 Min.

LaunchDarkly ist eine Plattform zur Verwaltung von Feature-Flags, die es Entwicklern mobiler Apps ermöglicht, Funktionen ohne erneute Bereitstellung zu aktivieren und zu deaktivieren. Laut LaunchDarkly, 2024 nutzen über 4.000 Unternehmen den Dienst für sichere Funktionsveröffentlichungen, A/B-Tests und schrittweises Rollout in Echtzeit.

Wichtige Punkte

  • LaunchDarkly ist eine Feature-Flag-Management-Plattform für sicheres Deployment und Testen neuer Funktionen
  • Feature flag ist ein Schalter, der die Verfügbarkeit einer Funktion steuert, ohne den Anwendungscode zu ändern
  • SDK synchronisiert den Flag-Status in Echtzeit über eine SSE-Verbindung zum Server
  • Schrittweises Rollout aktiviert eine Funktion für einen ausgewählten Prozentsatz der Benutzer mit sofortiger Rücksetzmöglichkeit
  • A/B-Tests basieren auf multivariaten Flags mit automatischer Verkehrsverteilung auf Varianten

Was ist LaunchDarkly?

LaunchDarkly ist eine 2014 von Catamorphic Corp. gegründete Feature-Flag-Management-Plattform. Der Hauptzweck des Dienstes besteht darin, Entwicklungsteams die Möglichkeit zu geben, Anwendungsfunktionen in Echtzeit zu aktivieren, zu deaktivieren und zu konfigurieren, ohne neuen Code bereitzustellen.

Im Gegensatz zum traditionellen Ansatz, bei dem die Freigabe neuer Funktionalitäten die Veröffentlichung einer Version im App Store erfordert, ermöglicht LaunchDarkly die Änderung des Verhaltens aus der Ferne. Für die mobile Entwicklung ist dies besonders wichtig – die Überprüfung im App Store und bei Google Play dauert mehrere Stunden bis zu einem Tag, während ein Flag in Sekunden umgeschaltet werden kann.

Wie die LaunchDarkly-Plattform funktioniert

Die LaunchDarkly-Architektur besteht aus drei Komponenten: dem Flag-Server, Client-SDKs und dem Dashboard. Der Server speichert Flag-Konfigurationen, Zielregeln und Benutzersegmente. Das SDK hält eine permanente SSE-Verbindung zum Server aufrecht, um Echtzeit-Updates zu erhalten.

Wenn ein Flag im Dashboard geändert wird, sendet der Server ein Update an alle verbundenen SDKs. Die Verzögerung beträgt 200–500 Millisekunden. Bei Verbindungsverlust verwendet das SDK den letzten zwischengespeicherten Zustand, bis der Kanal wiederhergestellt ist. Dies stellt sicher, dass die Anwendung mit den zum Zeitpunkt der Trennung verfügbaren aktuellsten Einstellungen weiterarbeitet.

Das LaunchDarkly-Dashboard bietet eine visuelle Oberfläche zum Erstellen und Verwalten von Flags. Das Dashboard zeigt den aktuellen Status jedes Flags, den Änderungsverlauf mit Prüfprotokoll darüber, wer wann die Konfiguration geändert hat, sowie Nutzungsmetriken. Für jede Umgebung können separate Regeln konfiguriert werden – ein Flag kann in der Staging-Umgebung zu 100 % und in der Produktion zu 5 % aktiviert sein.

Wichtige LaunchDarkly-Konzepte

Feature flag ist ein benannter Schalter mit Regeln und Zielen. Flags können boolesch, multivariat und JSON sein. Regeln definieren Aktivierungsbedingungen, zum Beispiel: „Aktivieren für 10 % der Android 12-Benutzer aus Deutschland.“ Segmente gruppieren Benutzer nach Betriebssystemversion, Region, Gerätemodell und benutzerdefinierten Attributen.

Jedes Flag hat Umgebungen: Entwicklung, Staging und Produktion. Dies ermöglicht das Testen einer neuen Funktion in einer isolierten Umgebung, bevor sie für reale Benutzer aktiviert wird. Umgebungsregeln werden unabhängig konfiguriert – ein Flag kann in der Staging-Umgebung aktiviert und in der Produktion deaktiviert sein.

SDK und Integration mit mobilen Apps

LaunchDarkly bietet native SDKs für Android, iOS, React Native und Flutter. Jedes SDK erfordert minimale Einrichtung: einen SDK-Schlüssel und eine Benutzerkennung. Die Bibliothek verwaltet automatisch Verbindungen, Zwischenspeicherung und Fehlerbehandlung.

Initialisierung des Android-SDK

Zum Verbinden wird eine LDClient-Instanz in Application.onCreate erstellt. Der Client akzeptiert eine Konfiguration mit einem mobilen Schlüssel und Benutzerkontext. Nach der Initialisierung ruft die Anwendung mit der Methode boolVariation an jeder Stelle im Code eine Flag-Variation auf.

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)
    }
}

Lesen und Abonnieren von Flag-Änderungen

Nach der Initialisierung erfolgt die Überprüfung eines Flags mit einer einzigen Methode. BoolVariation gibt den Wert entsprechend den Flag-Regeln zurück. Der Standardwert wird verwendet, wenn das SDK die Konfiguration nicht abrufen konnte. Die Methode boolVariationDetail gibt zusätzlich den Grund zurück, warum das Flag diesen Wert angenommen hat.

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

A/B-Tests und schrittweises Rollout über LaunchDarkly

A/B-Tests in LaunchDarkly werden über multivariate Flags implementiert. Jeder Variante wird ein Verkehrsprozentsatz zugewiesen – beispielsweise sehen 50 % der Benutzer den alten Bildschirm (Variante A) und 50 % den neuen (Variante B). Die Plattform fixiert den Benutzer und stellt sicher, dass er immer in derselben Gruppe landet.

Das schrittweise Rollout erhöht den Prozentsatz der Benutzer mit Zugriff auf eine Funktion allmählich. Ein typischer Zeitplan: 1 % – erster Tag, 5 % – zweiter, 25 % – dritter, 100 % – nach einer Woche. Wird ein Fehler festgestellt, wird das Flag sofort für alle deaktiviert. LaunchDarkly integriert sich mit Amplitude, Mixpanel und Google Analytics, um Metriken jeder Variation zu verfolgen.

Metriken und Experimente

Die Plattform bietet ein integriertes Experimentiersystem, das automatisch die statistische Signifikanz von Unterschieden zwischen Varianten berechnet. Verfügbare Metriken: Konversion, Bindung, Sitzungsanzahl, Fehler und benutzerdefinierte Ereignisse. Ergebnisse werden im Dashboard mit Visualisierung von Konfidenzintervallen angezeigt. Experimente können sowohl auf Produktionsverkehr als auch auf dedizierten Benutzersegmenten durchgeführt werden.

Die Integration von LaunchDarkly mit Analyseplattformen ist ein weiterer Vorteil. Flag-Daten werden automatisch an Amplitude, Mixpanel, Google Analytics oder eine benutzerdefinierte Datenpipeline über die Data Export API gesendet. Dies ermöglicht die Erstellung von Berichten über die Auswirkungen jeder Funktion auf wichtige Anwendungsmetriken. LaunchDarkly unterstützt auch Webhooks zur Benachrichtigung externer Systeme über Änderungen des Flag-Status.

Beispiel der LaunchDarkly SDK-Integration in Android

Wir durchlaufen den vollständigen Zyklus: Hinzufügen der Abhängigkeit, Initialisierung und Überprüfung eines Flags für die Absturztelemetrie. Die Funktion soll nur für Tester aktiv sein, nicht für echte Benutzer. Das LaunchDarkly SDK für Android ist über Maven Central verfügbar. Version 5.x unterstützt Kotlin Coroutines und Jetpack Compose für den reaktiven Empfang von Flag-Updates.

Für iOS-Anwendungen bietet LaunchDarkly Unterstützung für Swift Package Manager und CocoaPods. Das Swift SDK verwendet async/await für die asynchrone Initialisierung und das Combine-Framework zum Abonnieren von Änderungen. Beide SDKs (Android und iOS) unterstützen Hintergrundsynchronisierung und Zwischenspeicherung im lokalen Speicher für den Offline-Betrieb.

Abhängigkeit in build.gradle

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

Flag-Prüfung in CrashReporter

In der CrashReporter-Klasse überprüfen wir das Flag crash-reporting-enabled. Wenn das Flag für den aktuellen Benutzer aktiviert ist, beginnen wir mit dem Senden von Absturzberichten. Das SDK erhält automatisch den neuen Status, wenn er sich auf dem Server ändert, aber eine einmalige Überprüfung reicht für die Initialisierung aus.

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

Häufige Szenarien und Anti-Patterns

Erfolgreiche Szenarien: Verwaltung des Zahlungsablaufs mit sofortiger Deaktivierung bei Anbieterausfällen, schrittweises Rollout von UI-Änderungen mit Metriküberwachung, Personalisierung von Inhalten nach Segmenten. Laut dem offiziellen LaunchDarkly-Blog verkürzen Teams die Fehlerbehebungszeit von Stunden auf Minuten.

Anti-Patterns: Verwendung von Flags für dauerhafte bedingte Logik (Flags sind temporär), Speichern von Geheimnissen in Flag-Attributen, Erstellen sich überschneidender Regeln. Empfehlung: Entfernen Sie das Flag nach Abschluss des Rollouts aus dem Code – dies verhindert technische Schulden und Codebase-Komplexität. Ein weiterer häufiger Fehler ist die Verwendung von Flags für langlebige Schalter, die nach der Stabilisierung der Funktion niemals aus dem Code entfernt werden.

Eine ordnungsgemäße Flag-Management-Strategie enthält einen Entfernungsplan für jedes neue Flag. LaunchDarkly bietet integrierte Tools zur Erkennung ungenutzter Flags – ein Flag gilt als ungenutzt, wenn das SDK seinen Wert seit mehr als 30 Tagen nicht überprüft hat. Solche Flags werden im Dashboard markiert und können sicher aus dem Code entfernt werden.

Wann Sie LaunchDarkly vermeiden sollten

Für kleine Projekte mit einem einzigen Team kann LaunchDarkly überdimensioniert sein – eine einfache Bedingung im Code oder Firebase Remote Config reicht aus. Wählen Sie die Plattform, wenn Sie komplexe Segmentierung, Änderungsprüfung, A/B-Experimente oder Multi-Team-Flag-Management benötigen. Für Startups und MVP-Projekte bietet LaunchDarkly einen kostenlosen Starter-Plan mit Beschränkungen für die Anzahl der Flags und MAU.

Die Kompatibilität von LaunchDarkly mit vorhandenen Tools ist ein wichtiges Auswahlkriterium. Die Plattform integriert sich mit Jira, Slack, PagerDuty, Datadog und anderen Diensten über Webhooks und APIs. Teams, die diese Tools bereits verwenden, erhalten eine nahtlose Integration ohne zusätzliche Infrastruktur für Überwachung und Benachrichtigungen bei Änderungen des Flag-Status. LaunchDarkly unterstützt auch einen Terraform-Anbieter für die Verwaltung von Flags als Code (Flags as Code) – dies ermöglicht die Speicherung der Flag-Konfiguration in Git und die Durchsicht des Codes vor der Übernahme.

Häufig gestellte Fragen

Wie viel kostet LaunchDarkly?

LaunchDarkly bietet einen Freemium-Tarif mit Beschränkungen für die Anzahl der Flags und MAU. Kommerzielle Pläne für Teams beginnen bei 150 $ pro Monat und beinhalten unbegrenzte Flags, Änderungsprüfung und Integration mit Jira und Slack.

Welche mobilen SDKs unterstützt LaunchDarkly?

Die Plattform unterstützt über 40 SDKs, darunter native Android (Kotlin/Java), iOS (Swift/Objective-C), React Native und Flutter. Alle mobilen SDKs arbeiten über die Streaming-API mit Zwischenspeicherung im lokalen Speicher.

Kann LaunchDarkly für A/B-Tests verwendet werden?

Ja, LaunchDarkly verfügt über ein integriertes Experimentiersystem mit multivariaten Flags, Verkehrsverteilung und automatischer Berechnung der statistischen Signifikanz. Die Integration mit Amplitude, Mixpanel und Google Analytics wird unterstützt.

Wie funktioniert das SDK ohne Internetverbindung?

Bei Verbindungsverlust verwendet das SDK zwischengespeicherte Flag-Werte aus dem lokalen Speicher. Nach Wiederherstellung der Verbindung synchronisiert sich das SDK mit dem Server und wendet die aktuellen Flag-Status an.

Wie unterscheidet sich LaunchDarkly von Firebase Remote Config?

LaunchDarkly bietet A/B-Tests, multivariate Flags, erweiterte Segmentierung, Änderungsprüfung und SDKs für serverseitige Sprachen. Firebase Remote Config ist einfacher und kostenlos, unterstützt jedoch keine multivariaten Experimente oder detaillierte Prüfung.

Zusammenfassung

  • LaunchDarkly ist eine Feature-Flag-Management-Plattform für sicheres Deployment neuer Funktionen in mobilen Apps
  • Feature flag unterstützt boolesche, multivariate und JSON-Typen mit Zielregeln basierend auf Benutzersegmenten
  • SDK für Android, iOS, React Native und Flutter synchronisieren Flags in Echtzeit über SSE-Verbindung
  • Schrittweises Rollout reduziert Risiken – ein Flag wird bei Problemerkennung sofort deaktiviert, ohne Versionsrücksetzung
  • A/B-Tests basieren auf multivariaten Flags mit automatischer Verteilung und statistischer Berichterstattung
  • Segmentierung nach OS-Version, Region, Gerätemodell und Attributen ermöglicht präzise Aktivierung
  • Empfohlen, veraltete Flags aus dem Code zu entfernen, um die Ansammlung von Bedingungslogik zu verhindern

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch