Android ऐप्लिकेशन में PWA शुरू करना
प्रोग्रेसिव वेब ऐप्लिकेशन (PWA) ऐसे वेब ऐप्लिकेशन होते हैं जो ऐप्लिकेशन जैसी सुविधाओं का इस्तेमाल करके, अच्छी क्वालिटी वाले अनुभव देते हैं. ये अनुभव तेज़, भरोसेमंद, और दिलचस्प होते हैं.
वेब की पहुंच बहुत ज़्यादा है. साथ ही, यह उपयोगकर्ताओं को नए अनुभव खोजने के लिए बेहतरीन तरीके उपलब्ध कराता है. हालांकि, उपयोगकर्ता अपने ऑपरेटिंग सिस्टम के स्टोर में भी ऐप्लिकेशन खोजते हैं. ज़्यादातर मामलों में, ये उपयोगकर्ता उस ब्रैंड या सेवा के बारे में पहले से जानते हैं जिसे वे खोज रहे हैं. साथ ही, वे किसी खास मकसद से खोज करते हैं. इस वजह से, उनकी दिलचस्पी दिखाने वाली मेट्रिक, औसत से ज़्यादा होती है.
Play Store, Android ऐप्लिकेशन के लिए एक स्टोर है. डेवलपर अक्सर अपने Android ऐप्लिकेशन से प्रोग्रेसिव वेब ऐप्लिकेशन खोलना चाहते हैं.
भरोसेमंद वेब गतिविधि एक ओपन स्टैंडर्ड है. इससे ब्राउज़र, पूरी तरह से वेब प्लैटफ़ॉर्म के साथ काम करने वाला कंटेनर उपलब्ध करा सकते हैं. यह कंटेनर, Android ऐप्लिकेशन में पीडब्ल्यूए रेंडर करता है. यह सुविधा Chrome में उपलब्ध है. साथ ही, Firefox Nightly में इसे डेवलप किया जा रहा है.
पहले से मौजूद समाधान सीमित थे
Android ऐप्लिकेशन में वेब अनुभव को शामिल किया जा सकता है. इसके लिए, Android WebView जैसी टेक्नोलॉजी या Cordova जैसे फ़्रेमवर्क का इस्तेमाल किया जा सकता है.
Android WebView की सीमा यह है कि इसे ब्राउज़र के विकल्प के तौर पर इस्तेमाल नहीं किया जा सकता. Android WebView, डेवलपर के लिए एक टूल है. इसका इस्तेमाल Android ऐप्लिकेशन में वेब यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करने के लिए किया जाता है. यह संपर्क चुनने वाले टूल या फ़ाइल सिस्टम जैसी आधुनिक वेब प्लैटफ़ॉर्म सुविधाओं के साथ-साथ अन्य सुविधाओं का पूरा ऐक्सेस नहीं देता है.
Cordova को WebView की कमियों को दूर करने के लिए डिज़ाइन किया गया था. हालांकि, इसके बाद एपीआई, Cordova एनवायरमेंट तक सीमित हो जाते हैं. इसका मतलब है कि आपको अपने Android ऐप्लिकेशन के लिए, Cordova API का इस्तेमाल करने के लिए एक अतिरिक्त कोडबेस बनाए रखना होगा. यह कोडबेस, ओपन वेब पर मौजूद आपके PWA से अलग होगा.
इसके अलावा, अक्सर ऐसा होता है कि सुविधा के बारे में जानकारी मिलने की सुविधा उम्मीद के मुताबिक काम नहीं करती. साथ ही, Android के वर्शन और ओईएम के बीच काम न करने की समस्याएं भी हो सकती हैं. इनमें से किसी एक समाधान का इस्तेमाल करते समय, डेवलपर को क्वालिटी अश्योरेंस की अतिरिक्त प्रोसेस की ज़रूरत होती है. साथ ही, उन्हें समस्याओं का पता लगाने और उनके समाधान तैयार करने के लिए, डेवलपमेंट पर ज़्यादा खर्च करना पड़ता है.
भरोसेमंद वेब गतिविधि, Android पर वेब ऐप्लिकेशन के लिए एक नया कंटेनर है
डेवलपर अब भरोसेमंद वेब गतिविधि का इस्तेमाल कंटेनर के तौर पर कर सकते हैं. इससे वे Android ऐप्लिकेशन के लिए, लॉन्च गतिविधि के तौर पर PWA को शामिल कर सकते हैं. यह टेक्नोलॉजी, ब्राउज़र का इस्तेमाल करके PWA को फ़ुल स्क्रीन में रेंडर करती है. इससे यह पक्का होता है कि भरोसेमंद वेब गतिविधि, वेब प्लैटफ़ॉर्म की सुविधाओं और एपीआई के साथ उसी तरह काम करती है जिस तरह ब्राउज़र काम करता है. ओपन सोर्स यूटिलिटी भी उपलब्ध हैं. इनकी मदद से, भरोसेमंद वेब गतिविधि का इस्तेमाल करके Android ऐप्लिकेशन को लागू करना और भी आसान हो जाता है.
अन्य समाधानों में उपलब्ध न होने वाला एक और फ़ायदा यह है कि कंटेनर, ब्राउज़र के साथ स्टोरेज शेयर करता है. लॉगिन की स्थिति और उपयोगकर्ताओं की प्राथमिकताओं को सभी प्लैटफ़ॉर्म पर आसानी से शेयर किया जाता है.
ब्राउज़र किस-किस के साथ काम करता है
यह सुविधा Chrome के वर्शन 75 से उपलब्ध है. Firefox ने इसे अपने नाइटली वर्शन में लागू किया है.
क्वालिटी से जुड़े मानदंड
वेब डेवलपर को Android ऐप्लिकेशन में वेब कॉन्टेंट शामिल करने के लिए, भरोसेमंद वेब गतिविधि का इस्तेमाल करना चाहिए.
भरोसेमंद वेब गतिविधि में मौजूद वेब कॉन्टेंट को, PWA इंस्टॉल करने से जुड़ी शर्तों को पूरा करना होगा.
इसके अलावा, Android ऐप्लिकेशन से उपयोगकर्ताओं को जो उम्मीदें होती हैं उन्हें पूरा करने के लिए, Chrome 86 में एक बदलाव किया गया है. इसमें इन स्थितियों को हैंडल न कर पाने को क्रैश माना जाता है:
- ऐप्लिकेशन लॉन्च करते समय, डिजिटल ऐसेट लिंक की पुष्टि नहीं हो पाई.
- ऑफ़लाइन नेटवर्क संसाधन के अनुरोध के लिए, एचटीटीपी 200 कोड नहीं मिला.
- नेविगेशन का ऐसा अनुरोध जो एचटीटीपी 404 या 5xx गड़बड़ी दिखाता है".
इनमें से कोई भी स्थिति, भरोसेमंद वेब ऐक्टिविटी में होने पर, Android ऐप्लिकेशन क्रैश हो जाता है. यह क्रैश, उपयोगकर्ता को दिखता है. अपने सर्विस वर्कर में उन स्थितियों को हैंडल करने के बारे में दिशा-निर्देश देखें.
ऐप्लिकेशन को Android से जुड़ी अन्य ज़रूरी शर्तों को भी पूरा करना होगा. जैसे, नीति का पालन करना.
टूलिंग
भरोसेमंद वेब गतिविधि का फ़ायदा पाने के लिए, वेब डेवलपर को अपने पीडब्ल्यूए को Android ऐप्लिकेशन में बदलने के लिए, नई टेक्नोलॉजी या एपीआई सीखने की ज़रूरत नहीं है. Bubblewrap और PWABuilder, डेवलपर टूलिंग उपलब्ध कराते हैं. ये टूलिंग, लाइब्रेरी, कमांड लाइन इंटरफ़ेस (सीएलआई), और ग्राफ़िकल यूज़र इंटरफ़ेस (जीयूआई) के तौर पर उपलब्ध होती है.
बबल रैप
Bubblewrap प्रोजेक्ट, Android ऐप्लिकेशन को NodeJS लाइब्रेरी और कमांड लाइन इंटरफ़ेस (सीएलआई) के तौर पर जनरेट करता है.
नया प्रोजेक्ट बूटस्ट्रैप करने के लिए, टूल को चलाएं और वेब मेनिफ़ेस्ट का यूआरएल पास करें:
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 ऐप्लिकेशन में रैप करने के लिए GUI इंटरफ़ेस उपलब्ध कराया जा सके. PWABuilder टीम ने इस टूल का इस्तेमाल करके, Android ऐप्लिकेशन जनरेट करने के तरीके के बारे में एक बेहतरीन ब्लॉग पोस्ट लिखी है.
Android ऐप्लिकेशन में PWA के मालिकाना हक की पुष्टि करना
प्रोग्रेसिव वेब ऐप्लिकेशन बनाने वाला कोई डेवलपर नहीं चाहेगा कि कोई दूसरा डेवलपर, उसकी अनुमति के बिना उस ऐप्लिकेशन का इस्तेमाल करके Android ऐप्लिकेशन बनाए. यह पक्का करने के लिए कि ऐसा न हो, Android ऐप्लिकेशन को प्रोग्रेसिव वेब ऐप्लिकेशन के साथ जोड़ना होगा. इसके लिए, डिजिटल ऐसेट लिंक नाम के टूल का इस्तेमाल करना होगा.
Bubblewrap और PWABuilder, Android ऐप्लिकेशन पर ज़रूरी कॉन्फ़िगरेशन का ध्यान रखते हैं. हालांकि, एक आखिरी चरण बाकी रहता है. यह चरण, PWA में assetlinks.json फ़ाइल जोड़ने का है.
इस फ़ाइल को जनरेट करने के लिए, डेवलपर को उस कुंजी के SHA-256 सिग्नेचर की ज़रूरत होती है जिसका इस्तेमाल, उपयोगकर्ताओं के डाउनलोड किए जा रहे APK पर हस्ताक्षर करने के लिए किया गया था.
कुंजी को कई तरीकों से जनरेट किया जा सकता है. साथ ही, यह पता लगाने का सबसे आसान तरीका कि किस कुंजी से उन APK पर हस्ताक्षर किए गए हैं जिन्हें उपयोगकर्ताओं को दिखाया जा रहा है, उन्हें Play Store से डाउनलोड करना है.
उपयोगकर्ताओं को काम न करने वाला ऐप्लिकेशन दिखाने से बचने के लिए, ऐप्लिकेशन को क्लोज़ टेस्ट चैनल पर डिप्लॉय करें. इसके बाद, इसे टेस्ट डिवाइस में इंस्टॉल करें. फिर, Peter's Asset Link Tool का इस्तेमाल करके, ऐप्लिकेशन के लिए सही assetlinks.json फ़ाइल जनरेट करें. जनरेट की गई assetlinks.json फ़ाइल को, पुष्टि किए जा रहे डोमेन में /.well-known/assetlinks.json पर उपलब्ध कराएं.
आगे क्या करना है
प्रोग्रेसिव वेब ऐप्लिकेशन, वेब पर मिलने वाला बेहतर अनुभव है. भरोसेमंद वेब गतिविधि, Android ऐप्लिकेशन से अच्छी क्वालिटी वाले अनुभव को खोलने का नया तरीका है. हालांकि, इसके लिए ज़रूरी है कि वे क्वालिटी से जुड़ी ज़रूरी शर्तों को पूरा करते हों.
अगर आपको प्रोग्रेसिव वेब ऐप्लिकेशन (पीडब्ल्यूए) का इस्तेमाल शुरू करना है, तो बेहतरीन पीडब्ल्यूए बनाने के बारे में हमारी गाइड पढ़ें. जिन डेवलपर के पास पहले से ही कोई PWA है वे Lighthouse का इस्तेमाल करके यह पुष्टि कर सकते हैं कि वह क्वालिटी से जुड़ी शर्तों को पूरा करता है या नहीं.
इसके बाद, Android ऐप्लिकेशन जनरेट करने के लिए Bubblewrap या PWABuilder का इस्तेमाल करें. ऐप्लिकेशन को Play Store पर क्लोज़्ड टेस्ट चैनल पर अपलोड करें और Peter's Asset Link Tool का इस्तेमाल करके, इसे PWA के साथ जोड़ें.
आखिर में, अपने ऐप्लिकेशन को क्लोज़्ड टेस्ट चैनल से प्रोडक्शन में ले जाएं!