ले ऑफ़ द लैंड

Peter Conn
Peter Conn

भरोसेमंद वेब गतिविधियों के लिए, एक बड़ा नेटवर्क उपलब्ध है. इसलिए, यह समझना मुश्किल हो सकता है कि सब कुछ कैसे जुड़ा है और आपको किसका इस्तेमाल करना चाहिए. इस लेख में इस बारे में बताया गया है.

अगर आपने भरोसेमंद वेब गतिविधियों के बारे में पहले कभी नहीं सुना है या आपको सिर्फ़ उन टूल के सुझाव चाहिए जिनका इस्तेमाल अभी किया जाना चाहिए, तो आपको इन बातों का ध्यान रखना चाहिए:

  • Bubblewrap: यह एक NodeJS टूल है. इसकी मदद से, डेवलपर किसी मौजूदा PWA को रैप करने वाला Android APK बना सकते हैं और उसे बिल्ड कर सकते हैं. जनरेट किया गया ऐप्लिकेशन, भरोसेमंद वेब गतिविधियों की मदद से काम करता है. हालांकि, डेवलपर को इसकी पूरी जानकारी होती है. इसके लिए, Android ऐप्लिकेशन बनाने का अनुभव होना ज़रूरी नहीं है. शुरू करने के लिए, Bubblewrap का दस्तावेज़ देखें.
  • android-browser-helper: यह एक Android लाइब्रेरी है, जिसमें भरोसेमंद वेब गतिविधियों का प्रोटोकॉल शामिल होता है. यह उन डेवलपर के लिए सुझाया गया है जो Android डेवलपमेंट के बारे में जानते हैं और अपने Android ऐप्लिकेशन में गतिविधियों के तौर पर भरोसेमंद वेब गतिविधियों का इस्तेमाल करना चाहते हैं. इसके अलावा, वे ऐसे कस्टमाइज़ेशन भी कर सकते हैं जिनके लिए Bubblewrap काम नहीं करता. android-browser-helper का इस्तेमाल शुरू करने के लिए, दस्तावेज़ और हमारे डेमो देखें.

अगले सेक्शन में, एक-दूसरे से जुड़े सभी प्रोजेक्ट की खास जानकारी दी गई है. आखिर में, 'इतिहास' सेक्शन में आपको यह जानकारी मिलेगी कि हम यहां कैसे पहुंचे और आने वाले समय में हम कहां तक पहुंचने वाले हैं.

लाइब्रेरी के बारे में खास जानकारी

यहां हर उस लाइब्रेरी के बारे में एक वाक्य में खास जानकारी दी गई है जिसका इस्तेमाल किया जा सकता है:

  • androidx.browser, उपयोगकर्ता के डिवाइस पर इंस्टॉल किए गए ब्राउज़र के साथ इंटरैक्ट करने के लिए बनाई गई Android लाइब्रेरी.
  • Android Browser Helper, androidx.browser पर बनाई गई लाइब्रेरी है. यह भरोसेमंद वेब गतिविधि के क्लाइंट के लिए, सुविधाजनक तरीके और सही डिफ़ॉल्ट वैल्यू उपलब्ध कराती है.
  • Bubblewrap, एक ऐसा टूल है जिसकी मदद से, किसी भी Java कोड को छेड़छाड़ किए बिना, PWA से भरोसेमंद वेब गतिविधियां बनाई जा सकती हैं.

इसके अलावा, इनमें से हर लाइब्रेरी/टूल, किसी पुराने टूल की जगह लेता है:

इतिहास

Android सपोर्ट लाइब्रेरी

Android सपोर्ट लाइब्रेरी, नए एपीआई और काम करने की सुविधाओं के साथ Android प्लैटफ़ॉर्म को बेहतर बनाती है. इसे कई पैकेज में बांटा गया है. कस्टम टैब की सहायता लाइब्रेरी में, उपयोगकर्ता के सिस्टम पर ब्राउज़र के साथ इंटरैक्ट करने की सुविधा होती है. कस्टम टैब की सहायता लाइब्रेरी को मुख्य रूप से custom-tabs-client GitHub repo में डेवलप किया गया था. साथ ही, इन बदलावों को Android की सहायता लाइब्रेरी में अपस्ट्रीम किया गया था.

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

भरोसेमंद वेब गतिविधियां, कस्टम टैब के आधार पर बनाई गई हैं. इसलिए, इन्हें custom-tabs-client लाइब्रेरी में शुरू किया गया था. भरोसेमंद वेब गतिविधियां, कस्टम टैब के सबसे ऊपर मौजूद बार को हटा देती हैं. ऐसा तब होता है, जब उपयोगकर्ता ऐप्लिकेशन के डेवलपर के मालिकाना हक वाली साइट को ब्राउज़ कर रहा हो. इससे, अपनी वेबसाइट को नेटिव Android ऐप्लिकेशन में आसानी से इंटिग्रेट किया जा सकता है. साथ ही, इसका इस्तेमाल ऐसे ऐप्लिकेशन बनाने के लिए किया जा सकता है जिनमें वेब से सभी सुविधाएं मिलती हैं.

AndroidX

Android Support Library को बाद में AndroidX के तौर पर रीब्रैंड किया गया. यह JetPack का हिस्सा है, जिसे डेवलपर के अनुभव को बेहतर बनाने के लिए बनाया गया है. इसलिए, कस्टम टैब और भरोसेमंद वेब गतिविधियों को कस्टम टैब की सहायता लाइब्रेरी से, androidx.browser में ले जाना पड़ा.

कस्टम-टैब-क्लाइंट में लिखा गया कुछ कोड, भरोसेमंद वेब गतिविधि की सहायक क्लास की लाइब्रेरी के लिए सही था, लेकिन Android API के लिए नहीं. Chrome के पुराने वर्शन की जांच करने और उपयोगकर्ता को अपडेट करने के लिए कहने या डेटा को कैसे सेव करना है, इस बारे में फ़ैसले लेने वाले कोड को AndroidX में नहीं लाया जा सका. इसलिए, हमने custom-tabs-client के उन हिस्सों को शामिल करने के लिए एक वैकल्पिक लाइब्रेरी बनाई जो androidx.browser में नहीं जा सकते थे. इस तरह, Android Browser Helper का जन्म हुआ.

Android Browser Helper को इस तरह से बनाया गया है कि इसमें ब्राउज़र के हिसाब से कोड शामिल किया जा सके. यह कोड सिर्फ़ Chrome के लिए नहीं, बल्कि दूसरे ब्राउज़र के लिए भी इस्तेमाल किया जा सकता है. साथ ही, यह ऐसे फ़ैसले ले सकता है जो लाइब्रेरी नहीं ले सकतीं. हमने इस मौके का इस्तेमाल करके, इन दोनों लाइब्रेरी की भूमिकाओं को अलग-अलग किया है:

  • androidx.browser में, उपयोगकर्ता के सिस्टम पर ब्राउज़र के साथ इंटरैक्ट करने के लिए बुनियादी ब्लॉक होते हैं.
  • Android Browser Helper में, इस्तेमाल करने में आसान और डिफ़ॉल्ट रूप से लागू होने वाले टूल शामिल हैं.

बूटस्ट्रैपिंग

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

पहला और सबसे पुराना प्रोजेक्ट svgomg-twa है. यह GitHub पर होस्ट किया जाने वाला Android प्रोजेक्ट है, जो भरोसेमंद वेब गतिविधि को लॉन्च करता है. इसे मूल रूप से एक डेमो प्रोजेक्ट के तौर पर डिज़ाइन किया गया था, जो बाद में टेंप्लेट के तौर पर इस्तेमाल किया जाने लगा. उपयोगकर्ता उस रिपॉज़िटरी को क्लोन कर सकते हैं और build.gradle फ़ाइल में बदलाव करके, अपनी वेबसाइट पर ले जा सकते हैं. इसके बाद, उसे बनाएं और किसी भी Java कोड को छुए बिना, भरोसेमंद वेब गतिविधि बनाएं. (डिजिटल एसेट लिंक की पुष्टि कराने के लिए ज़्यादा मेहनत करनी पड़ती है. ज़्यादा जानकारी के लिए यहां पढ़ें.)

svgomg-twa, custom-tabs-client पर निर्भर था. हालांकि, बाद में इसे Android Browser Helper (और androidx.browser) पर माइग्रेट कर दिया गया.

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

आने वाले समय में

हम svgomg-twa को दो वजहों से बंद कर रहे हैं:

  • Bubblewrap, डेवलपर के लिए पहले से भरा हुआ svgomg-twa जनरेट करता है. यह इंटरैक्टिव तरीके से काम करता है और वेब ऐप्लिकेशन मेनिफ़ेस्ट से कॉन्फ़िगरेशन ले सकता है. ऐसा हो सकता है कि पीडब्ल्यूए में पहले से ही कॉन्फ़िगरेशन मौजूद हो.
  • अगर डेवलपर को अपने Trusted Web Activity प्रोजेक्ट को शुरू करने का तरीका जानना है, तो वे Android Browser Helpers की डेमो डायरेक्ट्री देख सकते हैं.

नए डेवलपर को अपना प्रोजेक्ट जनरेट करने के लिए, Bubblewrap का इस्तेमाल करना चाहिए. अगर आपने पहले से ही svgomg-twa का इस्तेमाल किया जा रहा है और आपने इसमें कुछ बड़े बदलाव किए हैं, तो इसका इस्तेमाल जारी रखा जा सकता है. हालांकि, आपको अपडेट नहीं मिलेंगे.

हमारा मकसद Bubblewrap को ज़्यादा से ज़्यादा बेहतर बनाना है. इसलिए, अगर आपको कोई सुविधा नहीं मिल रही है या आपको कोई गड़बड़ी दिखती है, तो बेझिझक समस्या दर्ज करें.