मांग पर मॉड्यूल के तौर पर अच्छी तरह से काम करने वाली सुविधाएं वे होती हैं जिनकी ज़रूरत, इंस्टॉल के समय आपके ज़्यादातर उपयोगकर्ताओं को नहीं होती. यहां मांग पर उपलब्ध मॉड्यूल के लिए, ऐप्लिकेशन की कुछ सुविधाओं के उदाहरण दिए गए हैं:
- किसी ऐसे ऐप्लिकेशन में वीडियो एडिट करना और अपलोड करना जहां ज़्यादातर उपयोगकर्ता सिर्फ़ वीडियो देखते हैं
- किसी ऐसे ऐप्लिकेशन में रेसिपी जोड़ना जहां ज़्यादातर उपयोगकर्ता सिर्फ़ दूसरों की रेसिपी ब्राउज़ करते हैं और उन्हें फ़ॉलो करते हैं
- सहायता और सहायता पाने की सुविधा, जब ज़्यादातर उपयोगकर्ता मदद नहीं मांगते या ऐप्लिकेशन में मदद नहीं मांगते
- कम इस्तेमाल होने वाली सुविधाओं के लिए बड़ी लाइब्रेरी, जैसे कि गड़बड़ी की पूरी जानकारी कैप्चर करना और रिपोर्ट करना
- पेमेंट या चेकआउट की खास सुविधाएं
- बहुत हाई रिज़ॉल्यूशन वाले मीडिया अनुभव या वीआर/एआर की सुविधाएं
आम तौर पर, जब ये मॉड्यूल छोटे (10 एमबी से कम) होते हैं और नेटवर्क या अन्य समस्याएं नहीं होती हैं, तो उपयोगकर्ता ऑन डिमांड मॉड्यूल को बहुत तेज़ी से डाउनलोड और इस्तेमाल कर सकते हैं. इसका मतलब है कि आम तौर पर, ऐप्लिकेशन इंस्टॉल करने के दौरान मॉड्यूल मौजूद होने पर और बाद में मॉड्यूल इंस्टॉल करने पर, उपयोगकर्ता अनुभव में कोई अंतर नहीं होता.
इस पेज पर, सबसे सही तरीकों के बारे में बताया गया है. इनकी मदद से, ये काम किए जा सकते हैं:
- पक्का करें कि आपके उपयोगकर्ताओं को इस बात की जानकारी हो कि बड़े मॉड्यूल के डाउनलोड तुरंत लोड नहीं होते. साथ ही, उन्हें यह भी पता हो कि मॉड्यूल इंस्टॉल करने से जुड़ी गड़बड़ियों को कैसे ठीक किया जा सकता है.
- मॉड्यूल डिलीवरी के अनुभव को और ऑप्टिमाइज़ करें. ऐसा खास तौर पर उन मामलों में करें जहां आपको लगता है कि उपयोगकर्ता को किसी खास मॉड्यूल की ज़रूरत होगी.
इस गाइड को पढ़ने के बाद, Play Core API का सैंपल ऐप्लिकेशन आज़माकर, इन सबसे सही तरीकों को आज़माएं.
उपयोगकर्ता को जानकारी देना
अगर कोई सुविधा तुरंत उपलब्ध नहीं है, तो आपको उपयोगकर्ता को इसकी जानकारी देनी चाहिए. अगर कोई उपयोगकर्ता, Google Play से सुविधा डाउनलोड करना चाहता है, तो डाउनलोड की प्रोग्रेस दिखाएं.
डाउनलोड की प्रोग्रेस और इंस्टॉल की स्थिति देखने के लिए, अनुरोध की स्थिति पर नज़र रखी जा सकती है. हालांकि, आपको जिस तरह का यूज़र इंटरफ़ेस दिखाना है वह डाउनलोड किए गए डेटा के साइज़ पर निर्भर कर सकता है:
- छोटे मॉड्यूल (~10 एमबी या उससे कम) के लिए, स्पिनर या “कॉन्टेंट डाउनलोड हो रहा है” वाला छोटा मैसेज जैसे इंडिकेटर का इस्तेमाल करें. ये मॉड्यूल बहुत तेज़ी से इंस्टॉल हो जाते हैं.
- बड़े मॉड्यूल को डाउनलोड और इंस्टॉल करने में कुछ सेकंड या उससे ज़्यादा समय लग सकता है. ऐसे में, डाउनलोड और इंस्टॉल करने की प्रोग्रेस बार दिखाएं. जैसे, पहली इमेज में दिखाया गया प्रोग्रेस बार.
पहली इमेज. मांग पर मिलने वाली सुविधा को डाउनलोड और इंस्टॉल करते समय, मैसेज और प्रोग्रेस बार दिखाना
इंस्टॉलेशन में होने वाली देरी और गड़बड़ियों के बारे में आसानी से बताना
अगर कोई डाउनलोड पूरा नहीं होता या उम्मीद से धीमी रफ़्तार से होता है, तो उपयोगकर्ता को साफ़ तौर पर और पारदर्शी तरीके से बताएं कि क्या हो रहा है और अगर कुछ करना है, तो वह क्या कर सकता है. इस बारे में दूसरे और तीसरे चित्र में बताया गया है. उदाहरण के लिए, अगर आपने डाउनलोड के अनुरोध की स्थिति पर नज़र रखी है और आपके ऐप्लिकेशन को API_NOT_AVAILABLE
गड़बड़ी का मैसेज मिलता है, तो उपयोगकर्ता को बताएं कि उसका डिवाइस, मांग पर डाउनलोड करने की सुविधा के साथ काम नहीं करता.
![](https://developer.android.google.cn/static/studio/images/projects/dynamic-delivery/failed_download.png?authuser=4&hl=hi)
दूसरी इमेज. उपयोगकर्ता को बताएं कि फ़िलहाल, कोई सुविधा क्यों नहीं इंस्टॉल की जा सकती
![](https://developer.android.google.cn/static/studio/images/projects/dynamic-delivery/large_download.png?authuser=4&hl=hi)
तीसरा चित्र. उपयोगकर्ता को बताएं कि किसी सुविधा को डाउनलोड होने में, अपेक्षा से ज़्यादा समय क्यों लग रहा है
ज़्यादा डेटा डाउनलोड करने के लिए अनुमति का अनुरोध करने से पहले, वैल्यू दिखाना
अगर ऑन डिमांड मॉड्यूल का साइज़ बड़ा है (150 एमबी से ज़्यादा), तो Google Play के लिए ज़रूरी है कि उपयोगकर्ता पहले उसकी सहमति दे.
मॉड्यूल का अनुरोध करने से पहले, अपने उपयोगकर्ताओं को मॉड्यूल की अहमियत के बारे में बताएं. उन्हें यह समझने में मदद करें कि आपने उनसे यह अनुरोध क्यों किया है. ठीक उसी तरह जैसे ऐप्लिकेशन की अनुमतियां मांगते समय किया जाता है. उपयोगकर्ताओं के साथ खुलकर बातचीत करने से, डाउनलोड स्वीकार करने की संभावना बढ़ जाती है.
उदाहरण के लिए, मान लें कि आपने एक ई-कॉमर्स ऐप्लिकेशन बनाया है और इसकी एक सुविधा से, उपयोगकर्ता ऑगमेंटेड रिएलिटी (एआर) का इस्तेमाल करके, अपने अपार्टमेंट में फ़र्नीचर को सीधे तौर पर रख सकते हैं. इसमें यह मैसेज शामिल किया जा सकता है, "क्या आपको अपने लिविंग रूम में नया सोफ़ा देखना है? ऑगमेंटेड रिएलिटी व्यूअर को अभी इंस्टॉल करें."
बैकग्राउंड में डाउनलोड और इंस्टॉल करने की अनुमति
मॉड्यूल डाउनलोड और इंस्टॉल करने की प्रोसेस हमेशा बैकग्राउंड में होनी चाहिए. इसका मतलब है कि जब कोई उपयोगकर्ता किसी सुविधा के उपलब्ध होने का इंतज़ार कर रहा हो, तब आपको उसे अपने ऐप्लिकेशन के अन्य हिस्सों का इस्तेमाल करने की अनुमति देनी चाहिए. साथ ही, जब सुविधा उपलब्ध हो जाए, तब आपको एक सूचना देनी चाहिए, ताकि उपयोगकर्ता अपनी पसंद के हिसाब से उस सुविधा का इस्तेमाल कर सके.
जैसा कि पांचवें चित्र में दिखाया गया है, उपयोगकर्ता ऐप्लिकेशन का इस्तेमाल करता रहता है. साथ ही, ऑन डिमांड सुविधा के इंस्टॉल होने के बाद उसे सूचना मिलती है.
पांचवां चित्र. मॉड्यूल के इंस्टॉल होने के बाद, उपयोगकर्ता के संदर्भ को अचानक बदलने के बजाय, उपयोगकर्ता को सूचना दें कि अनुरोध की गई सुविधा उनके लिए तैयार है.
जब मॉड्यूल इस्तेमाल के लिए तैयार हो जाए, तो उपयोगकर्ता को इसकी सूचना दें और उसे यह विकल्प दें कि उसे यह सुविधा लॉन्च करनी है या नहीं. इस पैटर्न से उपयोगकर्ता को अपने अनुभव का कॉन्टेक्स्ट और कंट्रोल मिलता है.
कुछ मामलों में, सुविधा तैयार होने के बाद उसे लॉन्च किया जा सकता है. हालांकि, इससे उपयोगकर्ता के अनुभव में रुकावट आ सकती है. इसलिए, ध्यान से देखें कि क्या यह व्यवहार सही और ज़रूरी है.
किसी मॉड्यूल की ज़रूरत न होने पर, डिवाइस का स्टोरेज खाली करना
सभी सुविधा मॉड्यूल को अलग-अलग अनइंस्टॉल किया जा सकता है. अगर किसी सुविधा वाले मॉड्यूल का अब इस्तेमाल नहीं किया जा रहा है, तो उपयोगकर्ता के डिवाइस पर अपने ऐप्लिकेशन का साइज़ कम किया जा सकता है. इसके लिए, Google Play से उस मॉड्यूल को अनइंस्टॉल करने का अनुरोध करें.
उदाहरण के लिए, आपके ऐप्लिकेशन में ऑनबोर्डिंग का बेहतर फ़्लो हो सकता है. इसमें रिच मीडिया भी शामिल हो सकता है. जब कोई उपयोगकर्ता शामिल होने की प्रोसेस पूरी कर लेता है या कुछ समय तक ऐक्टिव उपयोगकर्ता बना रहता है, तो Play Feature Delivery API का इस्तेमाल करके, Google Play से आपके ऐप्लिकेशन के सिर्फ़ उस कॉम्पोनेंट को अनइंस्टॉल करने का अनुरोध किया जा सकता है.
ध्यान रखें कि ऐप्लिकेशन को पहली बार इंस्टॉल करते समय शामिल किए गए मॉड्यूल को बाद में भी अनइंस्टॉल किया जा सकता है. उदाहरण के लिए, जब उपयोगकर्ता पहली बार आपके ऐप्लिकेशन का इस्तेमाल करते हैं, तो आपके ऐप्लिकेशन को इस्तेमाल करने का तरीका बताने वाला मॉड्यूल उनके लिए अहम होता है. हालांकि, ऐप्लिकेशन का साइज़ कम करने के लिए, उपयोगकर्ताओं को ट्रेनिंग देने के बाद, उसे अनइंस्टॉल किया जा सकता है.
बेहतर सलाह
आम तौर पर, आपको उन स्थितियों को मैनेज करना होगा जहां उपयोगकर्ता साफ़ तौर पर, आपके ऑन डिमांड सुविधा वाले मॉड्यूल के फ़ंक्शन का इस्तेमाल करने का इरादा दिखाता है.
हालांकि, हो सकता है कि आप यह अनुमान लगाना चाहें कि उपयोगकर्ता किसी सुविधा का इस्तेमाल करने से पहले, कब उससे जुड़ेगा. उदाहरण के लिए, खाना बनाने की रेसिपी डाउनलोड करने और बनाने की सुविधा देने वाले ऐप्लिकेशन का इस्तेमाल करके, नीचे दिए गए दिशा-निर्देशों में उपयोगकर्ता की ज़रूरतों का अनुमान लगाकर, मॉड्यूल डिलीवरी के अनुभव को ऑप्टिमाइज़ करने का तरीका बताया गया है.
मौजूदा सेशन में, उपयोगकर्ता की किसी सुविधा की ज़रूरत का अनुमान लगाना. देखें कि क्या उपयोगकर्ताओं को सिर्फ़ तब रेसिपी ऐप्लिकेशन के लिए खाता बनाना होगा, जब उन्हें अपनी रेसिपी बनानी हो और उन्हें समुदाय के साथ शेयर करनी हो. खाता बनाने की सुविधा को इस बात के सिग्नल के तौर पर इस्तेमाल किया जा सकता है कि उपयोगकर्ता अपनी पसंद की रेसिपी जोड़ना चाहता है. इसलिए, 'रेसिपी जोड़ें' पर टैप करने से पहले ही, सुविधा का मॉड्यूल डाउनलोड करना शुरू कर दें. इस तरीके को ऐप्लिकेशन में उपयोगकर्ता के अन्य सफ़र पर भी लागू किया जा सकता है, ताकि सुविधा को डाउनलोड करने की प्रोसेस को आसान बनाया जा सके.
आने वाले सेशन में, उपयोगकर्ता की सुविधा की ज़रूरत का अनुमान लगाना. अगर आपको अपने ऐप्लिकेशन के लिए, मांग पर उपलब्ध मॉड्यूल को तुरंत डाउनलोड और इंस्टॉल करने की ज़रूरत नहीं है, तो आपके पास इंस्टॉल करने की प्रोसेस को बाद के लिए शेड्यूल करने का विकल्प है. ऐसा करने पर, ऐप्लिकेशन बैकग्राउंड में चलने के दौरान, Google Play आपके लिए डाउनलोड और इंस्टॉल की प्रोसेस को मैनेज करेगा. उदाहरण के लिए, मान लें कि आपको अपने कुकिंग ऐप्लिकेशन के लिए, सीज़न के हिसाब से नई रेसिपी रिलीज़ करनी हैं. हालांकि, ये रेसिपी उपयोगकर्ता के मौजूदा सेशन के लिए ज़्यादा प्राथमिकता नहीं हैं. ऐप्लिकेशन के बैकग्राउंड में होने पर, Play से इन रेसिपी को डाउनलोड और इंस्टॉल करने का अनुरोध किया जा सकता है. यह सुविधा, बड़ी सुविधाओं (>10 एमबी) के लिए खास तौर पर मददगार होती है. इन सुविधाओं की फ़िलहाल ज़रूरत नहीं होती, लेकिन आने वाले समय में इनकी ज़रूरत पड़ सकती है.
ऐप्लिकेशन इंस्टॉल करने से पहले, उपयोगकर्ता की किसी सुविधा की ज़रूरत का अनुमान लगाएं. हो सकता है कि आप शर्तों के साथ डिलीवरी की सुविधा जोड़ना चाहें, ताकि उपयोगकर्ता के देश, डिवाइस के हार्डवेयर की क्षमता, और एपीआई लेवल के आधार पर, इंस्टॉल के समय अपनी सुविधा को शामिल किया जा सके. उदाहरण के लिए, हो सकता है कि आप शर्तों के हिसाब से काम करने वाले मॉड्यूल में, उन रेसिपी को शामिल करना चाहें जिनमें पोर्क का इस्तेमाल किया गया हो. साथ ही, उन इलाकों में ऐप्लिकेशन इंस्टॉल करने के लिए, उस मॉड्यूल को शामिल न करें जहां आम तौर पर पोर्क के पकवानों से परहेज किया जाता है.