LaunchDarkly: یہ کیا ہے، فیچر فلیگ اور وہ کیسے کام کرتے ہیں

مصنف: IT Sectr اشاعت: 2026-04-13 مطالعے کا وقت: 8 منٹ

LaunchDarkly ایک فیچر فلیگ مینجمنٹ پلیٹ فارم ہے جو موبائل ایپ ڈیولپرز کو دوبارہ ڈیپلائے کیے بغیر خصوصیات کو فعال اور غیر فعال کرنے کی اجازت دیتا ہے۔ LaunchDarkly, 2024 کے مطابق، 4,000 سے زیادہ کمپنیاں محفوظ فیچر لانچ، A/B ٹیسٹنگ اور ریئل ٹائم میں بتدریج رول آؤٹ کے لیے سروس استعمال کرتی ہیں۔

اہم نکات

  • LaunchDarkly نئی صلاحیتوں کی محفوظ ڈیپلائے اور جانچ کے لیے ایک فیچر فلیگ مینجمنٹ پلیٹ فارم ہے
  • Feature flag ایک سوئچ ہے جو ایپ کوڈ کو تبدیل کیے بغیر فیچر کی دستیابی کو کنٹرول کرتا ہے
  • SDK سرور کے ساتھ SSE کنکشن کے ذریعے ریئل ٹائم میں فلیگ کی حالت کو سنکرونائز کرتا ہے
  • بتدریج رول آؤٹ فوری رول بیک کی صلاحیت کے ساتھ منتخب فیصد صارفین کے لیے فیچر کو فعال کرتا ہے
  • A/B ٹیسٹنگ مختلف حالتوں میں خودکار ٹریفک تقسیم کے ساتھ ملٹی ویریئٹ فلیگ پر بنائی گئی ہے

LaunchDarkly کیا ہے؟

LaunchDarkly ایک فیچر فلیگ مینجمنٹ پلیٹ فارم ہے جسے 2014 میں Catamorphic Corp. نے قائم کیا۔ سروس کا بنیادی مقصد ڈیولپمنٹ ٹیموں کو نیا کوڈ ڈیپلائے کیے بغیر ریئل ٹائم میں ایپلیکیشن کی خصوصیات کو فعال، غیر فعال اور کنفیگر کرنے کی صلاحیت دینا ہے۔

روایتی طریقہ کار کے برعکس، جہاں نئی فعالیت جاری کرنے کے لیے ایپ اسٹور میں ورژن شائع کرنا ضروری ہوتا ہے، LaunchDarkly دور سے رویہ تبدیل کرنے کی اجازت دیتا ہے۔ موبائل ڈیولپمنٹ کے لیے یہ خاص طور پر اہم ہے — App Store اور Google Play کا جائزہ کئی گھنٹوں سے ایک دن تک لیتا ہے، جبکہ فلیگ کو سیکنڈوں میں تبدیل کیا جا سکتا ہے۔

LaunchDarkly پلیٹ فارم کیسے کام کرتا ہے

LaunchDarkly کا آرکیٹیکچر تین اجزاء پر مشتمل ہے: فلیگ سرور، کلائنٹ SDK اور ڈیش بورڈ۔ سرور فلیگ کنفیگریشنز، ٹارگٹنگ قواعد اور صارفین کے سیگمنٹس کو ذخیرہ کرتا ہے۔ SDK ریئل ٹائم میں اپ ڈیٹس حاصل کرنے کے لیے سرور کے ساتھ مستقل SSE کنکشن برقرار رکھتا ہے۔

جب ڈیش بورڈ میں فلیگ تبدیل کیا جاتا ہے، سرور تمام منسلک SDKs کو اپ ڈیٹ بھیجتا ہے۔ تاخیر 200–500 ملی سیکنڈ ہے۔ کنکشن منقطع ہونے پر، SDK چینل بحال ہونے تک آخری کیشڈ حالت استعمال کرتا ہے۔ یہ یقینی بناتا ہے کہ ایپلیکیشن منقطع ہونے کے وقت دستیاب تازہ ترین سیٹنگز کے ساتھ کام جاری رکھے۔

LaunchDarkly ڈیش بورڈ فلیگ بنانے اور ان کے انتظام کے لیے ایک بصری انٹرفیس فراہم کرتا ہے۔ ڈیش بورڈ دکھاتا ہے ہر فلیگ کی موجودہ حالت، کنفیگریشن کس نے اور کب تبدیل کی اس کا آڈٹ ہسٹری، اور استعمال کے میٹرکس۔ ہر ماحول کے لیے علیحدہ قواعد کنفیگر کیے جا سکتے ہیں — ایک فلیگ staging پر 100% اور پروڈکشن پر 5% فعال ہو سکتا ہے۔

LaunchDarkly کے کلیدی تصورات

Feature flag قواعد اور اہداف کے ساتھ ایک نامی سوئچ ہے۔ فلیگ بولین، ملٹی ویریئٹ اور JSON اقسام کے ہو سکتے ہیں۔ Rules فعال کرنے کی شرائط طے کرتے ہیں: مثال کے طور پر، «جرمنی کے 10% Android 12 صارفین کے لیے فعال کریں»۔ Segments صارفین کو OS ورژن، علاقہ، ڈیوائس ماڈل اور حسب ضرورت خصوصیات کے مطابق گروپ کرتے ہیں۔

ہر فلیگ کے ماحول ہوتے ہیں: ڈیولپمنٹ، staging اور پروڈکشن۔ یہ حقیقی صارفین کے لیے فعال کرنے سے پہلے ایک نئی خصوصیت کو الگ تھلگ ماحول میں جانچنے کی اجازت دیتا ہے۔ ماحول کے قواعد آزادانہ طور پر کنفیگر کیے جاتے ہیں — ایک فلیگ staging پر فعال اور پروڈکشن پر غیر فعال ہو سکتا ہے۔

SDK اور موبائل ایپس کے ساتھ انٹیگریشن

LaunchDarkly Android، iOS، React Native اور Flutter کے لیے نیٹیو SDK فراہم کرتا ہے۔ ہر SDK کو کم سے کم سیٹ اپ درکار ہے: ایک SDK کلید اور صارف شناخت کنندہ۔ لائبریری خود بخود کنکشنز، کیشنگ اور ایرر ہینڈلنگ کا انتظام کرتی ہے۔

Android SDK کی ابتدا

کنیکٹ کرنے کے لیے، Application.onCreate میں LDClient انسٹنس بنائیں۔ کلائنٹ موبائل کلید اور صارف کے سیاق و سباق کے ساتھ کنفیگریشن قبول کرتا ہے۔ ابتدا کے بعد، ایپلیکیشن 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)
    }
}

فلیگ تبدیلیاں پڑھنا اور سبسکرائب کرنا

ابتداء کے بعد، فلیگ کی جانچ ایک طریقہ سے کی جاتی ہے۔ BoolVariation فلیگ کے قواعد کے مطابق قدر لوٹاتا ہے۔ ڈیفالٹ قدر اس وقت استعمال ہوتی ہے جب SDK کنفیگریشن حاصل نہ کر سکے۔ boolVariationDetail طریقہ اضافی طور پر وہ وجہ لوٹاتا ہے جس کی وجہ سے فلیگ نے وہ قدر لی۔

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

LaunchDarkly کے ذریعے A/B ٹیسٹنگ اور بتدریج رول آؤٹ

LaunchDarkly میں A/B ٹیسٹنگ ملٹی ویریئٹ فلیگ کے ذریعے نافذ کی جاتی ہے۔ ہر ویریئنٹ کو ٹریفک کا فیصد دیا جاتا ہے — مثال کے طور پر، 50% صارفین پرانی سکرین (ویریئنٹ A) اور 50% نئی سکرین (ویریئنٹ B) دیکھتے ہیں۔ پلیٹ فارم صارف کو پن کرتا ہے، اس بات کو یقینی بناتے ہوئے کہ وہ ہمیشہ ایک ہی گروپ میں آئیں۔

بتدریج رول آؤٹ کسی فیچر تک رسائی رکھنے والے صارفین کا فیصد آہستہ آہستہ بڑھاتا ہے۔ عام شیڈول: 1% — پہلا دن، 5% — دوسرا، 25% — تیسرا، 100% — ایک ہفتہ بعد۔ غلطی پائے جانے پر، فلیگ فوراً سب کے لیے بند کر دیا جاتا ہے۔ LaunchDarkly ہر ویری ایشن کے میٹرکس ٹریک کرنے کے لیے Amplitude، Mixpanel اور Google Analytics کے ساتھ انٹیگریٹ ہوتا ہے۔

میٹرکس اور تجربات

پلیٹ فارم ایک بلٹ ان تجرباتی نظام فراہم کرتا ہے جو خود بخود ویریئنٹس کے درمیان فرق کی شماریاتی اہمیت کا حساب لگاتا ہے۔ دستیاب میٹرکس: تبدیلی، برقرار رکھنا، سیشنز کی تعداد، غلطیاں اور حسب ضرورت واقعات۔ نتائج اعتماد کے وقفوں کے تصور کے ساتھ ڈیش بورڈ میں دکھائے جاتے ہیں۔ تجربات پروڈکشن ٹریفک اور مخصوص صارف سیگمنٹس دونوں پر چلائے جا سکتے ہیں۔

تجزیاتی پلیٹ فارمز کے ساتھ LaunchDarkly کا انٹیگریشن ایک اور فائدہ ہے۔ فلیگ ڈیٹا خود بخود Amplitude، Mixpanel، Google Analytics یا Data Export API کے ذریعے حسب ضرورت ڈیٹا پائپ لائن کو بھیجا جاتا ہے۔ یہ ایپلیکیشن کے اہم میٹرکس پر ہر فیچر کے اثرات پر رپورٹس بنانے کی اجازت دیتا ہے۔ LaunchDarkly فلیگ کی حالت میں تبدیلیوں کے بارے میں بیرونی نظاموں کو مطلع کرنے کے لیے webhooks کی بھی حمایت کرتا ہے۔

اینڈروئیڈ میں LaunchDarkly SDK انٹیگریشن کی مثال

مکمل سائیکل دیکھیں: انحصار شامل کرنا، ابتدا اور کریش ٹیلی میٹری کے لیے فلیگ چیک کرنا۔ فیچر صرف ٹیسٹرز کے لیے فعال ہونا چاہیے، حقیقی صارفین کے لیے نہیں۔ Android کے لیے LaunchDarkly SDK Maven Central کے ذریعے دستیاب ہے۔ ورژن 5.x فلیگ اپ ڈیٹس کی ری ایکٹو وصولی کے لیے Kotlin Coroutines اور Jetpack Compose کو سپورٹ کرتا ہے۔

iOS ایپلیکیشنز کے لیے، LaunchDarkly Swift Package Manager اور CocoaPods سپورٹ فراہم کرتا ہے۔ Swift SDK غیر مطابقت پذیر ابتدا کے لیے async/await اور تبدیلیوں کی سبسکرائب کرنے کے لیے Combine فریم ورک استعمال کرتا ہے۔ دونوں SDK (Android اور iOS) آف لائن آپریشن کے لیے بیک گراؤنڈ سنکرونائزیشن اور لوکل سٹوریج میں کیشنگ کو سپورٹ کرتے ہیں۔

build.gradle میں انحصار

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

CrashReporter میں فلیگ چیک

CrashReporter کلاس میں ہم crash-reporting-enabled فلیگ چیک کرتے ہیں۔ اگر فلیگ فعال ہے موجودہ صارف کے لیے، ہم کریش رپورٹس بھیجنا شروع کرتے ہیں۔ جب سرور پر حالت بدلتی ہے تو SDK خود بخود نئی حالت حاصل کر لے گا، لیکن ابتدا کے لیے ایک بار چیک کرنا کافی ہے۔

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

عام منظرنامے اور اینٹی پیٹرن

کامیاب منظرنامے: فراہم کنندہ کی ناکامی پر فوری بندش کے ساتھ ادائیگی کے بہاؤ کا انتظام، میٹرک مانیٹرنگ کے ساتھ UI تبدیلیوں کا بتدریج رول آؤٹ، سیگمنٹس کے مطابق مواد کی ذاتی بنانا۔ LaunchDarkly کے آفیشل بلاگ کے مطابق، ٹیمیں غلطیوں سے بحالی کے وقت کو گھنٹوں سے منٹوں تک کم کرتی ہیں۔

اینٹی پیٹرن: مستقل مشروط منطق کے لیے فلیگ کا استعمال (فلیگ عارضی ہوتے ہیں)، فلیگ کی خصوصیات میں راز محفوظ کرنا، اوورلیپنگ قواعد بنانا۔ سفارش: رول آؤٹ مکمل ہونے کے بعد کوڈ سے فلیگ ہٹا دیں — یہ تکنیکی قرض اور کوڈ بیس کی پیچیدگی کو روکتا ہے۔ ایک اور عام غلطی طویل عرصے تک چلنے والے سوئچز کے لیے فلیگ کا استعمال ہے جو فیچر مستحکم ہونے کے بعد کبھی کوڈ سے نہیں ہٹائے جاتے۔

مناسب فلیگ مینجمنٹ حکمت عملی میں ہر نئے فلیگ کے لیے ہٹانے کا منصوبہ شامل ہوتا ہے۔ LaunchDarkly فراہم کرتا ہے غیر استعمال شدہ فلیگ کا پتہ لگانے کے لیے بلٹ ان ٹولز — ایک فلیگ غیر استعمال شدہ سمجھا جاتا ہے اگر SDK نے 30 دنوں سے زیادہ اس کی قدر چیک نہ کی ہو۔ ایسے فلیگ ڈیش بورڈ میں نشان زد ہوتے ہیں اور کوڈ سے محفوظ طریقے سے ہٹائے جا سکتے ہیں۔

LaunchDarkly سے کب بچنا چاہیے

ایک ٹیم والے چھوٹے پروجیکٹس کے لیے، LaunchDarkly ضرورت سے زیادہ ہو سکتا ہے — کوڈ میں ایک سادہ مشروط یا Firebase Remote Config کافی ہے۔ پلیٹ فارم منتخب کریں جب آپ کو پیچیدہ سیگمنٹیشن، تبدیلیوں کا آڈٹ، A/B تجربات یا ملٹی ٹیم فلیگ مینجمنٹ کی ضرورت ہو۔ اسٹارٹ اپس اور MVP پروجیکٹس کے لیے، LaunchDarkly فلیگ اور MAU کی تعداد پر حد کے ساتھ مفت Starter پلان پیش کرتا ہے۔

موجودہ ٹولز کے ساتھ LaunchDarkly کی مطابقت ایک اہم انتخاب کا معیار ہے۔ پلیٹ فارم انٹیگریٹ ہوتا ہے Jira، Slack، PagerDuty، Datadog اور دیگر خدمات کے ساتھ webhooks اور API کے ذریعے۔ وہ ٹیمیں جو پہلے سے یہ ٹولز استعمال کر رہی ہیں انہیں فلیگ کی حالت میں تبدیلیوں پر نگرانی اور الرٹس کے لیے اضافی انفراسٹرکچر کے بغیر ہموار انٹیگریشن ملتا ہے۔ LaunchDarkly کوڈ کے طور پر فلیگ کے انتظام (Flags as Code) کے لیے Terraform فراہم کنندہ کو بھی سپورٹ کرتا ہے — یہ Git میں فلیگ کنفیگریشن محفوظ کرنے اور لاگو کرنے سے پہلے کوڈ ریویو کرنے کی اجازت دیتا ہے۔

اکثر پوچھے گئے سوالات

LaunchDarkly کی قیمت کتنی ہے؟

LaunchDarkly فلیگ اور MAU کی تعداد پر حد کے ساتھ Freemium پلان پیش کرتا ہے۔ ٹیموں کے لیے تجارتی منصوبے $150 ماہانہ سے شروع ہوتے ہیں، جس میں لامحدود فلیگ، تبدیلیوں کا آڈٹ اور Jira اور Slack کے ساتھ انٹیگریشن شامل ہے۔

LaunchDarkly کون سے موبائل SDK کو سپورٹ کرتا ہے؟

پلیٹ فارم 40 سے زیادہ SDKs کو سپورٹ کرتا ہے، جس میں نیٹیو Android (Kotlin/Java)، iOS (Swift/Objective-C)، React Native اور Flutter شامل ہیں۔ تمام موبائل SDK لوکل سٹوریج میں کیشنگ کے ساتھ Streaming API کے ذریعے کام کرتے ہیں۔

کیا LaunchDarkly کو A/B ٹیسٹنگ کے لیے استعمال کیا جا سکتا ہے؟

جی ہاں، LaunchDarkly کے پاس ملٹی ویریئٹ فلیگ، ٹریفک کی تقسیم اور خودکار شماریاتی اہمیت کے حساب کے ساتھ بلٹ ان تجرباتی نظام ہے۔ Amplitude، Mixpanel اور Google Analytics کے ساتھ انٹیگریشن سپورٹڈ ہے۔

انٹرنیٹ نہ ہونے پر SDK کیسے کام کرتا ہے؟

کنکشن منقطع ہونے پر، SDK لوکل سٹوریج سے کیشڈ فلیگ ویلیوز استعمال کرتا ہے۔ کنکشن بحال ہونے کے بعد، SDK سرور کے ساتھ سنکرونائز ہوتا ہے اور موجودہ فلیگ کی حالتیں لاگو کرتا ہے۔

LaunchDarkly Firebase Remote Config سے کیسے مختلف ہے؟

LaunchDarkly A/B ٹیسٹنگ، ملٹی ویریئٹ فلیگ، جدید سیگمنٹیشن، تبدیلیوں کا آڈٹ اور سرور سائیڈ زبانوں کے لیے SDK فراہم کرتا ہے۔ Firebase Remote Config آسان اور مفت ہے، لیکن یہ ملٹی ویریئٹ تجربات یا تفصیلی آڈٹ کو سپورٹ نہیں کرتا۔

خلاصہ

  • LaunchDarkly موبائل ایپلیکیشنز میں نئی صلاحیتوں کی محفوظ ڈیپلائے کے لیے فیچر فلیگ مینجمنٹ پلیٹ فارم ہے
  • Feature flag صارف سیگمنٹس پر مبنی ٹارگٹنگ قواعد کے ساتھ بولین، ملٹی ویریئٹ اور JSON اقسام کو سپورٹ کرتا ہے
  • SDK Android، iOS، React Native اور Flutter کے لیے SSE کنکشن کے ذریعے ریئل ٹائم میں فلیگ سنکرونائز کرتا ہے
  • بتدریج رول آؤٹ خطرات کم کرتا ہے — ورژن واپس لیے بغیر مسئلہ پائے جانے پر فلیگ فوری طور پر غیر فعال ہو جاتا ہے
  • A/B ٹیسٹنگ خودکار تقسیم اور شماریاتی رپورٹنگ کے ساتھ ملٹی ویریئٹ فلیگ پر بنائی گئی ہے
  • سیگمنٹیشن OS ورژن، علاقہ، ڈیوائس ماڈل اور خصوصیات کے ذریعے درست فعال کرنے کی اجازت دیتی ہے
  • سفارش مشروط منطق کے جمع ہونے سے بچنے کے لیے کوڈ سے استعمال شدہ فلیگ ہٹا دیں

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں