আপনার অ্যান্ড্রয়েড অ্যাপে একটি PWA ব্যবহার করা

একটি অ্যান্ড্রয়েড অ্যাপে একটি PWA শুরু করুন

প্রোগ্রেসিভ ওয়েব অ্যাপস (PWA) হলো এমন ওয়েব অ্যাপ্লিকেশন যা অ্যাপের মতো বৈশিষ্ট্য ব্যবহার করে দ্রুত, নির্ভরযোগ্য এবং আকর্ষণীয় উচ্চমানের অভিজ্ঞতা তৈরি করে।

ওয়েবের ব্যাপক প্রসার রয়েছে এবং এটি ব্যবহারকারীদের নতুন অভিজ্ঞতা আবিষ্কারের জন্য শক্তিশালী উপায় প্রদান করে। কিন্তু ব্যবহারকারীরা তাদের অপারেটিং সিস্টেম স্টোরে অ্যাপ্লিকেশন খুঁজতেও অভ্যস্ত। অনেক ক্ষেত্রেই, সেই ব্যবহারকারীরা যে ব্র্যান্ড বা পরিষেবাটি খুঁজছেন তার সাথে আগে থেকেই পরিচিত থাকেন এবং তাদের মধ্যে একটি উচ্চ মাত্রার উদ্দেশ্যবোধ থাকে, যার ফলে গড়ের চেয়ে বেশি এনগেজমেন্ট মেট্রিক্স পাওয়া যায়।

প্লে স্টোর হলো অ্যান্ড্রয়েড অ্যাপের একটি স্টোর, এবং ডেভেলপাররা প্রায়শই তাদের অ্যান্ড্রয়েড অ্যাপ থেকে নিজেদের প্রগ্রেসিভ ওয়েব অ্যাপ (পিডব্লিউএ) খুলতে চান।

ট্রাস্টেড ওয়েব অ্যাক্টিভিটি একটি ওপেন স্ট্যান্ডার্ড, যা ব্রাউজারগুলোকে একটি সম্পূর্ণ ওয়েব প্ল্যাটফর্ম-সামঞ্জস্যপূর্ণ কন্টেইনার সরবরাহ করার সুযোগ দেয়, যা একটি অ্যান্ড্রয়েড অ্যাপের ভেতরে পিডব্লিউএ (PWA) রেন্ডার করে। এই ফিচারটি ক্রোমে উপলব্ধ এবং ফায়ারফক্স নাইটলি -তে এটি তৈরির কাজ চলছে।

বিদ্যমান সমাধানগুলো সীমিত ছিল

অ্যান্ড্রয়েড ওয়েবভিউ- এর মতো প্রযুক্তি অথবা কর্ডোভা-র মতো ফ্রেমওয়ার্ক ব্যবহার করে একটি অ্যান্ড্রয়েড অ্যাপে ওয়েব অভিজ্ঞতা অন্তর্ভুক্ত করা সবসময়ই সম্ভব ছিল।

অ্যান্ড্রয়েড ওয়েবভিউ-এর সীমাবদ্ধতা হলো, এটি ব্রাউজারের বিকল্প হিসেবে তৈরি করা হয়নি। অ্যান্ড্রয়েড ওয়েবভিউ হলো একটি ডেভেলপার টুল, যা অ্যান্ড্রয়েড অ্যাপে ওয়েব ইউআই ব্যবহারের জন্য তৈরি এবং এটি কন্টাক্ট পিকার , ফাইলসিস্টেম ইত্যাদির মতো আধুনিক ওয়েব প্ল্যাটফর্মের ফিচারগুলোতে সম্পূর্ণ অ্যাক্সেস দেয় না।

WebView-এর সীমাবদ্ধতাগুলো পূরণের জন্য Cordova ডিজাইন করা হয়েছিল, কিন্তু এর API-গুলো তখন Cordova পরিবেশের মধ্যেই সীমাবদ্ধ থাকে। এর মানে হলো, আপনার অ্যান্ড্রয়েড অ্যাপে Cordova API ব্যবহার করার জন্য আপনাকে একটি অতিরিক্ত কোডবেস রক্ষণাবেক্ষণ করতে হবে, যা ওপেন ওয়েবে থাকা আপনার PWA থেকে আলাদা।

এছাড়াও, ফিচার খুঁজে পাওয়ার বিষয়টি প্রায়শই প্রত্যাশা অনুযায়ী কাজ করে না এবং অ্যান্ড্রয়েড সংস্করণ ও OEM-গুলোর মধ্যে সামঞ্জস্যের সমস্যাও একটি উদ্বেগের কারণ হতে পারে। এই ধরনের কোনো সমাধান ব্যবহার করার সময়, ডেভেলপারদের অতিরিক্ত কোয়ালিটি অ্যাসিওরেন্স প্রক্রিয়ার প্রয়োজন হয় এবং বিকল্প সমাধান (workarounds) শনাক্ত ও তৈরি করার জন্য অতিরিক্ত ডেভেলপমেন্ট খরচ করতে হয়।

Trusted Web Activity হলো অ্যান্ড্রয়েডের ওয়েব অ্যাপের জন্য একটি নতুন কন্টেইনার।

ডেভেলপাররা এখন একটি অ্যান্ড্রয়েড অ্যাপের লঞ্চ অ্যাক্টিভিটি হিসেবে PWA অন্তর্ভুক্ত করার জন্য কন্টেইনার হিসেবে ট্রাস্টেড ওয়েব অ্যাক্টিভিটি ব্যবহার করতে পারেন। এই প্রযুক্তি ব্রাউজারকে কাজে লাগিয়ে PWA-টিকে ফুল স্ক্রিনে রেন্ডার করে, যা নিশ্চিত করে যে ট্রাস্টেড ওয়েব অ্যাক্টিভিটিটির সাথে ওয়েব প্ল্যাটফর্মের ফিচার এবং এপিআইগুলোর সামঞ্জস্যতা মূল ব্রাউজারের মতোই থাকে। ট্রাস্টেড ওয়েব অ্যাক্টিভিটি ব্যবহার করে অ্যান্ড্রয়েড অ্যাপ তৈরি করাকে আরও সহজ করার জন্য কিছু ওপেন সোর্স ইউটিলিটিও রয়েছে।

অন্যান্য সমাধানে উপলব্ধ নয় এমন আরেকটি সুবিধা হলো, কন্টেইনারটি ব্রাউজারের সাথে স্টোরেজ শেয়ার করে। লগইন স্টেট এবং ব্যবহারকারীর পছন্দসমূহ বিভিন্ন অভিজ্ঞতার মধ্যে নির্বিঘ্নে আদান-প্রদান করা হয়।

ব্রাউজার সামঞ্জস্যতা

এই ফিচারটি ক্রোমের ৭৫ নম্বর সংস্করণ থেকে উপলব্ধ রয়েছে এবং ফায়ারফক্স তাদের নাইটলি সংস্করণে এটি বাস্তবায়ন করেছে।

গুণমানের মানদণ্ড

ওয়েব ডেভেলপারদের অ্যান্ড্রয়েড অ্যাপে ওয়েব কন্টেন্ট অন্তর্ভুক্ত করার জন্য ট্রাস্টেড ওয়েব অ্যাক্টিভিটি ব্যবহার করা উচিত।

একটি বিশ্বস্ত ওয়েব অ্যাক্টিভিটির (Trusted Web Activity) অন্তর্ভুক্ত ওয়েব কন্টেন্টকে অবশ্যই PWA ইনস্টলযোগ্যতার মানদণ্ড পূরণ করতে হবে।

এছাড়াও, অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলো থেকে ব্যবহারকারীরা যে ধরনের আচরণ আশা করেন তার সাথে সামঞ্জস্য রাখতে, ক্রোম ৮৬-এ একটি পরিবর্তন আনা হয়েছে যেখানে নিম্নলিখিত পরিস্থিতিগুলো সামলাতে ব্যর্থ হলে সেটিকে ক্র্যাশ হিসেবে গণ্য করা হয়:

  • অ্যাপ্লিকেশন চালু করার সময় ডিজিটাল অ্যাসেট লিঙ্কগুলি যাচাই করতে ব্যর্থতা।
  • অফলাইন নেটওয়ার্ক রিসোর্স অনুরোধের জন্য HTTP 200 ফেরত দিতে ব্যর্থতা।
  • একটি নেভিগেশন অনুরোধ যা HTTP 404 বা 5xx ত্রুটি ফেরত দিচ্ছে।

যখন ট্রাস্টেড ওয়েব অ্যাক্টিভিটিতে এই ধরনের কোনো পরিস্থিতি ঘটে, তখন অ্যান্ড্রয়েড অ্যাপ্লিকেশনটি ব্যবহারকারীর কাছে ক্র্যাশ করে। আপনার সার্ভিস ওয়ার্কারে এই পরিস্থিতিগুলো কীভাবে সামাল দিতে হয়, সে বিষয়ে নির্দেশিকা দেখে নিন।

অ্যাপ্লিকেশনটিকে অবশ্যই নীতিমালার সম্মতির মতো অ্যান্ড্রয়েড-নির্দিষ্ট অতিরিক্ত মানদণ্ডও পূরণ করতে হবে।

এয়ারহর্নের লাইটহাউস স্কোর দেখানো একটি স্ক্রিনশট, যেখানে PWA ব্যাজ এবং পারফরম্যান্স স্কোর ১০০ রয়েছে।
লাইটহাউসের PWA ব্যাজটি দেখায় যে আপনার PWA ইনস্টলযোগ্যতার মানদণ্ড পূরণ করে কি না।

টুলিং

যেসব ওয়েব ডেভেলপার ট্রাস্টেড ওয়েব অ্যাক্টিভিটির সুবিধা নিতে চান, তাদের PWA-কে অ্যান্ড্রয়েড অ্যাপ্লিকেশনে রূপান্তর করার জন্য নতুন কোনো প্রযুক্তি বা এপিআই শেখার প্রয়োজন নেই। বাবলর‍্যাপ এবং PWABuilder একত্রে একটি লাইব্রেরি, কমান্ড লাইন ইন্টারফেস (CLI) এবং গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI)-এর আকারে ডেভেলপার টুলিং সরবরাহ করে।

বুদবুদ মোড়ক

Bubblewrap প্রজেক্টটি একটি NodeJS লাইব্রেরি এবং একটি কমান্ড লাইন ইন্টারফেস (CLI) আকারে অ্যান্ড্রয়েড অ্যাপ তৈরি করে।

টুলটি রান করে এবং ওয়েব ম্যানিফেস্টের URL-টি পাস করে একটি নতুন প্রজেক্ট বুটস্ট্র্যাপ করা হয়:

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

এই টুলটি প্রজেক্টটি বিল্ডও করতে পারে, এবং নিচের কমান্ডটি চালালে প্লে স্টোরে আপলোড করার জন্য প্রস্তুত একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন আউটপুট হিসেবে পাওয়া যাবে:

npx @bubblewrap/cli build

এই কমান্ডটি চালানোর পর, প্রোজেক্টের রুট ডিরেক্টরিতে app-release-signed.apk নামের একটি ফাইল পাওয়া যাবে। এই ফাইলটিই প্লে স্টোরে আপলোড করা হবে।

PWABuilder

PWABuilder ডেভেলপারদের বিদ্যমান ওয়েবসাইটগুলোকে প্রগ্রেসিভ ওয়েব অ্যাপে (PWA) রূপান্তর করতে সাহায্য করে। এটি Bubblewrap-এর সাথেও সংযুক্ত হয়ে একটি GUI ইন্টারফেস প্রদান করে, যার মাধ্যমে ঐ PWA-গুলোকে একটি অ্যান্ড্রয়েড অ্যাপে রূপান্তর করা যায়। PWABuilder টিম এই টুলটি ব্যবহার করে কীভাবে একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করা যায়, সে বিষয়ে একটি চমৎকার ব্লগ পোস্ট তৈরি করেছে।

অ্যান্ড্রয়েড অ্যাপে PWA-এর মালিকানা যাচাই করা হচ্ছে

একজন ডেভেলপার যখন একটি চমৎকার প্রগ্রেসিভ ওয়েব অ্যাপ তৈরি করেন, তখন তিনি চাইবেন না যে অন্য কোনো ডেভেলপার তার অনুমতি ছাড়া সেটি ব্যবহার করে একটি অ্যান্ড্রয়েড অ্যাপ তৈরি করুক। এমনটা যাতে না ঘটে, তা নিশ্চিত করার জন্য ‘ডিজিটাল অ্যাসেট লিঙ্কস’ নামক একটি টুল ব্যবহার করে অ্যান্ড্রয়েড অ্যাপ্লিকেশনটিকে প্রগ্রেসিভ ওয়েব অ্যাপটির সাথে যুক্ত করতে হয়।

Bubblewrap এবং PWABuilder অ্যান্ড্রয়েড অ্যাপ্লিকেশনের প্রয়োজনীয় কনফিগারেশনের কাজটি করে দেয়, কিন্তু একটি শেষ ধাপ বাকি থাকে, যা হলো PWA-তে assetlinks.json ফাইলটি যুক্ত করা।

এই ফাইলটি তৈরি করার জন্য, ডেভেলপারদের ব্যবহারকারীদের দ্বারা ডাউনলোড করা APK-টি সাইন করতে ব্যবহৃত কী-টির SHA-256 সিগনেচার প্রয়োজন হয়।

কী-টি বিভিন্ন উপায়ে তৈরি করা যেতে পারে, এবং ব্যবহারকারীদের কাছে পাঠানো APK-টি কোন কী দিয়ে স্বাক্ষরিত হয়েছে তা খুঁজে বের করার সবচেয়ে সহজ উপায় হলো সরাসরি প্লে স্টোর থেকে এটি ডাউনলোড করা।

ব্যবহারকারীদের কাছে একটি ত্রুটিপূর্ণ অ্যাপ্লিকেশন দেখানো এড়াতে, অ্যাপ্লিকেশনটি একটি ক্লোজড টেস্ট চ্যানেলে ডেপ্লয় করুন, এটিকে একটি টেস্ট ডিভাইসে ইনস্টল করুন এবং তারপর অ্যাপটির জন্য সঠিক assetlinks.json ফাইলটি তৈরি করতে পিটারের অ্যাসেট লিঙ্ক টুল ব্যবহার করুন। তৈরি করা assetlinks.json ফাইলটি যাচাই করা হচ্ছে এমন ডোমেইনের /.well-known/assetlinks.json এ উপলব্ধ করুন।

এরপর কোথায় যাবেন

একটি প্রগ্রেসিভ ওয়েব অ্যাপ হলো একটি উচ্চ মানের ওয়েব অভিজ্ঞতা। ট্রাস্টেড ওয়েব অ্যাক্টিভিটি হলো একটি নতুন উপায়, যার মাধ্যমে একটি অ্যান্ড্রয়েড অ্যাপ থেকে সেই উচ্চ মানের অভিজ্ঞতাগুলো পাওয়া যায়, যখন সেগুলো ন্যূনতম গুণমানের মানদণ্ড পূরণ করে।

আপনি যদি প্রোগ্রেসিভ ওয়েব অ্যাপস (PWA) নিয়ে কাজ শুরু করতে চান, তাহলে কীভাবে একটি চমৎকার PWA তৈরি করবেন সে বিষয়ে আমাদের নির্দেশিকাটি পড়ুন। যেসব ডেভেলপারদের ইতিমধ্যেই একটি PWA আছে, সেটি গুণমানের মানদণ্ড পূরণ করে কিনা তা যাচাই করতে লাইটহাউস (Lighthouse) ব্যবহার করুন।

এরপর, Bubblewrap বা PWABuilder ব্যবহার করে অ্যান্ড্রয়েড অ্যাপ্লিকেশনটি জেনারেট করুন, প্লে স্টোরের একটি ক্লোজড টেস্ট চ্যানেলে অ্যাপ্লিকেশনটি আপলোড করুন এবং Peter's Asset Link Tool ব্যবহার করে এটিকে PWA-এর সাথে যুক্ত করুন।

অবশেষে, আপনার অ্যাপ্লিকেশনটি ক্লোজড টেস্ট চ্যানেল থেকে প্রোডাকশনে নিয়ে যান!