LaunchDarkly: bu nədir, funksional bayraqlar və necə işləyir

Müəllif: IT Sectr Dərc olunub: 2026-04-13 Oxuma vaxtı: 8 dəq

LaunchDarkly funksional bayraqların idarə edilməsi platformasıdır və mobil tətbiq tərtibatçılarına yenidən yerləşdirmədən imkanları açıb-bağlamağa imkan verir. LaunchDarkly, 2024 məlumatlarına görə, 4000-dən çox şirkət yeni funksiyaların təhlükəsiz buraxılışı, A/B testi və real vaxtda mərhələli tətbiq üçün xidmətdən istifadə edir.

Əsas məqamlar

  • LaunchDarkly — təhlükəsiz yerləşdirmə və yeni imkanların test edilməsi üçün funksional bayraqların idarə edilməsi platforması
  • Feature flag — tətbiq kodunu dəyişmədən funksiyanın əlçatanlığını idarə edən açar
  • SDK serverlə SSE əlaqəsi vasitəsilə bayraqların vəziyyətini real vaxtda sinxronlaşdırır
  • Mərhələli tətbiq dərhal geri qaytarma imkanı ilə seçilmiş faiz istifadəçi üçün funksiyanı aktivləşdirir
  • A/B testi variantlar üzrə avtomatik trafik paylanması ilə multivariate bayraqlar üzərində qurulur

LaunchDarkly nədir?

LaunchDarkly 2014-cü ildə Catamorphic Corp şirkəti tərəfindən əsası qoyulmuş funksional bayraqların idarə edilməsi platformasıdır. Xidmətin əsas vəzifəsi inkişaf komandalarına yeni kod yerləşdirmədən tətbiq funksiyalarını real vaxtda açmaq, bağlamaq və konfiqurasiya etmək imkanı verməkdir.

Yeni funksionallığın buraxılışının tətbiq mağazasında versiya dərc etməyi tələb etdiyi ənənəvi yanaşmadan fərqli olaraq, LaunchDarkly davranışı uzaqdan dəyişməyə imkan verir. Mobil inkişaf üçün bu xüsusilə vacibdir — App Store və Google Play-də baxış bir neçə saatdan bir neçə günə qədər çəkir, bayraq isə saniyələr ərzində dəyişdirilə bilər.

LaunchDarkly platforması necə işləyir

LaunchDarkly arxitekturası üç komponent üzərində qurulur: bayraq serveri, müştəri SDK-ları və idarəetmə paneli. Server bayraq konfiqurasiyalarını, aktivləşdirmə qaydalarını və istifadəçi seqmentlərini saxlayır. SDK real vaxtda yeniləmələri almaq üçün serverlə daimi SSE əlaqəsi saxlayır.

Paneldə bayraq dəyişdirildikdə, server bütün qoşulmuş SDK-lara yeniləmə göndərir. Gecikmə 200–500 millisaniyə təşkil edir. Əlaqə itirildikdə, SDK kanal bərpa olunana qədər son keşlənmiş vəziyyətdən istifadə edir. Bu, tətbiqin qırılma anında aktual olan parametrlərlə işə davam etməsinə zəmanət verir.

LaunchDarkly idarəetmə paneli bayraqların yaradılması və idarə edilməsi üçün vizual interfeys təqdim edir. Panel göstərir hər bir bayrağın cari vəziyyətini, kimin və nə vaxt konfiqurasiyanı dəyişdirdiyi auditi olan dəyişiklik tarixçəsini, həmçinin istifadə metrikalarını. Hər bir mühit üçün ayrıca qaydalar konfiqurasiya edilə bilər — bayraq staging-də 100%, production-da isə 5% aktiv ola bilər.

LaunchDarkly-nin əsas anlayışları

Feature flag qaydaları və məqsədləri olan adlandırılmış keçiddir. Bayraqlar boolean, multivariate və JSON tipli ola bilər. Rules aktivləşdirmə şərtlərini müəyyən edir: məsələn, “Almaniyadan Android 12 istifadəçilərinin 10%-i üçün aktiv et”. Segments istifadəçiləri OS versiyası, region, cihaz modeli və ixtiyari atributlar üzrə qruplaşdırır.

Hər bir bayrağın mühitləri var: development, staging və production. Bu, yeni funksiyanı real istifadəçilər üçün aktiv etməzdən əvvəl təcrid olunmuş mühitdə sınaqdan keçirməyə imkan verir. Mühit qaydaları müstəqil konfiqurasiya edilir — bayraq staging-də aktiv, production-da isə söndürülmüş ola bilər.

SDK və mobil tətbiqlərlə inteqrasiya

LaunchDarkly Android, iOS, React Native və Flutter üçün yerli SDK-lar təqdim edir. Hər bir SDK minimal konfiqurasiya tələb edir: SDK açarı və istifadəçi identifikatoru. Kitabxana avtomatik olaraq əlaqə, keşləmə və xəta idarəetməsini həyata keçirir.

Android SDK-nın işə salınması

Qoşulmaq üçün Application.onCreate-də LDClient nümunəsi yaradılır. Müştəri mobil açar və istifadəçi konteksti ilə konfiqurasiya qəbul edir. İşə salındıqdan sonra tətbiq kodein istənilən yerində boolVariation metodu ilə bayraq variasiyasını çağırır.

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

Bayraq dəyişikliklərinin oxunması və izlənməsi

İşə salındıqdan sonra bayrağın yoxlanılması bir metodla həyata keçirilir. BoolVariation bayraq qaydalarına uyğun dəyəri qaytarır. SDK konfiqurasiyanı əldə edə bilmədikdə standart dəyər istifadə olunur. BoolVariationDetail metodu əlavə olaraq bayrağın bu dəyəri qəbul etmə səbəbini qaytarır.

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

LaunchDarkly vasitəsilə A/B testi və mərhələli tətbiq

A/B testi LaunchDarkly-də multivariate bayraqlar vasitəsilə həyata keçirilir. Hər bir varianta trafik faizi təyin edilir — məsələn, istifadəçilərin 50%-i köhnə ekranı (variant A), 50%-i isə yenisini (variant B) görür. Platforma istifadəçini qeyd edərək onun həmişə eyni qrupa düşməsinə zəmanət verir.

Mərhələli tətbiq funksiyaya girişi olan istifadəçilərin faizini tədricən artırır. Tipik cədvəl: 1% — birinci gün, 5% — ikinci, 25% — üçüncü, 100% — bir həftədən sonra. Xəta aşkar edildikdə, bayraq dərhal hamı üçün söndürülür. LaunchDarkly hər bir variasiyanın metrikalarını izləmək üçün Amplitude, Mixpanel və Google Analytics ilə inteqrasiya olunur.

Metrikalar və eksperimentlər

Platforma variantlar arasında fərqlərin statistik əhəmiyyətini avtomatik hesablayan quraşdırılmış eksperimentlər sistemi təqdim edir. Mövcud metrikalar: konversiya, retention, sessiyaların sayı, xətalar və fərdi hadisələr. Nəticələr etibar intervallarının vizuallaşdırılması ilə paneldə göstərilir. Eksperimentlər həm production trafikində, həm də ayrılmış istifadəçi seqmentlərində işə salına bilər.

LaunchDarkly-nin analitik platformalarla inteqrasiyası başqa bir üstünlükdür. Bayraqlar haqqında məlumatlar avtomatik olaraq Amplitude, Mixpanel, Google Analytics və ya Data Export API vasitəsilə öz data pipeline-a göndərilir. Bu, hər bir funksiyanın tətbiqin əsas metrikalarına təsiri haqqında hesabatlar yaratmağa imkan verir. LaunchDarkly həmçinin bayraq vəziyyətinin dəyişməsi barədə xarici sistemləri xəbərdar etmək üçün webhook-ları dəstəkləyir.

Android-də LaunchDarkly SDK inteqrasiyası nümunəsi

Tam dövrü nəzərdən keçirək: asılılığın əlavə edilməsi, işə salınma və qəza telemetriyası üçün bayrağın yoxlanılması. Funksiya yalnız test edənlər üçün aktiv olmalı, real istifadəçilər üçün yox. Android üçün LaunchDarkly SDK Maven Central vasitəsilə mövcuddur. 5.x versiyası bayraq yeniləmələrini reaktiv əldə etmək üçün Kotlin Coroutines və Jetpack Compose-u dəstəkləyir.

iOS tətbiqləri üçün LaunchDarkly Swift Package Manager və CocoaPods dəstəyi təqdim edir. Swift SDK asinxron işə salma üçün async/await və dəyişikliklərə abunə olmaq üçün Combine framework-dən istifadə edir. Hər iki SDK (Android və iOS) oflayn rejimdə işləmək üçün fon sinxronizasiyası və yerli yaddaşda keşləməni dəstəkləyir.

build.gradle-də asılılıq

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

CrashReporter-də bayrağın yoxlanılması

CrashReporter sinfində crash-reporting-enabled bayrağını yoxlayırıq. Əgər bayraq aktivdirsə cari istifadəçi üçün — qəza hesabatlarının göndərilməsini işə salırıq. Serverdə dəyişiklik olduqda SDK avtomatik olaraq yeni vəziyyəti alacaq, lakin işə salma üçün birdəfəlik yoxlama kifayətdir.

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

Tipik ssenarilər və anti-nümunələr

Uğurlu ssenarilər: provayder nasazlıqları zamanı dərhal söndürmə ilə ödəniş axınının idarə edilməsi, metrikaların monitorinqi ilə UI dəyişikliklərinin mərhələli tətbiqi, seqmentlər üzrə məzmunun fərdiləşdirilməsi. LaunchDarkly rəsmi bloqunun məlumatlarına görə, komandalar səhvlərdən sonra bərpa müddətini saatlardan dəqiqələrə endirir.

Anti-nümunələr: bayraqların daimi şərti məntiq üçün istifadəsi (bayraqlar müvəqqətidir), bayraq atributlarında sirlərin saxlanması, üst-üstə düşən qaydaların yaradılması. Tövsiyə: tətbiq başa çatdıqdan sonra bayrağı koddan silin — bu, texniki borcun və kod bazasının mürəkkəbləşməsinin qarşısını alır. Digər ümumi səhv funksiya sabitləşdikdən sonra koddan heç vaxt silinməyən uzunömürlü keçidlər üçün bayraqlardan istifadə etməkdir.

Düzgün bayraq idarəetmə strategiyası hər bir yeni bayraq üçün silmə planını əhatə edir. LaunchDarkly təqdim edir istifadə olunmayan bayraqların aşkarlanması üçün quraşdırılmış alətlər — SDK 30 gündən çox bayrağın dəyərini yoxlamadıqda bayraq istifadə olunmamış sayılır. Belə bayraqlar paneldə qeyd olunur və onları koddan təhlükəsiz şəkildə silmək olar.

LaunchDarkly-dən nə vaxt imtina etməli

Bir komandalı kiçik layihələr üçün LaunchDarkly həddindən artıq ola bilər — koddakı sadə conditional və ya Firebase Remote Config kifayətdir. Platformanı seçin, mürəkkəb seqmentasiya, dəyişiklik auditi, A/B eksperimentləri və ya çoxkomandalı bayraq idarəetməsi tələb olunduqda. Startaplar və MVP layihələri üçün LaunchDarkly bayraqların və MAU-nun sayında məhdudiyyəti olan pulsuz Starter planı təklif edir.

LaunchDarkly-nin mövcud alətlərlə uyğunluğu vacib seçim meyarıdır. Platforma inteqrasiya olunur Jira, Slack, PagerDuty, Datadog və digər xidmətlərlə webhook-lar və API vasitəsilə. Bu alətləri artıq istifadə edən komandalar bayraq vəziyyətinin dəyişməsi zamanı monitorinq və bildirişlər üçün əlavə infrastruktur olmadan problemsiz inteqrasiya əldə edir. LaunchDarkly həmçinin bayraqları kod kimi idarə etmək (Flags as Code) üçün Terraform provayderini dəstəkləyir — bu, bayraq konfiqurasiyasını Git-də saxlamağa və tətbiqdən əvvəl code review-dən keçirməyə imkan verir.

Tez-tez verilən suallar

LaunchDarkly nə qədərdir?

LaunchDarkly bayraqların və MAU-nun sayında məhdudiyyəti olan Freemium tarifi təklif edir. Komandalar üçün kommersiya planları ayda 150$-dan başlayır, limitsiz bayraqlar, dəyişiklik auditi və Jira və Slack ilə inteqrasiyanı əhatə edir.

LaunchDarkly hansı mobil SDK-ları dəstəkləyir?

Platforma 40-dan çox SDK-nı dəstəkləyir, o cümlədən yerli Android (Kotlin/Java), iOS (Swift/Objective-C), React Native və Flutter. Bütün mobil SDK-lar yerli yaddaşda keşləmə ilə Streaming API vasitəsilə işləyir.

LaunchDarkly A/B testi üçün istifadə edilə bilərmi?

Bəli, LaunchDarkly multivariate bayraqları, trafik paylanması və statistik əhəmiyyətin avtomatik hesablanması ilə quraşdırılmış eksperimentlər sisteminə malikdir. Amplitude, Mixpanel və Google Analytics ilə inteqrasiya dəstəklənir.

SDK internet olmadıqda necə işləyir?

Əlaqə itirildikdə, SDK yerli yaddaşdan keşlənmiş dəyərlərdən istifadə edir. Əlaqə bərpa edildikdən sonra SDK serverlə sinxronlaşır və bayraqların cari vəziyyətlərini tətbiq edir.

LaunchDarkly Firebase Remote Config-dən nə ilə fərqlənir?

LaunchDarkly A/B testi, multi-variant bayraqları, mürəkkəb seqmentasiya, dəyişiklik auditi və server dilləri üçün SDK-lar təqdim edir. Firebase Remote Config daha sadə və pulsuzdur, lakin çoxvariantlı eksperimentləri və ətraflı auditi dəstəkləmir.

Nəticə

  • LaunchDarkly — mobil tətbiqlərdə yeni imkanların təhlükəsiz yerləşdirilməsi üçün funksional bayraqların idarə edilməsi platforması
  • Feature flag istifadəçi seqmentləri üzrə aktivləşdirmə qaydaları ilə boolean, multivariate və JSON tiplərini dəstəkləyir
  • SDK Android, iOS, React Native və Flutter üçün SSE əlaqəsi vasitəsilə bayraqları real vaxtda sinxronlaşdırır
  • Mərhələli tətbiq riskləri azaldır — versiyanı geri qaytarmadan problem aşkar edildikdə bayraq dərhal söndürülür
  • A/B testi avtomatik paylanma və statistik hesabatla multivariate bayraqlar üzərində qurulur
  • Seqmentasiya OS versiyası, region, cihaz modeli və atributlar üzrə dəqiq aktivləşdirməyə imkan verir
  • Tövsiyə olunur şərti məntiqin yığılmasının qarşısını almaq üçün işlənmiş bayraqları koddan silmək

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun