JioSaavn की स्थापना 2007 में हुई थी. यह संगीत और पॉडकास्ट के लिए, ऑडियो स्ट्रीमिंग की एक प्रमुख सेवा है. इनके पास 900 से ज़्यादा लेबल पार्टनरशिप हैं. साथ ही, ये 16 भाषाओं में 8 करोड़ से ज़्यादा ट्रैक स्ट्रीम करते हैं. JioSaavn ऐप्लिकेशन, भारत की छह क्षेत्रीय भाषाओं में भी उपलब्ध है.
JioSaavn के पास ऐसा टेक्नोलॉजी स्टैक है जो हर महीने 10 करोड़ से ज़्यादा सक्रिय उपयोगकर्ताओं (एमएयू) को सपोर्ट करता है. इसलिए, यह बड़े पैमाने पर और तेज़ी से काम करता है. इस ऑडियंस के पास आम तौर पर, कम संसाधनों वाले Android फ़ोन होते हैं. इसलिए, JioSaavn टीम के लिए यह ज़रूरी है कि वह इस ऑडियंस को बेहतर उपयोगकर्ता अनुभव दे.
चुनौती
इंजीनियरिंग के नज़रिए से, कम और मध्यम रेंज वाले मोबाइल डिवाइसों जैसे सीमित संसाधनों वाले एनवायरमेंट में ऑप्टिमाइज़ करना, चुनौतीपूर्ण और दिलचस्प दोनों हो सकता है. JioSaavn को यह चुनौती मिली थी कि वह अपने मुख्य टारगेट ऑडियंस के लिए उपयोगकर्ता अनुभव को बेहतर बनाए. यह ऑडियंस, कम से लेकर सामान्य कीमत वाले मोबाइल डिवाइसों का इस्तेमाल करती है और मुख्य रूप से भारत के दूसरे और तीसरे टीयर के शहरों में रहती है.
फ़नल का विश्लेषण करने पर यह पता चला कि ऐसे उपयोगकर्ताओं की संख्या काफ़ी ज़्यादा थी जो ऐप्लिकेशन लॉन्च करते थे, लेकिन कोई गाना नहीं सुनते थे. टीम ने पाया कि इसकी वजह ऐप्लिकेशन स्टार्टअप समय है. इसलिए, ऐप्लिकेशन के शुरू होने में लगने वाले समय को कम करने से, ऐप्लिकेशन पर पॉडकास्ट सुनने वालों की संख्या में बढ़ोतरी हुई.
उन्होंने यह कैसे किया
JioSaavn ने इस समस्या का विश्लेषण करने और इसका स्थायी समाधान ढूंढने के लिए, Perfetto और dumpsys जैसे टूल के साथ-साथ, पूरी तरह से विश्लेषण करने की सुविधा का इस्तेमाल किया. टीम ने इस चुनौती को दो सिद्धांतों के आधार पर पूरा किया - काम को एक साथ करना और आलसी होना.
Google के विश्लेषण की मदद से, टीम ने इन कामों को प्राथमिकता दी -
- ऐप्लिकेशन के फ़्लो का अध्ययन करने, समस्याओं का विश्लेषण करने, और ऐप्लिकेशन के शुरू होने में लगने वाले समय में हुए सुधार की पुष्टि करने के लिए, systrace और perfetto का इस्तेमाल किया गया.
- देर से शुरू होने वाली प्रोसेस: ऐसे फ़्रैगमेंट/इंस्टेंस/क्लास की पहचान की गई है जिन्हें होम पेज दिखने तक शुरू नहीं किया जा सकता -
- विज्ञापन
- म्यूज़िक सेवा (फ़ोरग्राउंड सेवा) और प्लेयर के संसाधन (जैसे, Exoplayer, प्लेयर की कैश मेमोरी में सेव की गई कतार वगैरह)
- लॉन्च के समय प्लेयर फ़्रैगमेंट को छोटा किया जाता है.
- मांग पर शुरू होने की सुविधा: जब लाइब्रेरी की ज़रूरत हो, तब अलग-अलग लाइब्रेरी शुरू की जा सकती हैं. उदाहरण के लिए, Facebook lib.
- viewStubs: View Inflation और संसाधन लोडिंग बहुत ज़्यादा थी. टीम ने viewStubs का इस्तेमाल करके, अपने लेआउट को फ़्लैट किया और इमेज को webP में बदल दिया.
- वर्कर थ्रेड: कुछ ऐसे टास्क जिन्हें यूज़र इंटरफ़ेस (यूआई) थ्रेड की ज़रूरत नहीं थी उन्हें बैकग्राउंड थ्रेड में ले जाया गया, ताकि यूज़र इंटरफ़ेस (यूआई) थ्रेड को खाली किया जा सके.
- कैश मेमोरी में सेव किए गए डेटा को अलग-अलग हिस्सों में बांटना - किसी फ़ाइल से कैश मेमोरी में सेव किए गए बहुत बड़े डेटा को पढ़ने और पार्स करने में काफ़ी समय लगता है. टीम ने इसे गंभीर (होम पेज दिखाने के लिए ज़रूरी) और सामान्य डेटा में बांट दिया.
- Async LayoutInflater: होम पेज के recyclerview के लिए ज़रूरी कुछ व्यू, Async LayoutInflater का इस्तेमाल करके पहले से ही इनफ़्लेट किए गए थे.
इस्तेमाल किए गए टूल - Perfetto, Systrace, Google Play vitals, Android Studio Profilers, Firebase Performance SDK
नतीजे
JioSaavn की टीम ने ऐप्लिकेशन की स्थिरता बनाए रखने के लिए, ऐप्लिकेशन के कई वर्शन में ये बदलाव किए हैं. उन्हें ये नतीजे मिले -
- सभी डिवाइसों पर ऐप्लिकेशन को चालू होने में 30% कम समय लगता है. साथ ही, कम से लेकर सामान्य सुविधाओं वाले डिवाइसों पर 35 से 40% कम समय लगता है.
- होम स्क्रीन व्यूअर/ डीएयू में 5% की बढ़ोतरी हुई. इससे बाउंस रेट में कमी आई.
इस ऑप्टिमाइज़ेशन की वजह से, पूरी टीम एक साथ काम कर पाई. टीम को बदलावों के बारे में पूरी जानकारी दी गई, ताकि वे आसानी से काम कर सकें. साथ ही, उन्हें ऐप्लिकेशन की परफ़ॉर्मेंस पर फ़ोकस करने के लिए प्रेरित किया गया.
“JioSaavn का मकसद, भारत के अलग-अलग राज्यों
और शहरों से आने वाले उपयोगकर्ताओं को बेहतर अनुभव देना है. साथ ही, यह भी ध्यान रखना है कि सभी लोग इसे आसानी से खरीद सकें. इसलिए, हम लगातार इस चुनौती पर काम करते हैं कि हम उनके इलाके में मोबाइल कनेक्टिविटी के बुनियादी ढांचे से आगे बढ़ें और उपयोगकर्ताओं के डिवाइसों की क्षमताओं के हिसाब से, उनके अनुभव को ऑप्टिमाइज़ करें. Google के डेवलपर संबंधों से जुड़े दिशा-निर्देशों की वजह से, हम इस दिशा में एक अहम कदम उठा पाए.”– JioSaavn की प्रॉडक्ट टीम