Tinder, नए लोगों से मिलने के लिए दुनिया का सबसे लोकप्रिय ऐप्लिकेशन है. यह ऐप्लिकेशन, लोगों के मिलने और डेटिंग करने के तरीके में बदलाव लाने के लिए जाना जाता है. यह उपयोगकर्ताओं को, दूसरों से जुड़ने और चैट करने के लिए, दाईं ओर स्वाइप करने की सुविधा देता है. Tinder पर हर दिन 2.6 करोड़ से ज़्यादा मैच होते हैं. साल 2012 में लॉन्च होने के बाद से, इस प्लैटफ़ॉर्म पर 20 अरब से ज़्यादा मैच हो चुके हैं.
कंपनी को उपयोगकर्ताओं की मांग के आधार पर, ऐप्लिकेशन को तेज़ी से बड़ा करना था. हालांकि, डेटाबेस को लागू करने का काम शुरुआती दिनों से ही बाकी था. इस वजह से, इसे बढ़ाना ज़्यादा मुश्किल हो गया था.
उन्होंने लाइफ़साइकल की जटिलताओं को कम करने के लिए, व्यू-हैवी आर्किटेक्चर का इस्तेमाल किया. हालांकि, उन्हें यह जानना था कि किसी गतिविधि के लिए कौनसे लाइफ़साइकल इवेंट खास होते हैं. इनमें, टास्क मैनेज करने के लिए एक जैसा फ़्रेमवर्क नहीं था. जैसे, Cursor
ऑब्जेक्ट को डोमेन ऑब्जेक्ट में मार्शेल करना, डेटाबेस माइग्रेशन करना या लगातार क्वेरी करना.
उन्होंने क्या किया
पहली इमेज: Tinder पर किसी फ़ोटोग्राफ़र की फ़ोटो
Tinder ने अपने कोड को अपग्रेड करने के लिए, Android Architecture Components का इस्तेमाल किया. उन्होंने Lifecycle
का इस्तेमाल करके, View
को होस्ट गतिविधि के लाइफ़साइकल पर नज़र रखने की अनुमति दी. साथ ही, उन्होंने LifecycleObserver
का इस्तेमाल करके, डिसेंट्रलाइज़्ड प्लगिन आर्किटेक्चर को आसान बनाया. इसके अलावा, उन्होंने Presenter
, Activity
, और View
ऑब्जेक्ट में ब्लोट को रोकने के लिए भी इसका इस्तेमाल किया. Room परसिस्टेंस लाइब्रेरी ने स्थानीय डेटाबेस को तय करने, मैनेज करने, और क्वेरी करने का एक आसान तरीका उपलब्ध कराया.
Tinder की डेवलपमेंट टीम ने सिर्फ़ दो हफ़्तों में LifecycleObserver
और प्लगिन आर्किटेक्चर को लागू कर दिया. वहीं, इंटरनल Ads SDK के लिए Room को लागू करने में सिर्फ़ दो दिन लगे.
Tinder के हेड ऑफ़ Android, ऐंडी लॉटन कहते हैं, "हमें अब प्लगिन या व्यू में गतिविधि के लाइफ़साइकल को मैनेज करने में ज़्यादा समय नहीं लगाना पड़ता." "Room को बहुत सोच-समझकर डिज़ाइन किया गया है. इससे परसिस्टेंस लेयर को लागू करना आसान हो जाता है. Room का इस्तेमाल करने से, इंटरनल Ads SDK को डेवलप करने में एक हफ़्ते का समय बच गया."
नतीजे
Tinder, Ads SDK के साथ मिले नतीजों से इतना खुश है कि वह अपने पूरे डेटाबेस लेयर को Room पर माइग्रेट कर रहा है. जांच करना आसान था. साथ ही, Room में किसी चीज़ को अनरजिस्टर करने की सुविधा होने की वजह से, मेमोरी लीक की समस्या कम हो गई. Android Architecture Components की मदद से, मेमोरी के इस्तेमाल को भी कम किया जा रहा है.
लॉटन कहते हैं, "Android Architecture Components ने डेवलपर की कई समस्याओं को हल करने का तरीका बताया है. ये समस्याएं, डेवलपर को अलग-अलग लेवल पर आती हैं." "लाइफ़साइकल की जानकारी वाले कॉम्पोनेंट का इस्तेमाल करके, Tinder ने डेवलपर की प्रॉडक्टिविटी, टेस्ट करने की क्षमता, और मॉड्युलैरिटी को बेहतर बनाया है. साथ ही, यह व्यू-फ़र्स्ट आर्किटेक्चर के लिए फ़ायदेमंद है. Room, SQLite को मैनेज करने के लिए अन्य समाधानों की ज़रूरत को खत्म करता है. साथ ही, डेटाबेस मैनेजमेंट और क्वेरी को कॉन्फ़िगरेशन में बदल देता है."
मेट्रिक
LifecycleObserver
/ प्लगिन आर्किटेक्चर के ज़रिए MainActivity
से 500 से ज़्यादा लाइनें हटाई गईं
शुरू करें
Android आर्किटेक्चर कॉम्पोनेंट, Android Jetpack का हिस्सा है. यह सभी डेवलपर के लिए उपलब्ध है. Android आर्किटेक्चर कॉम्पोनेंट का इस्तेमाल शुरू करें.