ले ऑफ़ द लैंड

पीटर कॉन
पीटर कॉन

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

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

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

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

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

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

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

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

इतिहास

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

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

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

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

AndroidX

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

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

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

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

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

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

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

svgomg-twa, custom-tabs-client के आधार पर शुरू हुआ, लेकिन बाद में Android ब्राउज़र हेल्पर (और ट्रांज़िट रूप से androidx.ब्राउज़र) पर चला गया.

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

नियर फ़्यूचर

हम svgomg-twa का इस्तेमाल दो वजहों से बंद कर देंगे:

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

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

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