LaunchDarkly एक फीचर फ्लैग प्रबंधन प्लेटफॉर्म है जो मोबाइल ऐप डेवलपर्स को बिना पुनः डिप्लॉय किए सुविधाओं को सक्षम और अक्षम करने की अनुमति देता है। LaunchDarkly, 2024 के अनुसार, 4,000 से अधिक कंपनियां सुरक्षित फीचर लॉन्च, A/B परीक्षण और वास्तविक समय में क्रमिक रोलआउट के लिए सेवा का उपयोग करती हैं।
मुख्य बिंदु
LaunchDarkly एक फीचर फ्लैग प्रबंधन प्लेटफॉर्म है जिसकी स्थापना 2014 में Catamorphic Corp. द्वारा की गई थी। सेवा का मुख्य उद्देश्य डेवलपमेंट टीमों को नया कोड डिप्लॉय किए बिना वास्तविक समय में एप्लिकेशन सुविधाओं को सक्षम, अक्षम और कॉन्फ़िगर करने की क्षमता देना है।
पारंपरिक दृष्टिकोण के विपरीत, जहां नई कार्यक्षमता जारी करने के लिए ऐप स्टोर में संस्करण प्रकाशित करना आवश्यक है, LaunchDarkly दूरस्थ रूप से व्यवहार बदलने की अनुमति देता है। मोबाइल डेवलपमेंट के लिए, यह विशेष रूप से महत्वपूर्ण है — App Store और Google Play समीक्षा में कुछ घंटों से लेकर एक दिन तक का समय लगता है, जबकि फ्लैग को सेकंडों में टॉगल किया जा सकता है।
LaunchDarkly आर्किटेक्चर तीन घटकों पर बना है: फ्लैग सर्वर, क्लाइंट SDK और डैशबोर्ड। सर्वर फ्लैग कॉन्फ़िगरेशन, टार्गेटिंग नियम और उपयोगकर्ता सेगमेंट संग्रहीत करता है। SDK वास्तविक समय में अपडेट प्राप्त करने के लिए सर्वर के साथ स्थायी SSE कनेक्शन बनाए रखता है।
जब डैशबोर्ड में फ्लैग बदला जाता है, तो सर्वर सभी कनेक्टेड SDK को अपडेट भेजता है। विलंब 200–500 मिलीसेकंड है। कनेक्शन खोने पर, SDK चैनल बहाल होने तक अंतिम कैश्ड स्थिति का उपयोग करता है। यह सुनिश्चित करता है कि एप्लिकेशन डिस्कनेक्शन के समय उपलब्ध नवीनतम सेटिंग्स के साथ काम करना जारी रखे।
LaunchDarkly डैशबोर्ड फ्लैग बनाने और प्रबंधित करने के लिए एक विज़ुअल इंटरफ़ेस प्रदान करता है। डैशबोर्ड दिखाता है प्रत्येक फ्लैग की वर्तमान स्थिति, कॉन्फ़िगरेशन किसने और कब बदला इसका ऑडिट इतिहास, साथ ही उपयोग मीट्रिक्स। प्रत्येक वातावरण के लिए अलग-अलग नियम कॉन्फ़िगर किए जा सकते हैं — एक फ्लैग staging पर 100% और प्रोडक्शन पर 5% सक्षम हो सकता है।
Feature flag नियमों और लक्ष्यों वाला एक नामित स्विच है। फ्लैग बूलियन, मल्टीवेरिएट और JSON प्रकार के हो सकते हैं। Rules सक्रियण शर्तों को परिभाषित करते हैं: उदाहरण के लिए, “जर्मनी के 10% Android 12 उपयोगकर्ताओं के लिए सक्षम करें।” Segments उपयोगकर्ताओं को OS संस्करण, क्षेत्र, डिवाइस मॉडल और कस्टम विशेषताओं द्वारा समूहित करते हैं।
प्रत्येक फ्लैग के वातावरण होते हैं: डेवलपमेंट, staging और प्रोडक्शन। यह वास्तविक उपयोगकर्ताओं के लिए सक्षम करने से पहले एक नई सुविधा को पृथक वातावरण में परीक्षण करने की अनुमति देता है। वातावरण नियम स्वतंत्र रूप से कॉन्फ़िगर किए जाते हैं — एक फ्लैग staging पर सक्षम और प्रोडक्शन पर अक्षम हो सकता है।
LaunchDarkly Android, iOS, React Native और Flutter के लिए मूल SDK प्रदान करता है। प्रत्येक SDK को न्यूनतम सेटअप की आवश्यकता होती है: एक SDK कुंजी और उपयोगकर्ता पहचानकर्ता। लाइब्रेरी स्वचालित रूप से कनेक्शन, कैशिंग और त्रुटि प्रबंधन को संभालती है।
कनेक्ट करने के लिए, Application.onCreate में LDClient इंस्टेंस बनाएं। क्लाइंट मोबाइल कुंजी और उपयोगकर्ता संदर्भ के साथ कॉन्फ़िगरेशन स्वीकार करता है। आरंभीकरण के बाद, एप्लिकेशन 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)
}
}
आरंभीकरण के बाद, फ्लैग जांच एक विधि से की जाती है। BoolVariation फ्लैग नियमों के अनुसार मान लौटाता है। डिफ़ॉल्ट मान का उपयोग तब किया जाता है जब SDK कॉन्फ़िगरेशन प्राप्त नहीं कर पाता। boolVariationDetail विधि अतिरिक्त रूप से वह कारण लौटाती है जिसके लिए फ्लैग ने वह मान लिया।
val ldClient = LDClient.get()
val showNewFeature = ldClient.boolVariation(
"new-checkout-flow",
false
)
if (showNewFeature) {
showNewCheckoutScreen()
} else {
showLegacyCheckoutScreen()
}
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 का भी समर्थन करता है।
पूर्ण चक्र देखें: निर्भरता जोड़ना, आरंभीकरण और क्रैश टेलीमेट्री के लिए फ्लैग जांच। यह सुविधा केवल परीक्षकों के लिए सक्रिय होनी चाहिए, वास्तविक उपयोगकर्ताओं के लिए नहीं। 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) ऑफ़लाइन संचालन के लिए बैकग्राउंड सिंक्रोनाइज़ेशन और स्थानीय स्टोरेज में कैशिंग का समर्थन करते हैं।
// app/build.gradle
dependencies {
implementation "com.launchdarkly:launchdarkly-android-sdk:5.2.0"
}
CrashReporter क्लास में हम crash-reporting-enabled फ्लैग जांचते हैं। यदि फ्लैग सक्षम है वर्तमान उपयोगकर्ता के लिए, हम क्रैश रिपोर्ट भेजना शुरू करते हैं। जब सर्वर पर स्थिति बदलती है तो SDK स्वचालित रूप से नई स्थिति प्राप्त करेगा, लेकिन आरंभीकरण के लिए एक बार की जांच पर्याप्त है।
class CrashReporter {
fun init() {
val client = LDClient.get()
if (client.boolVariation("crash-reporting-enabled", false)) {
Crashlytics.start()
}
}
}
सफल परिदृश्य: प्रदाता विफलताओं पर तत्काल बंद करने के साथ भुगतान प्रवाह प्रबंधन, मीट्रिक निगरानी के साथ UI परिवर्तनों का क्रमिक रोलआउट, सेगमेंट द्वारा सामग्री वैयक्तिकरण। आधिकारिक LaunchDarkly ब्लॉग के अनुसार, टीमें त्रुटि पुनर्प्राप्ति समय को घंटों से मिनटों तक कम करती हैं।
एंटी-पैटर्न: स्थायी सशर्त तर्क के लिए फ्लैग का उपयोग (फ्लैग अस्थायी होते हैं), फ्लैग विशेषताओं में रहस्य संग्रहीत करना, ओवरलैपिंग नियम बनाना। अनुशंसा: रोलआउट पूरा होने के बाद कोड से फ्लैग हटाएं — यह तकनीकी ऋण और कोडबेस जटिलता को रोकता है। एक और सामान्य गलती लंबे समय तक चलने वाले टॉगल के लिए फ्लैग का उपयोग करना है जो सुविधा स्थिर होने के बाद कभी नहीं हटाए जाते।
उचित फ्लैग प्रबंधन रणनीति में प्रत्येक नए फ्लैग के लिए हटाने की योजना शामिल है। LaunchDarkly प्रदान करता है अप्रयुक्त फ्लैग का पता लगाने के लिए अंतर्निहित उपकरण — एक फ्लैग अप्रयुक्त माना जाता है यदि SDK ने 30 दिनों से अधिक समय तक इसका मान जांचा नहीं है। ऐसे फ्लैग डैशबोर्ड में चिह्नित किए जाते हैं और कोड से सुरक्षित रूप से हटाए जा सकते हैं।
एक टीम वाली छोटी परियोजनाओं के लिए, LaunchDarkly अत्यधिक हो सकता है — कोड में एक साधारण कंडीशनल या Firebase Remote Config पर्याप्त है। प्लेटफ़ॉर्म चुनें जब आपको जटिल सेग्मेंटेशन, परिवर्तन ऑडिटिंग, A/B प्रयोग या मल्टी-टीम फ्लैग प्रबंधन की आवश्यकता हो। स्टार्टअप और MVP परियोजनाओं के लिए, LaunchDarkly फ्लैग और MAU की संख्या पर सीमा के साथ मुफ्त Starter योजना प्रदान करता है।
मौजूदा उपकरणों के साथ LaunchDarkly की अनुकूलता एक महत्वपूर्ण चयन मानदंड है। प्लेटफ़ॉर्म एकीकृत होता है Jira, Slack, PagerDuty, Datadog और अन्य सेवाओं के साथ webhooks और API के माध्यम से। पहले से इन उपकरणों का उपयोग करने वाली टीमों को फ्लैग स्थिति परिवर्तनों पर निगरानी और अलर्ट के लिए अतिरिक्त बुनियादी ढांचे के बिना सहज एकीकरण मिलता है। LaunchDarkly कोड के रूप में फ्लैग प्रबंधित करने के लिए Terraform प्रदाता का भी समर्थन करता है (Flags as Code) — यह Git में फ्लैग कॉन्फ़िगरेशन संग्रहीत करने और लागू करने से पहले कोड समीक्षा करने की अनुमति देता है।
अक्सर पूछे जाने वाले प्रश्न
LaunchDarkly फ्लैग और MAU की संख्या पर सीमा के साथ Freemium योजना प्रदान करता है। टीमों के लिए वाणिज्यिक योजनाएं $150 प्रति माह से शुरू होती हैं, जिसमें असीमित फ्लैग, परिवर्तन ऑडिटिंग और Jira और Slack के साथ एकीकरण शामिल है।
प्लेटफ़ॉर्म 40 से अधिक SDK का समर्थन करता है, जिसमें मूल Android (Kotlin/Java), iOS (Swift/Objective-C), React Native और Flutter शामिल हैं। सभी मोबाइल SDK स्थानीय स्टोरेज में कैशिंग के साथ Streaming API के माध्यम से काम करते हैं।
हाँ, LaunchDarkly के पास मल्टीवेरिएट फ्लैग, ट्रैफ़िक वितरण और स्वचालित सांख्यिकीय महत्व गणना के साथ अंतर्निहित प्रयोग प्रणाली है। Amplitude, Mixpanel और Google Analytics के साथ एकीकरण समर्थित है।
कनेक्शन खोने पर, SDK स्थानीय स्टोरेज से कैश्ड फ्लैग मान का उपयोग करता है। कनेक्शन बहाल होने के बाद, SDK सर्वर के साथ सिंक्रोनाइज़ होता है और वर्तमान फ्लैग स्थितियों को लागू करता है।
LaunchDarkly A/B परीक्षण, मल्टीवेरिएट फ्लैग, उन्नत सेग्मेंटेशन, परिवर्तन ऑडिटिंग और सर्वर-साइड भाषाओं के लिए SDK प्रदान करता है। Firebase Remote Config सरल और मुफ्त है, लेकिन मल्टीवेरिएट प्रयोग या विस्तृत ऑडिटिंग का समर्थन नहीं करता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें