अपने Android ऐप्लिकेशन में PWA का इस्तेमाल करना

Android ऐप्लिकेशन में PWA शुरू करना

प्रोग्रेसिव वेब ऐप्लिकेशन (PWA) ऐसे वेब ऐप्लिकेशन हैं जो ऐप्लिकेशन जैसी सुविधाओं का इस्तेमाल करके, अच्छी क्वालिटी का ऐसा अनुभव देते हैं जो तेज़, भरोसेमंद, और दिलचस्प होता है.

वेब की पहुंच शानदार है और यह उपयोगकर्ताओं को नए अनुभव देने के बेहतर तरीके उपलब्ध कराती है. लेकिन उपयोगकर्ताओं का इस्तेमाल अपने ऑपरेटिंग सिस्टम स्टोर में ऐप्लिकेशन खोजने के लिए भी किया जाता है. कई मामलों में, ऐसे उपयोगकर्ता उस ब्रैंड या सेवा के बारे में पहले से जानते हैं जिसे वे ढूंढ रहे होते हैं. साथ ही, उनकी सोच-समझकर बहुत अच्छी जानकारी होती है, जिसकी वजह से औसत जुड़ाव मेट्रिक से भी ज़्यादा होती है.

Play Store, Android ऐप्लिकेशन का स्टोर है और डेवलपर अक्सर अपने Android ऐप्लिकेशन से प्रोग्रेसिव वेब ऐप्लिकेशन खोलना चाहते हैं.

भरोसेमंद वेब गतिविधि एक ओपन स्टैंडर्ड है, जिसकी मदद से ब्राउज़र, वेब प्लैटफ़ॉर्म के साथ पूरी तरह से काम करने वाला कंटेनर उपलब्ध करा सकते हैं. यह कंटेनर, Android ऐप्लिकेशन में PWA को रेंडर करता है. यह सुविधा Chrome में उपलब्ध है और Firefox Nightly में डेवलपमेंट के दौरान उपलब्ध है.

मौजूदा समाधान सीमित हैं

हमेशा से किसी Android ऐप्लिकेशन में, Android वेबव्यू या Cordova जैसी टेक्नोलॉजी के इस्तेमाल से जुड़े वेब अनुभव शामिल किए जा सकते हैं.

Android वेबव्यू में एक सीमा यह है कि इसे ब्राउज़र की जगह इस्तेमाल नहीं किया जाना चाहिए. Android वेबव्यू एक डेवलपर टूल है, जिसका इस्तेमाल किसी Android ऐप्लिकेशन में वेब यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करने के लिए किया जाता है. यह संपर्क पिकर या फ़ाइल सिस्टम जैसी मॉडर्न वेब प्लैटफ़ॉर्म सुविधाओं का पूरा ऐक्सेस नहीं देता. इनमें अन्य सुविधाएं भी शामिल हैं.

कॉर्डोवा को वेबव्यू की कमियों को बेहतर बनाने के लिए डिज़ाइन किया गया था. हालांकि, इसके बाद ये एपीआई कॉर्डोवा एनवायरमेंट तक सीमित रहते हैं. इसका मतलब है कि आपको अपने Android ऐप्लिकेशन के लिए Cordava API का इस्तेमाल करने के लिए, एक अतिरिक्त कोड बेस बनाए रखना होगा. यह कोड ओपन वेब पर आपके PWA से अलग होगा.

इसके अलावा, सुविधा को खोजने की सुविधा अक्सर उम्मीद के मुताबिक काम नहीं करती. इसके अलावा, Android वर्शन और OEM के बीच काम करने से जुड़ी समस्याएं भी हो सकती हैं. उनमें से किसी एक समाधान का इस्तेमाल करते समय, डेवलपर को क्वालिटी बनाए रखने की अतिरिक्त प्रोसेस की ज़रूरत होती है. साथ ही, समाधान ढूंढने और उन्हें बनाने के लिए डेवलपमेंट की अतिरिक्त लागत लगती है.

भरोसेमंद वेब गतिविधि, Android पर वेब ऐप्लिकेशन के लिए एक नया कंटेनर है

डेवलपर अब किसी Android ऐप्लिकेशन के लिए, PWA को लॉन्च गतिविधि के तौर पर शामिल करने के लिए, भरोसेमंद वेब गतिविधि का इस्तेमाल कर सकते हैं. यह टेक्नोलॉजी, ब्राउज़र का इस्तेमाल करके PWA को फ़ुल स्क्रीन में रेंडर करती है. इससे यह पक्का किया जाता है कि भरोसेमंद वेब गतिविधि, वेब प्लैटफ़ॉर्म की सुविधाओं और एपीआई के साथ काम कर रही है. भरोसेमंद वेब गतिविधि का इस्तेमाल करके Android ऐप्लिकेशन लागू करना और भी आसान बनाने के लिए ओपन सोर्स उपयोगिताएं भी हैं.

दूसरे समाधानों में एक और फ़ायदा यह नहीं है कि कंटेनर, ब्राउज़र के साथ स्टोरेज शेयर करता है. लॉगिन की स्थिति और उपयोगकर्ता की पसंद, सभी अनुभवों के हिसाब से आसानी से शेयर की जाती हैं.

ब्राउज़र के साथ काम करने की सुविधा

यह सुविधा Chrome में 75 से उपलब्ध है. साथ ही, Firefox ने इसे रात के वर्शन में भी लागू कर दिया है.

क्वालिटी के लिए ज़रूरी शर्तें

जब वेब डेवलपर किसी Android ऐप्लिकेशन में वेब कॉन्टेंट शामिल करना चाहते हैं, तो उन्हें भरोसेमंद वेब गतिविधि का इस्तेमाल करना चाहिए.

किसी भरोसेमंद वेब गतिविधि में शामिल वेब कॉन्टेंट को, PWA को इंस्टॉल करने की ज़रूरी शर्तों को पूरा करना होगा.

इसके अलावा, Android ऐप्लिकेशन से उपयोगकर्ता जिस तरह के व्यवहार की उम्मीद करते हैं उससे मिलान करने के लिए, Chrome 86 में एक बदलाव किया गया, जहां इन स्थितियों को मैनेज नहीं किया जा सकता है. इसे क्रैश माना जाता है:

  • ऐप्लिकेशन लॉन्च करते समय डिजिटल एसेट लिंक की पुष्टि न कर पाना.
  • ऑफ़लाइन नेटवर्क रिसॉर्स के अनुरोध के लिए, एचटीटीपी 200 नहीं दिखाया जा सका.
  • एचटीटीपी 404 या 5xx गड़बड़ी दिखाने वाला नेविगेशन अनुरोध.

जब भरोसेमंद वेब गतिविधि में इनमें से कोई भी स्थिति होती है, तो उपयोगकर्ता को Android ऐप्लिकेशन में क्रैश होने की समस्या होती है. अपने सर्विस वर्कर में ऐसी स्थितियों को मैनेज करने के लिए, दिशा-निर्देश देखें.

ऐप्लिकेशन को Android की खास शर्तों को भी पूरा करना होगा, जैसे कि नीति का पालन.

AirHorn के लिए लाइटहाउस स्कोर दिखाने वाला स्क्रीनशॉट, जिसमें PWA बैज और 100 का परफ़ॉर्मेंस स्कोर है.
Lighthouse में PWA बैज से पता चलता है कि आपका PWA, इंस्टॉल करने की ज़रूरी शर्तों को पूरा करता है या नहीं.

टूलिंग

जो वेब डेवलपर भरोसेमंद वेब गतिविधि का फ़ायदा लेना चाहते हैं उन्हें अपने PWA को Android ऐप्लिकेशन में बदलने के लिए, नई टेक्नोलॉजी या एपीआई सीखने की ज़रूरत नहीं है. Bubblewrap और PWABuilder, साथ मिलकर डेवलपर के लिए टूल की सुविधा उपलब्ध कराते हैं. इनमें लाइब्रेरी, कमांड लाइन इंटरफ़ेस (सीएलआई), और ग्राफ़िकल यूज़र इंटरफ़ेस (जीयूआई) शामिल हैं.

बबल रैप

Bubblewrap प्रोजेक्ट, NodeJS लाइब्रेरी और कमांड लाइन इंटरफ़ेस (सीएलआई) के तौर पर Android ऐप्लिकेशन जनरेट करता है.

एक नए प्रोजेक्ट को बूटस्ट्रैप करने के लिए, टूल चलाकर वेब मेनिफ़ेस्ट का यूआरएल पास किया जाता है:

npx @bubblewrap/cli init --manifest=https://pwa-directory.appspot.com/manifest.json

यह टूल प्रोजेक्ट भी बना सकता है और नीचे दिए गए निर्देश को चलाने पर एक Android ऐप्लिकेशन दिखेगा, जो Play Store पर अपलोड करने के लिए तैयार होगा:

npx @bubblewrap/cli build

इस निर्देश को चलाने के बाद, app-release-signed.apk नाम की फ़ाइल प्रोजेक्ट के लिए रूट डायरेक्ट्री में उपलब्ध होगी. यही फ़ाइल Play Store पर अपलोड की जाएगी.

PWABuilder

PWABuilder, मौजूदा वेबसाइटों को प्रोग्रेसिव वेब ऐप्लिकेशन में बदलने में डेवलपर की मदद करता है. यह Bubblewrap के साथ काम करके, जीयूआई इंटरफ़ेस की सुविधा देता है. इसकी मदद से, PWA का इस्तेमाल Android ऐप्लिकेशन में किया जा सकता है. PWABuilder की टीम ने, इस टूल का इस्तेमाल करके Android ऐप्लिकेशन जनरेट करने के तरीके के बारे में एक बेहतरीन ब्लॉग पोस्ट तैयार की है.

Android ऐप्लिकेशन में PWA के मालिकाना हक की पुष्टि करना

एक बेहतरीन प्रोग्रेसिव वेब ऐप्लिकेशन बनाने वाला डेवलपर नहीं चाहेगा कि दूसरे डेवलपर उसकी अनुमति के बिना उसे कोई Android ऐप्लिकेशन न बनाएं. यह पक्का करने के लिए कि ऐसा न हो, Android ऐप्लिकेशन को प्रोग्रेसिव वेब ऐप्लिकेशन के साथ जोड़ा जाना चाहिए. इसके लिए, डिजिटल एसेट लिंक टूल का इस्तेमाल किया जाना चाहिए.

Bubblewrap और PWABuilder, Android ऐप्लिकेशन के लिए ज़रूरी कॉन्फ़िगरेशन का इस्तेमाल करते हैं. हालांकि, आखिरी चरण अब PWA में assetlinks.json फ़ाइल को जोड़ना है.

इस फ़ाइल को जनरेट करने के लिए, डेवलपर को उस कुंजी के SHA-256 सिग्नेचर की ज़रूरत होती है जिसका इस्तेमाल उस APK को साइन करने के लिए किया जाता है जिसे उपयोगकर्ता डाउनलोड कर रहा है.

कुंजी कई तरीकों से जनरेट की जा सकती है. असली उपयोगकर्ताओं को भेजे जा रहे APK पर साइन करने वाली कुंजी का पता लगाने का सबसे आसान तरीका, उसे Play Store से डाउनलोड करना है.

लोगों को काम न करने वाला ऐप्लिकेशन दिखाने से बचने के लिए, उस ऐप्लिकेशन को क्लोज़्ड टेस्ट चैनल पर डिप्लॉय करें. इसके बाद, इसे टेस्ट डिवाइस में इंस्टॉल करें. इसके बाद, पीटर के ऐसेट लिंक टूल का इस्तेमाल करके, ऐप्लिकेशन के लिए सही assetlinks.json फ़ाइल जनरेट करें. जनरेट की गई assetlinks.json फ़ाइल को पुष्टि किए जा रहे डोमेन में, /.well-known/assetlinks.json पर उपलब्ध कराएं.

आगे कहां जाना है

प्रोग्रेसिव वेब ऐप्लिकेशन, एक अच्छी क्वालिटी वाला वेब अनुभव है. 'भरोसेमंद वेब गतिविधि' किसी Android ऐप्लिकेशन से उन अच्छी क्वालिटी वाले अनुभवों को खोलने का एक नया तरीका है, जब वे कम से कम क्वालिटी की शर्तों को पूरा करते हैं.

अगर आपको प्रोग्रेसिव वेब ऐप्लिकेशन का इस्तेमाल शुरू करना है, तो बेहतरीन PWA बनाने के तरीके के बारे में हमारा दिशा-निर्देश पढ़ें. जिन डेवलपर के पास पहले से ही PWA है, उनके लिए Lighthouse का इस्तेमाल करके पुष्टि करें कि वह क्वालिटी की शर्तों को पूरा करता है या नहीं.

इसके बाद, Android ऐप्लिकेशन जनरेट करने के लिए, Bubblewrap या PWABuilder का इस्तेमाल करें. ऐप्लिकेशन को Play Store पर क्लोज़्ड टेस्ट चैनल पर अपलोड करें और पीटर के ऐसेट लिंक टूल का इस्तेमाल करके, उसे PWA के साथ जोड़ें.

आखिर में, अपने आवेदन को क्लोज़्ड टेस्ट चैनल से प्रोडक्शन में ले जाएं!