मांग पर उपलब्ध मॉड्यूल के तौर पर काम करने वाली सुविधाएं वे होती हैं जिनकी ज़रूरत, ऐप्लिकेशन इंस्टॉल करते समय आपके ज़्यादातर उपयोगकर्ताओं को नहीं होती. यहां ऐप्लिकेशन की कुछ ऐसी सुविधाओं के उदाहरण दिए गए हैं जिनके लिए, मांग पर उपलब्ध मॉड्यूल सही रहेंगे:
- किसी ऐसे ऐप्लिकेशन में वीडियो में बदलाव करना और उसे अपलोड करना जहां ज़्यादातर लोग सिर्फ़ वीडियो देखते हैं
- किसी ऐसे ऐप्लिकेशन में रेसिपी जोड़ना जहां ज़्यादातर उपयोगकर्ता सिर्फ़ ब्राउज़ करते हैं और दूसरों की रेसिपी फ़ॉलो करते हैं
- मदद और सहायता की सुविधा, जब ज़्यादातर उपयोगकर्ता मदद नहीं मांगते या ऐप्लिकेशन में मदद नहीं मांगते
- कम इस्तेमाल होने वाली सुविधाओं के लिए बड़ी लाइब्रेरी. जैसे, गड़बड़ी की पूरी जानकारी कैप्चर करना और रिपोर्ट करना
- पेमेंट या चेकआउट की खास सुविधाएं
- बहुत हाई रिज़ॉल्यूशन वाले मीडिया अनुभव या वीआर/एआर की सुविधाएं
आम तौर पर, जब ये मॉड्यूल छोटे होते हैं (10 एमबी से कम), तो उपयोगकर्ता इन्हें बहुत तेज़ी से डाउनलोड करके इस्तेमाल कर सकते हैं. हालांकि, इसके लिए ज़रूरी है कि नेटवर्क या अन्य गड़बड़ियां न हों. इसका मतलब है कि आम तौर पर, उपयोगकर्ता को वैसा ही अनुभव मिलता है जैसा ऐप्लिकेशन इंस्टॉल करते समय मॉड्यूल मौजूद होने पर मिलता.
इस पेज पर, सबसे सही तरीके बताए गए हैं. इनकी मदद से, ये काम किए जा सकते हैं:
- पक्का करें कि आपके उपयोगकर्ताओं को बड़े मॉड्यूल डाउनलोड करने के बारे में जानकारी हो और उन्हें लगे कि वे इसे कंट्रोल कर सकते हैं. ये मॉड्यूल तुरंत लोड नहीं होते. इसके अलावा, मॉड्यूल इंस्टॉल करने से जुड़ी गड़बड़ियों के बारे में भी जानकारी दें.
- मॉड्यूल डिलीवरी के अनुभव को और बेहतर बनाएं. खास तौर पर, ऐसी स्थितियों में जहां आपको लगता है कि उपयोगकर्ता को किसी खास मॉड्यूल की ज़रूरत होगी.
इस गाइड को पढ़ने के बाद, Play Core API के सैंपल के तौर पर मिले ऐप्लिकेशन को आज़माकर, इन सबसे सही तरीकों को इस्तेमाल करके देखें.
उपयोगकर्ता को जानकारी देते रहना
अगर कोई सुविधा तुरंत उपलब्ध नहीं है, तो आपको उपयोगकर्ता को इसकी जानकारी देनी चाहिए. अगर कोई उपयोगकर्ता Google Play से सुविधा डाउनलोड करने का फ़ैसला लेता है, तो डाउनलोड की प्रोग्रेस दिखाएं.
डाउनलोड की प्रोग्रेस और इंस्टॉल की स्थिति दिखाने के लिए, अनुरोध की स्थिति को मॉनिटर किया जा सकता है. हालांकि, आपको किस तरह का यूज़र इंटरफ़ेस दिखाना है, यह डाउनलोड किए जाने वाले डेटा के साइज़ पर निर्भर करता है:
- छोटे मॉड्यूल (~10 एमबी या इससे कम) बहुत तेज़ी से इंस्टॉल किए जा सकते हैं. इनके लिए, स्पिनर या "कॉन्टेंट डाउनलोड किया जा रहा है" जैसे छोटे मैसेज का इस्तेमाल करें.
- बड़े मॉड्यूल को डाउनलोड और इंस्टॉल होने में कुछ सेकंड या उससे ज़्यादा समय लग सकता है. ऐसे मॉड्यूल के लिए, डाउनलोड और इंस्टॉल होने की प्रोग्रेस दिखाने वाला प्रोग्रेस बार दिखाएं. जैसे, इमेज 1 में दिखाया गया प्रोग्रेस बार.
पहली इमेज. मांग पर उपलब्ध सुविधा को डाउनलोड और इंस्टॉल करते समय, मैसेज और प्रोग्रेस बार दिखाना
इंस्टॉल होने में देरी होने और इंस्टॉल न हो पाने की जानकारी को बेहतर तरीके से दें
अगर कोई डाउनलोड पूरा नहीं हो पाता है या उम्मीद से ज़्यादा समय लेता है, तो उपयोगकर्ता को साफ़ तौर पर और पारदर्शी तरीके से बताएं कि क्या हो रहा है. साथ ही, अगर उपयोगकर्ता कुछ कर सकता है, तो उसे बताएं कि वह क्या कर सकता है. जैसा कि इमेज 2 और 3 में दिखाया गया है. उदाहरण के लिए, अगर डाउनलोड के अनुरोध की स्थिति पर नज़र रखी जाती है और आपके ऐप्लिकेशन को API_NOT_AVAILABLE गड़बड़ी मिलती है, तो उपयोगकर्ता को सूचना दें कि उसका डिवाइस, मांग पर डाउनलोड करने की सुविधा के साथ काम नहीं करता.
दूसरी इमेज. उपयोगकर्ता को बताएं कि इस समय कोई सुविधा क्यों इंस्टॉल नहीं की जा सकती
तीसरी इमेज. उपयोगकर्ता को बताएं कि किसी सुविधा को डाउनलोड होने में उम्मीद से ज़्यादा समय क्यों लग सकता है
बड़ी फ़ाइलों को डाउनलोड करने की अनुमति मांगने से पहले, उपयोगकर्ताओं को ऐप्लिकेशन की वैल्यू दिखाएं
अगर मांग पर उपलब्ध मॉड्यूल का साइज़ बड़ा (> 150 एमबी) है, तो Google Play को उपयोगकर्ता की सहमति की ज़रूरत होती है. इसके बाद ही, उसे डाउनलोड किया जा सकता है.
मॉड्यूल का अनुरोध करने से पहले, अपने उपयोगकर्ताओं को मॉड्यूल की अहमियत के बारे में बताएं. उन्हें बताएं कि आपने यह अनुरोध क्यों किया है. ठीक उसी तरह जैसे ऐप्लिकेशन की अनुमतियों का अनुरोध करते समय बताया जाता है. उपयोगकर्ताओं को साफ़ तौर पर जानकारी देने से, इस बात की संभावना बढ़ जाती है कि वे डाउनलोड को स्वीकार कर लें.
उदाहरण के लिए, मान लें कि आपने एक ई-कॉमर्स ऐप्लिकेशन बनाया है. इसकी एक सुविधा, उपयोगकर्ताओं को ऑगमेंटेड रिएलिटी (एआर) का इस्तेमाल करके, सीधे अपने अपार्टमेंट में फ़र्नीचर रखने की अनुमति देती है. आप इस तरह का मैसेज शामिल कर सकते हैं, "क्या आपको अपने लिविंग रूम में नया सोफ़ा देखना है? ऑगमेंटेड रिएलिटी (एआर) व्यूअर को अभी इंस्टॉल करें."
बैकग्राउंड में डाउनलोड और इंस्टॉल करना
मॉड्यूल को डाउनलोड और इंस्टॉल करने की प्रोसेस हमेशा बैकग्राउंड में होनी चाहिए. इसका मतलब है कि जब कोई उपयोगकर्ता किसी सुविधा के उपलब्ध होने का इंतज़ार कर रहा हो, तो उसे अपने ऐप्लिकेशन के अन्य हिस्सों का इस्तेमाल जारी रखने की अनुमति दी जानी चाहिए. साथ ही, सुविधा उपलब्ध होने पर, आपको एक सूचना देनी चाहिए. इससे उपयोगकर्ता अपनी ज़रूरत के हिसाब से उस सुविधा का इस्तेमाल कर सकता है.
जैसा कि इमेज 5 में दिखाया गया है, उपयोगकर्ता ऐप्लिकेशन का इस्तेमाल जारी रखता है. साथ ही, मांग के हिसाब से उपलब्ध होने वाली सुविधा का इंस्टॉलेशन पूरा होने पर, उसे एक सूचना मिलती है.
पांचवीं इमेज. मॉड्यूल इंस्टॉल होने के बाद, उपयोगकर्ता के कॉन्टेक्स्ट को अचानक बदलने के बजाय, उसे सूचना दें कि अनुरोध की गई सुविधा इस्तेमाल के लिए तैयार है.
जब मॉड्यूल इस्तेमाल के लिए तैयार हो जाए, तो उपयोगकर्ता को इसकी सूचना दें और उसे यह विकल्प दें कि वह इस सुविधा को लॉन्च करना चाहता है या नहीं. इस पैटर्न से उपयोगकर्ता को कॉन्टेक्स्ट मिलता है. साथ ही, उसे अपने अनुभव को कंट्रोल करने की सुविधा मिलती है.
कुछ मामलों में, सुविधा तैयार होते ही उसे लॉन्च किया जा सकता है. हालांकि, इससे उपयोगकर्ता के अनुभव में रुकावट आ सकती है. इसलिए, ध्यान से सोचें कि क्या यह व्यवहार सही है और इसकी उम्मीद की जा रही है.
जब किसी मॉड्यूल की ज़रूरत न हो, तो डिवाइस का स्टोरेज खाली करना
सभी फ़ीचर मॉड्यूल की एक काम की सुविधा यह है कि उन्हें अलग-अलग अनइंस्टॉल किया जा सकता है. अगर किसी फ़ीचर मॉड्यूल का इस्तेमाल नहीं किया जा रहा है, तो उपयोगकर्ता के डिवाइस पर ऐप्लिकेशन का साइज़ कम किया जा सकता है. इसके लिए, Google Play से उस मॉड्यूल को अनइंस्टॉल करने का अनुरोध करें.
उदाहरण के लिए, हो सकता है कि आपके ऐप्लिकेशन में शामिल होने का फ़्लो बेहतर हो. इसमें रिच मीडिया भी शामिल हो सकता है. जब कोई उपयोगकर्ता, ऐप्लिकेशन में शामिल होने की प्रोसेस पूरी कर लेता है या कुछ समय तक ऐप्लिकेशन का इस्तेमाल कर लेता है, तो Play Feature Delivery API का इस्तेमाल करके, Google Play से अपने ऐप्लिकेशन के सिर्फ़ उस कॉम्पोनेंट को अनइंस्टॉल करने का अनुरोध किया जा सकता है.
उन्नत युक्तियां
आम तौर पर, आपको ऐसी स्थितियों को मैनेज करना होता है जिनमें उपयोगकर्ता, मांग पर उपलब्ध फ़ीचर मॉड्यूल की सुविधा का इस्तेमाल करने के लिए साफ़ तौर पर सिग्नल देता है.
हालांकि, ऐसा हो सकता है कि आपको यह अनुमान लगाना हो कि कोई उपयोगकर्ता किसी सुविधा का इस्तेमाल करने का सिग्नल देने से पहले, उससे कब जुड़ सकता है. उदाहरण के लिए, खाना बनाने की रेसिपी डाउनलोड करने और बनाने की सुविधा देने वाले ऐप्लिकेशन का इस्तेमाल करके, यहां दिए गए दिशा-निर्देशों में बताया गया है कि उपयोगकर्ता की ज़रूरतों का अनुमान लगाकर, मॉड्यूल डिलीवरी के अनुभव को कैसे ऑप्टिमाइज़ किया जाए:
यह अनुमान लगाना कि मौजूदा सेशन में, उपयोगकर्ता को किसी सुविधा की ज़रूरत है या नहीं. मान लीजिए कि उपयोगकर्ताओं को रेसिपी वाले ऐप्लिकेशन के लिए खाता बनाने की ज़रूरत सिर्फ़ तब पड़ती है, जब उन्हें अपनी रेसिपी बनाकर कम्यूनिटी के साथ शेयर करनी होती है. खाता बनाने की प्रोसेस को इस सिग्नल के तौर पर इस्तेमाल किया जा सकता है कि उपयोगकर्ता अपनी रेसिपी जोड़ना चाहता है. इससे, उपयोगकर्ता के 'रेसिपी जोड़ें' पर टैप करने से पहले ही, फ़ीचर मॉड्यूल डाउनलोड होना शुरू हो जाता है. इस तरीके को ऐप्लिकेशन में उपयोगकर्ता की अन्य गतिविधियों पर भी लागू किया जा सकता है, ताकि सुविधा को डाउनलोड करने की प्रोसेस को और आसान बनाया जा सके.
यह अनुमान लगाना कि आने वाले सेशन में, उपयोगकर्ता को इस सुविधा की ज़रूरत पड़ सकती है. अगर आपको अपने ऐप्लिकेशन के लिए, मांग पर उपलब्ध मॉड्यूल को तुरंत डाउनलोड और इंस्टॉल करने की ज़रूरत नहीं है, तो आपके पास मॉड्यूल को इंस्टॉल करने की प्रोसेस को बाद के लिए शेड्यूल करने का विकल्प होता है. इससे, ऐप्लिकेशन के बैकग्राउंड में होने पर मॉड्यूल इंस्टॉल हो जाएगा. साथ ही, Google Play आपके लिए मॉड्यूल को डाउनलोड और इंस्टॉल कर देगा. उदाहरण के लिए, मान लें कि आपको कुकिंग ऐप्लिकेशन के लिए, मौसम के हिसाब से नई रेसिपी रिलीज़ करनी हैं. हालांकि, ये रेसिपी उपयोगकर्ता के मौजूदा सेशन के लिए ज़्यादा ज़रूरी नहीं हैं. ऐप्लिकेशन के बैकग्राउंड में होने पर, Play से इन रेसिपी को डाउनलोड और इंस्टॉल करने का अनुरोध किया जा सकता है. यह सुविधा, खास तौर पर उन बड़ी सुविधाओं (>10 एमबी) के लिए काम की है जिनकी ज़रूरत तुरंत नहीं होती, लेकिन आने वाले समय में पड़ सकती है.
ऐप्लिकेशन इंस्टॉल करने से पहले ही, किसी सुविधा के लिए उपयोगकर्ता की ज़रूरत का अनुमान लगाना. ऐसा हो सकता है कि आपको शर्तों के साथ डिलीवरी की सुविधा जोड़नी हो. इससे, इंस्टॉल के समय उपयोगकर्ता के देश, डिवाइस के हार्डवेयर की क्षमता, और एपीआई लेवल के आधार पर, ऐप्लिकेशन में सुविधा शामिल की जा सकती है. उदाहरण के लिए, हो सकता है कि आप सूअर के मांस का इस्तेमाल करने वाली रेसिपी को कंडिशनल मॉड्यूल में शामिल करना चाहें. साथ ही, उन इलाकों में ऐप्लिकेशन इंस्टॉल करने के लिए उस मॉड्यूल को हटाना चाहें जहां सूअर के मांस से बने पकवानों को ज़्यादातर लोग पसंद नहीं करते.