Duolingo ने Android पर MVVM और Jetpack लाइब्रेरी के साथ रिफ़ैक्टर किया

Duolingo, दुनिया का सबसे लोकप्रिय भाषा सीखने वाला ऐप्लिकेशन है. इसकी वजह यह है कि इसने भाषा सीखने को आसान और मज़ेदार बना दिया है. पहले, लोगों को भाषा सीखना मुश्किल लगता था. भाषा से जुड़े इस बेहतरीन अनुभव के लिए, नई सुविधाओं और एक्सपेरिमेंट की लगातार ज़रूरत होती है. साथ ही, एक ऐसे ऐप्लिकेशन की ज़रूरत होती है जो इन सभी सुविधाओं को आसानी से उपलब्ध करा सके. Duolingo के लिए, दुनिया के किसी भी हिस्से में मौजूद डिवाइस पर काम न करने वाला ऐप्लिकेशन, सीखने वाले व्यक्ति को हतोत्साहित कर सकता है. इससे उन्हें ऐप्लिकेशन को बेहतर बनाने में मदद मिलती है. खास तौर पर, Android डिवाइसों पर. इन डिवाइसों का इस्तेमाल 60% छात्र-छात्राएं करती हैं. इनमें कंपनी के सीईओ भी शामिल हैं, जो एंट्री-लेवल के फ़ोन से ऐप्लिकेशन पर नज़र रखते हैं. इसलिए, जब Duolingo की Android डेवलपमेंट टीम ने “ऐप्लिकेशन काम नहीं कर रहा” गड़बड़ियों और ड्रॉप किए गए फ़्रेम की संख्या में बढ़ोतरी देखी, तो उन्होंने तुरंत कार्रवाई की. उन्हें हाथ से लिखी गई शिकायतें भी मिली थीं.

उन्हें जल्द ही ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी समस्याओं की वजह का पता चल गया. मौजूदा सॉफ़्टवेयर आर्किटेक्चर, उनकी टीम की ग्रोथ के हिसाब से ठीक से काम नहीं कर रहा था. ज़रूरी अपडेट की वजह से, ऐप्लिकेशन की परफ़ॉर्मेंस में गिरावट आ रही थी. डेवलपर, गड़बड़ियों को ठीक करने में ज़्यादा समय लगा रहे थे. साथ ही, रेवेन्यू जनरेट करने वाली नई सुविधाओं को लॉन्च करने में कम समय लगा रहे थे. उनका पुराना सॉफ़्टवेयर आर्किटेक्चर, अब उनके लिए एक बड़ी समस्या बन रहा था. इससे उनकी टीम की काम करने की रफ़्तार और सबसे अहम बात, उपयोगकर्ताओं के अनुभव पर बुरा असर पड़ रहा था. उन्हें अपना कोडबेस नए सिरे से बनाना पड़ा.

उन्होंने यह कैसे किया

शुरुआत में, टीम में मतभेद थे. क्या अब यह उनकी एकमात्र प्राथमिकता होनी चाहिए? एक ग्रुप को लगा कि नई सुविधाएं लॉन्च करना और रेवेन्यू बढ़ाना ज़्यादा ज़रूरी है. वहीं, दूसरे ग्रुप को लगा कि Android को रीबूट करने पर ध्यान देना ज़्यादा ज़रूरी है. आखिरकार, वे इस नतीजे पर पहुंचे कि रिग्रेशन से निपटने के लिए ज़्यादा मेहनत करने से, उनके रोडमैप में पूरी तरह से बदलाव हो सकता है. उन्हें पूरी तरह से शामिल होना पड़ा.

टीम ने एक ऐसे समाधान को चुना जो लगातार लोकप्रिय हो रहा है. उन्होंने अपने ऐप्लिकेशन को Model-View-ViewModel का इस्तेमाल करके फिर से लिखने का फ़ैसला किया. यह एक ऐसा सॉफ़्टवेयर पैटर्न है जिसे Google सपोर्ट करता है. इससे डेवलपर, ऐप्लिकेशन के आर्किटेक्चर को बेहतर बना सकते हैं. इसके लिए, वे अलग-अलग कॉम्पोनेंट को अलग-अलग फ़ोल्डर में रखते हैं. MVVM की मदद से, वे ग्राफ़िकल यूज़र इंटरफ़ेस (व्यू) को बिज़नेस लॉजिक (मॉडल) से अलग कर सकते हैं. इससे वे साफ़ तौर पर तय किए गए और सहमति वाले पैटर्न बना सकते हैं. इससे उन्हें नई सुविधाओं के साथ अपने तरीके को अलाइन करने और नए डेवलपर को शामिल करने में आसानी होगी.

हर सुविधा को अलग-अलग मॉड्यूल में बांटने से, टीम को तुरंत काम शुरू करने में मदद मिली. ऐसा इसलिए, क्योंकि टीम हर सुविधा पर काम करने के लिए छोटे-छोटे ग्रुप असाइन कर सकती थी. इससे काम तेज़ी से पूरा हुआ और गलतियां भी कम हुईं.

उन्होंने इस नए आर्किटेक्चर को Android के Jetpack की लाइब्रेरी के साथ लागू किया है. इनमें Dagger और Hilt शामिल हैं. इससे उन्हें ऐसा कोड लिखने में मदद मिलती है जो Android के सभी वर्शन और डिवाइसों पर काम करता है. इन दो सुविधाओं को जोड़ने से, उन्हें बेहतर तरीके से काम करने वाली सुविधाएं बनाने और Android के बिल्ट-इन मॉड्यूल का ज़्यादा असरदार तरीके से इस्तेमाल करने में मदद मिली.

नतीजे

परफ़ॉर्मेंस में हुए इन सुधारों से, Android और खास तौर पर कम सुविधाओं वाले डिवाइसों पर, सीखने वालों का अनुभव बेहतर हुआ. इससे, फ़्लैगशिप डिवाइसों पर ऐप्लिकेशन ज़्यादा तेज़ी से काम करने लगा और ऐनिमेशन बिना रुके चलने लगे. हर रोज़ के “ऐप्लिकेशन काम नहीं कर रहा” या एएनआर रेट में 41% की गिरावट आई. ऐप्लिकेशन के टारगेट फ़्रेम रेट से कम फ़्रेम रेट पर चलने का समय 28% कम हो गया. सबसे अहम बात यह है कि उनके उपयोगकर्ताओं को मुख्य स्क्रीन पर स्क्रोल करते समय, 40% ज़्यादा तेज़ी से कॉन्टेंट लोड होने का अनुभव मिला.

हाथों में नोट पकड़े हुए व्यक्ति की इमेज. इसमें दिखाया गया है कि एएनआर में 41% की कमी आई है, फ़्रेम रेट में 28% का सुधार हुआ है, और परफ़ॉर्मेंस 40% बेहतर हुई है.


इस पूरे बदलाव में आठ हफ़्ते लगे. इससे Duolingo का इस्तेमाल करने वाले सभी लोगों के लिए, ऐप्लिकेशन ज़्यादा दिलचस्प और मज़ेदार बन गया. पिछले छह महीनों में, टीम ने परफ़ॉर्मेंस में कोई खास गिरावट रिकॉर्ड नहीं की है. इससे टीम को रेवेन्यू जनरेट करने वाली सुविधाओं को शिप करने पर फिर से फ़ोकस करने का मौका मिला है. टीम ने क्वालिटी पर ध्यान दिया और इसका फ़ायदा मिला.

Duolingo ने अपने मिशन को पूरा करने के लिए लगातार काम किया. इस वजह से, यह भाषा सीखने के लिए दुनिया का सबसे लोकप्रिय ऐप्लिकेशन बन गया. ऐप्लिकेशन को बेहतर बनाने के लिए, उनकी प्रतिबद्धता ने उन्हें इस मुकाम पर पहुंचाया है. उन्होंने सुलभता से समझौता किए बिना, शिक्षा के क्षेत्र में नए-नए प्रयोग किए.

शुरू करें

अगर आपको यह जानना है कि Duolingo ने Jetpack की लाइब्रेरी को कैसे इंटिग्रेट किया और Model-View-ViewModel ने उनके ऐप्लिकेशन को कैसे बेहतर बनाया, तो डेवलपर के लिए हमारी तकनीकी केस स्टडी पढ़ें.