TikTok ने Jetpack Compose का इस्तेमाल करके, अपने ऐप्लिकेशन के कोड का साइज़ 58% तक कम किया है. साथ ही, नई सुविधाओं के लिए ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाया है
पढ़ने में 2 मिनट लगेंगे
TikTok , दुनिया भर में शॉर्ट वीडियो का प्लैटफ़ॉर्म है. यह अपने बड़े यूज़र बेस और नई सुविधाओं के लिए जाना जाता है. इसकी टीम, अपने उपयोगकर्ताओं के लिए लगातार अपडेट, एक्सपेरिमेंट, और नई सुविधाएं रिलीज़ करती रहती है. TikTok की Android टीम को तकनीकी कर्ज़ को मैनेज करते हुए, डेवलपमेंट की रफ़्तार बनाए रखने में मुश्किल आ रही थी. इसलिए, उसने Jetpack Compose का इस्तेमाल किया.
टीम, प्रॉडक्ट की ज़रूरी शर्तों को तेज़ी से और बेहतर क्वालिटी में पूरा करना चाहती थी. Compose का इस्तेमाल करके, टीम ने कम कोड लिखकर और कॉग्निटिव लोड कम करके, इंजीनियरिंग की क्षमता को बेहतर बनाने की कोशिश की. साथ ही, बेहतर परफ़ॉर्मेंस और स्थिरता हासिल करने की कोशिश की.
डेवलपर की प्रॉडक्टिविटी बढ़ाने के लिए, जटिल यूज़र इंटरफ़ेस (यूआई) को आसान बनाना
TikTok के पेज अक्सर दिखने में जितने आसान होते हैं, उससे कहीं ज़्यादा जटिल होते हैं. इनमें, कई लेयर वाली शर्तों से जुड़ी ज़रूरतें होती हैं. इस जटिलता की वजह से, व्यू के ऐसे क्रम बनते हैं जिन्हें मैनेज करना मुश्किल होता है और जो ऑप्टिमाइज़ नहीं होते. साथ ही, व्यू की नेस्टिंग भी ज़्यादा होती है. इससे, मेज़र पास की संख्या बढ़ने की वजह से, परफ़ॉर्मेंस खराब हो जाती है.
Compose ने इस स्ट्रक्चरल समस्या का सीधा समाधान दिया.
इसके अलावा, Compose की मेज़रमेंट की रणनीति , डबल टैक्सेशन को कम करने में मदद करती है. इससे, मेज़र परफ़ॉर्मेंस को ऑप्टिमाइज़ करना आसान हो जाता है.
डेवलपर की प्रॉडक्टिविटी को बेहतर बनाने के लिए, TikTok की सेंट्रल डिज़ाइन सिस्टम टीम, अलग-अलग ऐप्लिकेशन की सुविधाओं पर काम करने वाली टीमों के लिए कॉम्पोनेंट लाइब्रेरी उपलब्ध कराती है. टीम ने पाया कि Compose में डेवलपमेंट करना आसान है. छोटे-छोटे कंपोज़ेबल का इस्तेमाल करना बहुत असरदार है. वहीं, शर्तों वाली लॉजिक के साथ बड़े यूज़र इंटरफ़ेस (यूआई) ब्लॉक को शामिल करना आसान है और इसमें कम ओवरहेड लगता है.
रणनीतिक माइग्रेशन के ज़रिए आगे बढ़ने का रास्ता बनाना
Jetpack Compose को रणनीतिक तरीके से अपनाकर, TikTok तकनीकी कर्ज़ को मैनेज कर पाया. साथ ही, वह अपने उपयोगकर्ताओं के लिए बेहतर अनुभव बनाने पर भी फ़ोकस कर पाया. Compose में शर्तों वाली लॉजिक को आसानी से मैनेज करने और कंपोज़िशन को आसान बनाने की सुविधा है. इससे, टीम नए या पूरी तरह से फिर से लिखे गए पेजों के लोड होने में लगने वाले समय को 78% तक कम कर पाई. छोटे मामलों में यह सुधार 20–30% था. वहीं, पूरी तरह से फिर से लिखे गए पेजों और नई सुविधाओं के लिए, यह सुधार 70–80% था. टीम, व्यू में बनाई गई उसी सुविधा की तुलना में, अपने कोड का साइज़ 58%तक कम कर पाई, . टीम ने कुछ और सबक भी शेयर किए हैं:
TikTok की टीम की पूरी रणनीति, उपयोगकर्ता के खास सफ़र को धीरे-धीरे माइग्रेट करने की थी. इससे उन्हें माइग्रेट करने, मेज़र किए जा सकने वाले फ़ायदों की पुष्टि करने, और फिर ज़्यादा स्क्रीन पर स्केल करने का मौका मिला. उन्होंने क्यूआर कोड की सुविधा में, Compose का इस्तेमाल करके पूरे स्ट्रक्चर को आसान बनाया और उन्हें सुधार दिखे. इसके बाद, टीम ने लॉगिन और साइन-अप के अनुभवों को भी माइग्रेट किया.
टीम ने कुछ और सबक शेयर किए हैं:
माइग्रेशन के दौरान परफ़ॉर्मेंस की जांच करते समय, TikTok की टीम ने पाया कि एक ViewHolder में मौजूद एलिमेंट को बदलने के लिए, कई छोटे-छोटे ComposeViews का इस्तेमाल करने से, कंपोज़िशन ओवरहेड बढ़ गया. टीम ने पूरे ViewHolder के लिए, एक ही ComposeView का इस्तेमाल करके, माइग्रेशन को बढ़ाकर बेहतर नतीजे हासिल किए.
ViewPager में किसी फ़्रैगमेंट को माइग्रेट करने पर, परफ़ॉर्मेंस पर कोई असर नहीं पड़ा. इसमें, कस्टम हाइट लॉजिक और शर्तों वाली लॉजिक का इस्तेमाल किया जाता है. साथ ही, एक्सपेरिमेंट के आधार पर यूज़र इंटरफ़ेस (यूआई) को छिपाने और दिखाने के लिए भी लॉजिक का इस्तेमाल किया जाता है. इस मामले में, फ़्रैगमेंट को माइग्रेट करने के मुकाबले, ViewPager को कंपोज़ेबल में माइग्रेट करने पर बेहतर परफ़ॉर्मेंस मिली.
जून शेन को यह बात बहुत पसंद है कि Compose "सुविधा के डेवलपमेंट के लिए ज़रूरी कोड की मात्रा को कम करता है, टेस्ट करने की क्षमता को बेहतर बनाता है, और डिलीवरी की प्रोसेस को तेज़ करता है". टीम, Compose को अपनाने की दर को धीरे-धीरे बढ़ाने की योजना बना रही है. इससे, लंबे समय में यह उनका पसंदीदा फ़्रेमवर्क बन जाएगा. Jetpack Compose, डेवलपर के अनुभव और बड़े पैमाने पर प्रोडक्शन मेट्रिक, दोनों को बेहतर बनाने के लिए एक असरदार समाधान साबित हुआ.
Jetpack Compose का इस्तेमाल करना शुरू करना
इस बारे में ज़्यादा जानें कि Jetpack Compose आपकी टीम की कैसे मदद कर सकता है.
-
केस स्टडीज़्यादातर Android ऐप्लिकेशन, Kotlin को अपनी मुख्य भाषा के तौर पर इस्तेमाल कर रहे हैं. इसलिए, एसिंक्रोनस प्रोग्रामिंग के लिए kotlinx.coroutines, डिफ़ॉल्ट स्टैंडर्ड बन गया है. यह लाइब्रेरी, एक साथ कई फ़्लो को मैनेज करने का एक अच्छी तरह से डिज़ाइन किया गया और स्ट्रक्चर्ड तरीका उपलब्ध कराती है. यह Kotlin के लिए नेटिव है.
Jonathan Starup, Andrei Shikov • पढ़ने में 7 मिनट लगेंगे -
केस स्टडीपरफ़ॉर्मेंस में होने वाली गड़बड़ियों को ठीक करना बहुत मुश्किल होता है. इसलिए, ये गड़बड़ियां मोबाइल डेवलपर के लिए एक बड़ी चुनौती बन जाती हैं.
Alice Yuan, Arti Arutiunov, Nikita Ogorodnikov • पढ़ने में 4 मिनट लगेंगे -
केस स्टडीहाल ही में, FotMob को Wear OS पर इंस्टॉल करने वाले लोगों की संख्या में एक दिन में सबसे ज़्यादा बढ़ोतरी मिली. यह बढ़ोतरी, पिछले पांच सालों में सबसे ज़्यादा थी. यह बढ़ोतरी, रोज़ाना के औसत से दो से तीन गुना ज़्यादा थी. इसका राज़ क्या है? क्रॉस-डिवाइस इंस्टॉलेशन का एक आसान फ़्लो. इससे, उपयोगकर्ता सीधे अपने फ़ोन से Wear OS ऐप्लिकेशन ढूंढ पाते हैं.
Garan Jenkin • पढ़ने में 3 मिनट लगेंगे
Android डेवलपमेंट के बारे में नई जानकारी हर हफ़्ते अपने इनबॉक्स में पाएं.