বিশ্বস্ত ওয়েব ক্রিয়াকলাপগুলির চারপাশে যথেষ্ট পরিমাণে ইকোসিস্টেম রয়েছে এবং সবকিছু কীভাবে সম্পর্কিত এবং আপনার কী ব্যবহার করা উচিত তা দেখা বেশ কঠিন। এই নিবন্ধটি এটি সমাধানের আশা করে।
আপনি যদি বিশ্বস্ত ওয়েব ক্রিয়াকলাপগুলিতে নতুন হন বা আপনার আজ ব্যবহার করা উচিত এমন সরঞ্জামগুলির প্রস্তাবিত সেট খুঁজছেন, এখানে আপনাকে যা সচেতন হতে হবে:
- Bubblewrap : একটি NodeJS টুল যা ডেভেলপারদের একটি Android APK তৈরি এবং তৈরি করতে দেয় যা একটি বিদ্যমান PWA মোড়ানো থাকে। উত্পন্ন অ্যাপ্লিকেশন বিশ্বস্ত ওয়েব কার্যকলাপ দ্বারা চালিত হয়, কিন্তু এটি বিকাশকারীর কাছে স্বচ্ছ৷ কোন অ্যান্ড্রয়েড উন্নয়ন অভিজ্ঞতা প্রয়োজন নেই. শুরু করতে Bubblewrap ডকুমেন্টেশন চেক করুন.
- android-browser-helper : একটি Android লাইব্রেরি যা বিশ্বস্ত ওয়েব অ্যাক্টিভিটি প্রোটোকলকে এনক্যাপসুলেট করে। ডেভেলপারদের জন্য প্রস্তাবিত যারা অ্যান্ড্রয়েড ডেভেলপমেন্টের সাথে পরিচিত এবং তাদের অ্যান্ড্রয়েড অ্যাপের একটি ক্রিয়াকলাপ হিসাবে বিশ্বস্ত ওয়েব অ্যাক্টিভিটিগুলি ব্যবহার করতে চান বা বাবল র্যাপ দ্বারা সমর্থিত নয় এমন কাস্টমাইজেশন করতে চান৷ android-browser-helper দিয়ে শুরু করতে, ডকুমেন্টেশন এবং আমাদের ডেমো পরীক্ষা করুন।
পরবর্তী বিভাগে একে অপরের সাথে সম্পর্কিত সমস্ত প্রকল্পের একটি সংক্ষিপ্ত সারাংশ দেওয়া হয়েছে। অবশেষে (সত্যিই কৌতূহলীদের জন্য) একটি ইতিহাস বিভাগ রয়েছে যা আপনাকে দেখানোর জন্য আমরা এখানে কীভাবে এসেছি এবং আমরা অদূর ভবিষ্যতে কোথায় যাওয়ার পরিকল্পনা করছি।
লাইব্রেরিগুলির একটি ওভারভিউ
এখানে প্রতিটি লাইব্রেরির একটি সংক্ষিপ্ত, একক বাক্যের সারাংশ রয়েছে যা আপনি ব্যবহার করে শেষ করতে পারেন:
- androidx.browser , ব্যবহারকারীর ডিভাইসে ইনস্টল করা ব্রাউজারের সাথে ইন্টারঅ্যাক্ট করার জন্য একটি Android লাইব্রেরি।
- অ্যান্ড্রয়েড ব্রাউজার হেল্পার , বিশ্বস্ত ওয়েব অ্যাক্টিভিটি ক্লায়েন্টদের জন্য androidx.browser-এ একটি লাইব্রেরি বিল্ডিং যা সুবিধার পদ্ধতি এবং সংবেদনশীল ডিফল্ট প্রদান করে।
- Bubblewrap , কোনো জাভা কোড স্পর্শ না করেই PWAs থেকে বিশ্বস্ত ওয়েব অ্যাক্টিভিটি তৈরি করার একটি টুল।
উপরন্তু, এই লাইব্রেরি/সরঞ্জামগুলির প্রতিটি একটি পুরানোটিকে প্রতিস্থাপন করে:
- androidx.browser কাস্টম ট্যাব সমর্থন লাইব্রেরি প্রতিস্থাপন করে।
- কাস্টম-ট্যাব-ক্লায়েন্টের পরিবর্তে অ্যান্ড্রয়েড ব্রাউজার হেল্পার ব্যবহার করা উচিত।
- svgomg-twa এর পরিবর্তে বাবল র্যাপ ব্যবহার করা উচিত।
ইতিহাস
অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরি
অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরি অ্যান্ড্রয়েড প্ল্যাটফর্মকে নতুন API এবং সামঞ্জস্যপূর্ণ বৈশিষ্ট্য সহ প্রসারিত করে৷ ব্যবহারকারীর সিস্টেমে ব্রাউজারগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য কাস্টম ট্যাব সমর্থন লাইব্রেরি সহ এটি একাধিক প্যাকেজ জুড়ে বিভক্ত। কাস্টম ট্যাব সাপোর্ট লাইব্রেরির ডেভেলপমেন্ট প্রাথমিকভাবে কাস্টম-ট্যাব-ক্লায়েন্ট গিটহাব রেপোতে করা হয়েছিল, পরিবর্তনগুলিকে আবার অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরিতে ফিরিয়ে আনা হয়েছে।
একটি কাস্টম ট্যাব একটি অ্যান্ড্রয়েড কার্যকলাপ যা একটি ওয়েব পৃষ্ঠা প্রদর্শন করতে একটি ব্রাউজার ব্যবহার করে। বিকাশকারীর জন্য প্রাথমিক সুবিধা হল এটি থিমযুক্ত হতে পারে এবং একটি ক্লোজ বোতাম রয়েছে, তাই ব্যবহারকারী এখনও বিকাশকারীর অ্যাপে থাকে (অ্যাপটি ছেড়ে সম্পূর্ণ ব্রাউজিং অভিজ্ঞতায় যাওয়ার পরিবর্তে)। একটি Android API হিসাবে, কাস্টম ট্যাবগুলি যে কোনও ব্রাউজার দ্বারা সমর্থিত হতে পারে এবং ব্যবহারকারীর ডিফল্ট ব্রাউজার ব্যবহার করবে (যদিও এটি বিকাশকারীরা ওভাররাইড করতে পারে)৷
যেহেতু বিশ্বস্ত ওয়েব অ্যাক্টিভিটিগুলি কাস্টম ট্যাবগুলির উপরে তৈরি করা হয়েছে, তারা এই কাস্টম-ট্যাব-ক্লায়েন্ট লাইব্রেরিতে তাদের জীবন শুরু করেছে৷ বিশ্বস্ত ওয়েব ক্রিয়াকলাপগুলি কাস্টম ট্যাবগুলির শীর্ষ বারটি সরিয়ে দেয় যখন ব্যবহারকারী অ্যাপের বিকাশকারীর মালিকানাধীন একটি সাইট ব্রাউজ করেন৷ এটি একটি নেটিভ অ্যান্ড্রয়েড অ্যাপের মধ্যে আপনার ওয়েবসাইটের নিরবিচ্ছিন্ন একীকরণের দরজা খুলে দেয় এবং এমন অ্যাপ তৈরি করতে ব্যবহার করা যেতে পারে যেখানে ওয়েব দ্বারা সমস্ত কার্যকারিতা সরবরাহ করা হয়।
অ্যান্ড্রয়েডএক্স
অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরিটিকে পরে অ্যান্ড্রয়েডএক্স হিসাবে পুনঃব্র্যান্ড করা হয়েছিল, যা নিজেই জেটপ্যাক নামে ডেভেলপার অভিজ্ঞতা উন্নত করার একটি বৃহত্তর প্রচেষ্টার অংশ। তাই, কাস্টম ট্যাব এবং বিশ্বস্ত ওয়েব ক্রিয়াকলাপগুলিকে কাস্টম ট্যাব সমর্থন লাইব্রেরি থেকে নতুন androidx.browser- এ যেতে হয়েছিল৷
কাস্টম-ট্যাব-ক্লায়েন্টে আমরা যে কোডটি লিখেছিলাম তার কিছু ট্রাস্টেড ওয়েব অ্যাক্টিভিটি হেল্পার ক্লাসের লাইব্রেরির জন্য উপযুক্ত ছিল, কিন্তু Android API-এর জন্য নয়। পুরানো ক্রোম সংস্করণগুলি পরীক্ষা করা এবং ব্যবহারকারীকে কীভাবে ডেটা সংরক্ষণ করা উচিত সে সম্পর্কে সিদ্ধান্ত নেওয়ার জন্য অনুরোধ জানানোর কোডগুলি AndroidX-এ স্থানান্তরিত হতে পারে না৷ অতএব, আমরা কাস্টম-ট্যাব-ক্লায়েন্টের এই অংশগুলিকে ধারণ করার জন্য একটি বিকল্প লাইব্রেরি তৈরি করেছি যা androidx.browser- এ যেতে পারে না, এবং তাই Android ব্রাউজার সহায়কের জন্ম হয়েছিল৷
অ্যান্ড্রয়েড ব্রাউজার হেল্পারটি এমন কোড ধারণ করার জন্য তৈরি করা হয়েছিল যা ব্রাউজারগুলির জন্য নির্দিষ্ট হতে পারে (শুধু ক্রোম নয়, আমরা অন্যান্য ব্রাউজারগুলির জন্য বিশেষভাবে কোডের জন্য উন্মুক্ত) এবং লাইব্রেরিগুলির উচিত নয় এমন সিদ্ধান্ত নিতে পারে৷ আমরা সাধারণত এই দুটি লাইব্রেরির ভূমিকা আলাদা করার এই সুযোগটি নিয়েছি:
- androidx.browser- এ ব্যবহারকারীর সিস্টেমে ব্রাউজারের সাথে ইন্টারঅ্যাক্ট করার জন্য মৌলিক বিল্ডিং ব্লক রয়েছে।
- অ্যান্ড্রয়েড ব্রাউজার হেল্পারে ব্যবহার করা সুবিধাজনক এবং বুদ্ধিমান ডিফল্ট বাস্তবায়ন রয়েছে।
বুটস্ট্র্যাপিং
ডেভেলপাররা ব্যস্ত মানুষ, অনেক কাজ করতে হয় এবং সময়সীমা মেলে। এটিতে সহায়তা করার জন্য, আমরা ব্যবহারকারীদের তাদের বিশ্বস্ত ওয়েব কার্যকলাপ বুটস্ট্র্যাপ করতে দেওয়ার জন্য দুটি সরঞ্জাম তৈরি করেছি৷
প্রথম (এবং প্রাচীনতম) হল svgomg-twa , যা একটি GitHub হোস্ট করা Android প্রকল্প যা একটি বিশ্বস্ত ওয়েব কার্যকলাপ চালু করে। এটি মূলত একটি ডেমো প্রকল্প হিসাবে ডিজাইন করা হয়েছিল যা আরও একটি টেমপ্লেটে বিকশিত হয়েছিল। ব্যবহারকারীরা সেই রেপো ক্লোন করতে পারে এবং build.gradle ফাইলটিকে তাদের নিজস্ব ওয়েবসাইটে নির্দেশ করতে, এটি তৈরি করতে এবং কোনও জাভা কোড স্পর্শ না করেই একটি বিশ্বস্ত ওয়েব কার্যকলাপ তৈরি করতে পারে৷ (ডিজিটাল অ্যাসেট লিঙ্কগুলি যাচাই করার জন্য আরও প্রচেষ্টার প্রয়োজন, এখানে আরও পড়ুন।)
svgomg-twa কাস্টম-ট্যাব-ক্লায়েন্টের উপর নির্ভর করে শুরু হয়েছিল, কিন্তু তারপরে Android ব্রাউজার হেল্পারে (এবং ট্রানজিটিভভাবে androidx.browser) চলে গেছে।
নতুন এবং চকচকে টুল হল Bubblewrap , একটি Node.js টুল যা আপনার ওয়েব অ্যাপ ম্যানিফেস্ট গ্রহণ করবে এবং আপনার জন্য একটি বিশ্বস্ত ওয়েব কার্যকলাপ তৈরি করবে। এটি একটি বিদ্যমান PWA থেকে একটি বিশ্বস্ত ওয়েব ক্রিয়াকলাপ তৈরি করার সবচেয়ে সহজ উপায় এবং এর জন্য কোনো Android বিকাশ জ্ঞানের প্রয়োজন নেই৷
অদূর ভবিষ্যতে
আমরা দুটি কারণে svgomg-twa অবমূল্যায়ন করব:
- Bubblewrap মূলত একজন ডেভেলপারের জন্য একটি ভরাট svgomg-twa তৈরি করে। এটি ইন্টারেক্টিভভাবে এটি করে এবং একটি ওয়েব অ্যাপ ম্যানিফেস্ট থেকে কনফিগারেশন নিতে পারে (যা একটি PWA এর আগে থেকেই থাকবে)।
- বিকাশকারীরা যদি স্ক্র্যাচ থেকে তাদের নিজস্ব বিশ্বস্ত ওয়েব অ্যাক্টিভিটি প্রকল্প কীভাবে শুরু করতে হয় তার জন্য একটি রেফারেন্স চান তবে তারা Android ব্রাউজার হেল্পার ডেমো ডিরেক্টরিটি দেখতে পারেন।
নতুন ডেভেলপারদের পরিবর্তে তাদের প্রজেক্ট তৈরি করতে Bubblewrap ব্যবহার করা উচিত। আপনি যদি ইতিমধ্যেই svgomg-twa ব্যবহার করে থাকেন এবং কিছু ভারী পরিবর্তন করে থাকেন, তাহলে আপনি তা চালিয়ে যেতে পারবেন, কিন্তু আপডেট পাবেন না।
আমরা Bubblewrap যতটা সম্ভব সক্ষম করার পরিকল্পনা করছি, তাই যদি কোনও সুস্পষ্ট বৈশিষ্ট্য অনুপস্থিত থাকে বা আপনি একটি বাগ দেখতে পান, তাহলে নির্দ্বিধায় একটি সমস্যা তৈরি করুন ৷