Google Home ऐप्लिकेशन की मदद से, Google Home, Google Nest, और Chromecast डिवाइसों को सेट अप, मैनेज, और कंट्रोल किया जा सकता है. साथ ही, होम नेटवर्क से जुड़े हज़ारों प्रॉडक्ट, जैसे कि लाइटें, कैमरे, थर्मोस्टैट वगैरह को भी कंट्रोल किया जा सकता है.
Google Home ऐप्लिकेशन की इंजीनियरिंग टीम, Kotlin और Android Jetpack लाइब्रेरी का इस्तेमाल करती है. इससे इंजीनियरिंग टीम की परफ़ॉर्मेंस बेहतर होती है और डेवलपर को काम करने में आसानी होती है.
उन्होंने क्या किया
Google Home की टीम ने अपने कोडबेस में Kotlin को शामिल करने का फ़ैसला किया, ताकि प्रोग्रामिंग को ज़्यादा असरदार बनाया जा सके. साथ ही, var/val, स्मार्ट कास्ट, कोरूटीन वगैरह जैसी नई लैंग्वेज की सुविधाओं का इस्तेमाल किया जा सके. जून 2020 तक, करीब 30% कोडबेस Kotlin में लिखा गया था. साथ ही, सभी नई सुविधाओं के लिए Kotlin डेवलपमेंट को बढ़ावा दिया गया था.
टीम ने डेवलपर की स्पीड को बेहतर बनाने, बॉयलरप्लेट कोड के रखरखाव की ज़रूरत को कम करने, और ज़रूरी कोड की मात्रा को कम करने के लिए, Jetpack लाइब्रेरी का इस्तेमाल किया. Jetpack लाइब्रेरी की मदद से, उनके कोड को ज़्यादा आसानी से टेस्ट किया जा सका. ऐसा इसलिए, क्योंकि इनमें फ़ंक्शनल बाउंड्री और एपीआई ज़्यादा साफ़ तौर पर दिए गए हैं.
नतीजे
"Kotlin की मदद से, कम कोड लिखकर ज़्यादा काम किया जा सकता है. इससे आपको ‘स्पीड’ बढ़ाने में मदद मिलती है.” - जेरेड बरोज़, Google Home के सॉफ़्टवेयर इंजीनियर
Kotlin पर स्विच करने से, ज़रूरी कोड की मात्रा में कमी आई है. इसकी तुलना मौजूदा Java कोड से की गई है. इसका एक उदाहरण, डेटा क्लास और Parcelize प्लगिन का इस्तेमाल है: Java में हाथ से लिखी गई 126 लाइनों की क्लास को अब Kotlin में सिर्फ़ 23 लाइनों में दिखाया जा सकता है. इससे 80% की कमी आई है. इसके अलावा, समानता और पार्सल करने के तरीकों को अपने-आप जनरेट किया जा सकता है और अपडेट रखा जा सकता है. Kotlin में उपलब्ध फ़ंक्शनल तरीकों का इस्तेमाल करके, कई नेस्टेड लूप और फ़िल्टर करने की जांचों को भी आसान बनाया गया.
Kotlin में, नल वैल्यू को भाषा का हिस्सा बनाया जा सकता है. इसलिए, मुश्किल स्थितियों से बचा जा सकता है. जैसे, Java में नल वैल्यू के एनोटेशन का गलत तरीके से इस्तेमाल करने पर, बग का पता नहीं चल पाता. टीम ने Kotlin का इस्तेमाल करके नई सुविधाएं डेवलप करना शुरू किया. इसके बाद, उन्हें NullPointerExceptions में 33% की कमी देखने को मिली. Google Play Console पर, क्रैश होने की सबसे आम वजह यही है. इसलिए, इस तरह के क्रैश कम होने से, लोगों को बेहतर अनुभव मिला.
Google Home जैसे बड़े और मैच्योर ऐप्लिकेशन में, Jetpack लाइब्रेरी को धीरे-धीरे जोड़ा जा सकता है. इस ऐप्लिकेशन में 10 लाख से ज़्यादा लाइनों का कोड है. इन सुविधाओं को शामिल करने से, टीम को अपनी ज़रूरत के हिसाब से बनाए गए समाधानों को एक साथ लाने और उन्हें बदलने में मदद मिली. कई बार, ऐसा सिर्फ़ एक लाइब्रेरी की मदद से भी किया जा सका. Jetpack लाइब्रेरी की मदद से, इंजीनियर सबसे सही तरीकों को अपना सकते हैं. साथ ही, कम शब्दों में ज़्यादा जानकारी दे सकते हैं. उदाहरण के लिए, Room या ConstraintLayout का इस्तेमाल करना. इससे कोड को समझने में आसानी होती है. टीम, Jetpack की कई नई लाइब्रेरी को ‘ज़रूरी’ मानती है. इनमें ViewModel और LiveData शामिल हैं. इन दोनों का इस्तेमाल, Google Home के कोडबेस में बड़े पैमाने पर किया जाता है.
Google Home ऐप्लिकेशन की टीम को, Kotlin कोरुटीन के साथ Jetpack KTX इंटिग्रेशन बहुत मददगार लगे. टीम अब ViewModel जैसे लाइफ़साइकल के बारे में जानने वाले कॉम्पोनेंट के साथ कोरूटीन को जोड़कर, एसिंक्रोनस प्रोग्रामिंग से जुड़ी मुश्किल गड़बड़ियों से बच सकती है.
Java, Oracle और/या इससे जुड़ी हुई कंपनियों का रजिस्टर किया हुआ ट्रेडमार्क है.
शुरू करें
Kotlin में Android ऐप्लिकेशन लिखने और Android Jetpack लाइब्रेरी इस्तेमाल करने के बारे में ज़्यादा जानें.