LaunchDarkly is een platform voor het beheer van functionele vlaggen waarmee ontwikkelaars van mobiele applicaties functionaliteiten kunnen in- en uitschakelen zonder opnieuw te implementeren. Volgens LaunchDarkly, 2024 gebruiken meer dan 4000 bedrijven de dienst voor het veilig lanceren van nieuwe functies, A/B-testen en gefaseerde uitrol in realtime.
Belangrijkste punten
LaunchDarkly is een platform voor het beheer van functionele vlaggen, opgericht in 2014 door Catamorphic Corp. De belangrijkste taak van de dienst is om ontwikkelingsteams de mogelijkheid te geven om applicatiefuncties in realtime in, uit en te configureren zonder nieuwe code te implementeren.
In tegenstelling tot de traditionele aanpak, waarbij het uitbrengen van nieuwe functionaliteit het publiceren van een versie in de app-winkel vereist, maakt LaunchDarkly het mogelijk om het gedrag op afstand te wijzigen. Voor mobiele ontwikkeling is dit bijzonder belangrijk — beoordeling in de App Store en Google Play duurt enkele uren tot dagen, terwijl een vlag in seconden kan worden omgeschakeld.
De architectuur van LaunchDarkly is gebaseerd op drie componenten: de vlaggenserver, client-SDK’s en het controlepaneel. De server slaat vlagconfiguraties, activeringsregels en gebruikerssegmenten op. De SDK onderhoudt een permanente SSE-verbinding met de server om realtime updates te ontvangen.
Wanneer een vlag in het paneel wordt gewijzigd, stuurt de server een update naar alle aangesloten SDK’s. De vertraging bedraagt 200–500 milliseconden. Bij verlies van verbinding gebruikt de SDK de laatste gecachte status totdat het kanaal is hersteld. Dit garandeert dat de applicatie blijft werken met de instellingen die op het moment van de onderbreking actueel waren.
Het LaunchDarkly-controlepaneel biedt een visuele interface voor het maken en beheren van vlaggen. Het paneel toont de huidige status van elke vlag, de wijzigingsgeschiedenis met audit van wie en wanneer de configuratie heeft gewijzigd, evenals gebruiksstatistieken. Voor elke omgeving kunnen afzonderlijke regels worden geconfigureerd — een vlag in staging kan voor 100% zijn ingeschakeld en in production voor 5%.
Feature flag is een benoemde schakelaar met regels en doelen. Vlaggen kunnen boolean, multivariate en JSON zijn. Rules bepalen de activeringsvoorwaarden: bijvoorbeeld, ‚inschakelen voor 10% van de Android 12-gebruikers uit Duitsland“. Segments groeperen gebruikers op OS-versie, regio, apparaatmodel en willekeurige attributen.
Elke vlag heeft omgevingen: development, staging en production. Dit maakt het mogelijk om een nieuwe functie in een geïsoleerde omgeving te testen voordat deze wordt ingeschakeld voor echte gebruikers. Omgevingsregels worden onafhankelijk geconfigureerd — een vlag kan zijn ingeschakeld in staging en uitgeschakeld in production.
LaunchDarkly biedt native SDK’s voor Android, iOS, React Native en Flutter. Elke SDK vereist minimale configuratie: een SDK-sleutel en gebruikersidentificatie. De bibliotheek beheert automatisch de verbinding, caching en foutafhandeling.
Voor verbinding wordt een LDClient-instantie gemaakt in Application.onCreate. De client accepteert configuratie met een mobiele sleutel en gebruikerscontext. Na initialisatie roept de applicatie op elke plek in de code de vlagvariatie aan met de methode boolVariation.
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)
}
}
Na initialisatie wordt de vlag gecontroleerd met één methode. BoolVariation retourneert de waarde volgens de vlagregels. De standaardwaarde wordt gebruikt als de SDK de configuratie niet kon ophalen. De methode boolVariationDetail retourneert daarnaast de reden waarom de vlag deze waarde heeft aangenomen.
val ldClient = LDClient.get()
val showNewFeature = ldClient.boolVariation(
"new-checkout-flow",
false
)
if (showNewFeature) {
showNewCheckoutScreen()
} else {
showLegacyCheckoutScreen()
}
A/B-testen in LaunchDarkly wordt geïmplementeerd via multivariate vlaggen. Elke variant krijgt een percentage verkeer toegewezen — bijvoorbeeld 50% van de gebruikers ziet het oude scherm (variant A) en 50% het nieuwe (variant B). Het platform registreert de gebruiker en garandeert dat deze altijd in dezelfde groep terechtkomt.
Gefaseerde uitrol verhoogt het percentage gebruikers met toegang tot de functie geleidelijk. Typisch schema: 1% — dag één, 5% — dag twee, 25% — dag drie, 100% — na een week. Bij detectie van een fout wordt de vlag onmiddellijk voor iedereen uitgeschakeld. LaunchDarkly integreert met Amplitude, Mixpanel en Google Analytics voor het volgen van statistieken van elke variatie.
Het platform biedt een ingebouwd experimentsysteem dat automatisch de statistische significantie van verschillen tussen varianten berekent. Beschikbare statistieken: conversie, retentie, aantal sessies, fouten en aangepaste gebeurtenissen. Resultaten worden weergegeven in het paneel met visualisatie van betrouwbaarheidsintervallen. Experimenten kunnen zowel op productieverkeer als op toegewezen gebruikerssegmenten worden uitgevoerd.
Integratie van LaunchDarkly met analyseplatforms is een ander voordeel. Gegevens over vlaggen worden automatisch naar Amplitude, Mixpanel, Google Analytics of een eigen datapijplijn gestuurd via Data Export API. Dit maakt het mogelijk om rapporten te maken over de impact van elke functie op belangrijke applicatiestatistieken. LaunchDarkly ondersteunt ook webhooks voor het melden van externe systemen over wijzigingen in de vlagstatus.
Laten we de volledige cyclus bekijken: toevoegen van afhankelijkheid, initialisatie en controleren van de vlag voor crash-telemetrie. De functie moet alleen actief zijn voor testers, niet voor echte gebruikers. LaunchDarkly SDK voor Android is beschikbaar via Maven Central. Versie 5.x ondersteunt Kotlin Coroutines en Jetpack Compose voor reactief ontvangen van vlagupdates.
Voor iOS-applicaties biedt LaunchDarkly ondersteuning voor Swift Package Manager en CocoaPods. Swift SDK gebruikt async/await voor asynchrone initialisatie en Combine framework voor abonneren op wijzigingen. Beide SDK’s (Android en iOS) ondersteunen achtergrondsynchronisatie en caching in lokale opslag voor offline werking.
// app/build.gradle
dependencies {
implementation "com.launchdarkly:launchdarkly-android-sdk:5.2.0"
}
In de klasse CrashReporter controleren we de vlag crash-reporting-enabled. Als de vlag is ingeschakeld voor de huidige gebruiker — starten we het verzenden van crashrapporten. De SDK ontvangt automatisch de nieuwe status bij wijziging op de server, maar voor initialisatie is een eenmalige controle voldoende.
class CrashReporter {
fun init() {
val client = LDClient.get()
if (client.boolVariation("crash-reporting-enabled", false)) {
Crashlytics.start()
}
}
}
Succesvolle scenario’s: beheren van betalingsstromen met onmiddellijke uitschakeling bij providerstoringen, gefaseerde uitrol van UI-wijzigingen met monitoring van statistieken, personalisatie van content per segment. Volgens de officiële blog van LaunchDarkly verkorten teams de hersteltijd na fouten van uren naar minuten.
Antipatronen: gebruik van vlaggen voor permanente voorwaardelijke logica (vlaggen zijn tijdelijk), opslaan van geheimen in vlagattributen, maken van overlappende regels. Aanbeveling: verwijder de vlag uit de code na afronding van de uitrol — dit voorkomt technische schuld en complexiteit van de codebasis. Een andere veelgemaakte fout is het gebruik van vlaggen als langlevende schakelaars die nooit uit de code worden verwijderd na stabilisatie van de functie.
Een juiste strategie voor vlagbeheer omvat een verwijderplan voor elke nieuwe vlag. LaunchDarkly biedt ingebouwde tools voor het detecteren van ongebruikte vlaggen — een vlag wordt als ongebruikt beschouwd als de SDK de waarde ervan meer dan 30 dagen niet heeft gecontroleerd. Dergelijke vlaggen worden in het paneel gemarkeerd en kunnen veilig uit de code worden verwijderd.
Voor kleine projecten met één team kan LaunchDarkly overbodig zijn — een simpele conditional in de code of Firebase Remote Config is voldoende. Kies het platform wanneer complexe segmentatie, wijzigingsaudit, A/B-experimenten of multi-team vlagbeheer vereist is. Voor startups en MVP-projecten biedt LaunchDarkly een gratis Starter-plan met beperking op het aantal vlaggen en MAU.
Compatibiliteit van LaunchDarkly met bestaande tools is een belangrijk selectiecriterium. Het platform integreert met Jira, Slack, PagerDuty, Datadog en andere diensten via webhooks en API. Teams die deze tools al gebruiken, krijgen naadloze integratie zonder extra infrastructuur voor monitoring en meldingen bij wijziging van vlagstatus. LaunchDarkly ondersteunt ook een Terraform-provider voor het beheren van vlaggen als code (Flags as Code) — dit maakt het mogelijk om vlagconfiguraties in Git op te slaan en code review te doorlopen voor toepassing.
Veelgestelde vragen
LaunchDarkly biedt een Freemium-tarief met beperking op het aantal vlaggen en MAU. Commerciële abonnementen voor teams beginnen bij $150 per maand, inclusief onbeperkte vlaggen, wijzigingsaudit en integratie met Jira en Slack.
Het platform ondersteunt meer dan 40 SDK’s, waaronder native Android (Kotlin/Java), iOS (Swift/Objective-C), React Native en Flutter. Alle mobiele SDK’s werken via Streaming API met caching in lokale opslag.
Ja, LaunchDarkly heeft een ingebouwd experimentsysteem met multivariate vlaggen, verkeersverdeling en automatische berekening van statistische significantie. Integratie met Amplitude, Mixpanel en Google Analytics wordt ondersteund.
Bij verlies van verbinding gebruikt de SDK gecachte waarden van vlaggen uit de lokale opslag. Na herstel van de verbinding synchroniseert de SDK met de server en past de huidige vlagstatussen toe.
LaunchDarkly biedt A/B-testen, multi-variant vlaggen, complexe segmentatie, wijzigingsaudit en SDK’s voor servertalen. Firebase Remote Config is eenvoudiger en gratis, maar ondersteunt geen multi-variant experimenten en gedetailleerde audit.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook