شروع یک PWA در یک برنامه اندروید
برنامههای وب پیشرونده (PWA) برنامههای وبی هستند که از ویژگیهای شبیه به اپلیکیشن برای ایجاد تجربیات با کیفیت بالا، سریع، قابل اعتماد و جذاب استفاده میکنند.
وب دسترسی فوقالعادهای دارد و راههای قدرتمندی را برای کاربران جهت کشف تجربیات جدید ارائه میدهد. اما کاربران همچنین به جستجوی برنامهها در فروشگاه سیستم عامل خود عادت دارند. این کاربران، در بسیاری از موارد، از قبل با برند یا خدماتی که به دنبال آن هستند آشنا هستند و سطح بالایی از هدفمندی دارند که منجر به معیارهای تعامل بالاتر از حد متوسط میشود.
فروشگاه پلی استور، فروشگاهی برای برنامههای اندروید است و توسعهدهندگان اغلب میخواهند برنامههای وب پیشرونده خود را از برنامههای اندروید خود باز کنند.
فعالیت وب قابل اعتماد (Trusted Web Activity) یک استاندارد باز است که به مرورگرها اجازه میدهد یک کانتینر کاملاً سازگار با پلتفرم وب ارائه دهند که PWAها را درون یک برنامه اندروید رندر میکند. این ویژگی در کروم موجود است و در فایرفاکس نایتلی (Firefox Nightly) در حال توسعه است.
راهحلهای موجود محدود بودند
همیشه این امکان وجود داشته است که با استفاده از فناوریهایی مانند Android WebView یا چارچوبهایی مانند Cordova ، تجربیات وب را در یک برنامه اندروید بگنجانید.
محدودیت Android WebView این است که به عنوان جایگزینی برای مرورگر در نظر گرفته نشده است. Android WebView یک ابزار توسعهدهنده برای استفاده از رابط کاربری وب در یک برنامه اندروید است و دسترسی کامل به ویژگیهای پلتفرم وب مدرن مانند انتخابگر مخاطب یا سیستم فایل و موارد دیگر را فراهم نمیکند.
کوردووا برای رفع کاستیهای وبویو طراحی شده است، اما APIها به محیط کوردووا محدود میشوند. این بدان معناست که شما باید یک کدبیس اضافی برای استفاده از APIهای کوردووا برای برنامه اندروید خود، جدا از PWA خود در وب باز، نگهداری کنید.
علاوه بر این، قابلیت کشف ویژگیها اغلب آنطور که انتظار میرود کار نمیکند و مشکلات سازگاری بین نسخههای اندروید و تولیدکنندگان اصلی تجهیزات (OEM) نیز میتواند مشکلساز باشد. هنگام استفاده از یکی از این راهحلها، توسعهدهندگان به فرآیندهای تضمین کیفیت اضافی نیاز دارند و هزینه توسعه اضافی برای شناسایی و ایجاد راهحلها متحمل میشوند.
فعالیت وب قابل اعتماد، یک کانتینر جدید برای برنامههای وب در اندروید است.
توسعهدهندگان اکنون میتوانند از یک فعالیت وب قابل اعتماد (Trusted Web Activity) به عنوان یک ظرف برای گنجاندن یک PWA به عنوان یک فعالیت راهاندازی برای یک برنامه اندروید استفاده کنند. این فناوری از مرورگر برای رندر PWA به صورت تمام صفحه استفاده میکند و تضمین میکند که فعالیت وب قابل اعتماد همان سازگاری را با ویژگیها و APIهای پلتفرم وب دارد که مرورگر اصلی دارد. همچنین ابزارهای متنبازی وجود دارد که پیادهسازی یک برنامه اندروید با استفاده از یک فعالیت وب قابل اعتماد را آسانتر میکند.
مزیت دیگری که در سایر راهحلها وجود ندارد این است که کانتینر فضای ذخیرهسازی را با مرورگر به اشتراک میگذارد. وضعیتهای ورود و تنظیمات کاربر به طور یکپارچه در بین تجربهها به اشتراک گذاشته میشوند.
سازگاری مرورگرها
این ویژگی از نسخه ۷۵ در کروم موجود بوده و فایرفاکس هم آن را در نسخه شبانه خود پیادهسازی کرده است.
معیارهای کیفیت
توسعهدهندگان وب باید وقتی میخواهند محتوای وب را در یک برنامه اندروید قرار دهند، از یک فعالیت وب قابل اعتماد (Trusted Web Activity) استفاده کنند.
محتوای وب در یک فعالیت وب قابل اعتماد باید معیارهای نصب PWA را داشته باشد.
علاوه بر این، برای مطابقت با رفتاری که کاربران از برنامههای اندروید انتظار دارند، کروم ۸۶ تغییری را ارائه کرد که در آن عدم مدیریت سناریوهای زیر، خرابی محسوب میشود:
- عدم تأیید لینکهای دارایی دیجیتال در زمان راهاندازی برنامه.
- عدم بازگشت HTTP 200 برای درخواست منابع شبکه آفلاین.
- یک درخواست ناوبری که خطای HTTP 404 یا 5xx را برمیگرداند.
وقتی یکی از این سناریوها در Trusted Web Activity اتفاق میافتد، باعث از کار افتادن برنامه اندروید توسط کاربر میشود. برای مدیریت این سناریوها در service worker خود، به راهنمای مربوطه مراجعه کنید.
این برنامه همچنین باید معیارهای خاص اندروید مانند انطباق با خطمشیها را نیز برآورده کند.

ابزارسازی
توسعهدهندگان وب که میخواهند از Trusted Web Activity بهرهمند شوند، نیازی به یادگیری فناوریها یا APIهای جدید برای تبدیل PWA خود به یک برنامه اندروید ندارند. Bubblewrap و PWABuilder با هم، ابزارهای توسعهدهندگان را در قالب یک کتابخانه، رابط خط فرمان (CLI) و رابط کاربری گرافیکی (GUI) ارائه میدهند.
حبابپیچ
پروژه Bubblewrap برنامههای اندروید را در قالب یک کتابخانه NodeJS و یک رابط خط فرمان (CLI) تولید میکند.
بوتاسترپ کردن یک پروژه جدید با اجرای ابزار و ارسال URL مانیفست وب انجام میشود:
npx @bubblewrap/cli init --manifest=https://pwa-directory.appspot.com/manifest.json
این ابزار همچنین میتواند پروژه را بسازد و اجرای دستور زیر، یک برنامه اندروید آماده برای آپلود در فروشگاه Play را تولید میکند:
npx @bubblewrap/cli build
پس از اجرای این دستور، فایلی به نام app-release-signed.apk در دایرکتوری ریشه پروژه در دسترس خواهد بود. این فایلی است که در فروشگاه Play آپلود خواهد شد.
سازنده PWA
PWABuilder به توسعهدهندگان کمک میکند تا وبسایتهای موجود را به برنامههای وب پیشرونده تبدیل کنند. همچنین با Bubblewrap ادغام میشود تا یک رابط کاربری گرافیکی برای قرار دادن این PWAها در یک برنامه اندروید فراهم کند. تیم PWABuilder یک پست وبلاگ عالی در مورد نحوه تولید یک برنامه اندروید با استفاده از این ابزار منتشر کرده است.
تأیید مالکیت PWA در برنامه اندروید
توسعهدهندهای که یک برنامه وب پیشرونده عالی میسازد، نمیخواهد توسعهدهنده دیگری بدون اجازه او یک برنامه اندروید با آن بسازد. برای اطمینان از اینکه این اتفاق نمیافتد، برنامه اندروید باید با استفاده از ابزاری به نام Digital Asset Links با برنامه وب پیشرونده جفت شود.
Bubblewrap و PWABuilder پیکربندیهای لازم را روی برنامه اندروید انجام میدهند، اما یک مرحله آخر باقی میماند که اضافه کردن فایل assetlinks.json به PWA است.
برای تولید این فایل، توسعهدهندگان به امضای SHA-256 کلید مورد استفاده برای امضای APK که توسط کاربران دانلود میشود، نیاز دارند.
این کلید را میتوان به روشهای مختلفی تولید کرد و سادهترین راه برای پیدا کردن کلیدی که APK ارائه شده به کاربران نهایی را امضا کرده است، دانلود آن از خود فروشگاه Play است.
برای جلوگیری از نمایش یک برنامهی خراب به کاربران، برنامه را در یک کانال آزمایشی بسته مستقر کنید، آن را در یک دستگاه آزمایشی نصب کنید، سپس از ابزار پیوند دارایی پیتر برای تولید فایل assetlinks.json صحیح برای برنامه استفاده کنید. فایل assetlinks.json تولید شده را در /.well-known/assetlinks.json ، در دامنهای که اعتبارسنجی میشود، در دسترس قرار دهید.
کجا برویم؟
یک برنامه وب پیشرونده یک تجربه وب با کیفیت بالا است. فعالیت وب قابل اعتماد (Trusted Web Activity) راهی جدید برای باز کردن این تجربیات با کیفیت بالا از یک برنامه اندروید است، زمانی که آنها حداقل معیارهای کیفیت را برآورده کنند.
اگر تازه شروع به کار با برنامههای وب پیشرونده کردهاید، راهنمای ما در مورد نحوه ساخت یک PWA عالی را مطالعه کنید. توسعهدهندگانی که از قبل PWA دارند، میتوانند از Lighthouse برای تأیید مطابقت آن با معیارهای کیفیت استفاده کنند.
سپس، از Bubblewrap یا PWABuilder برای تولید برنامه اندروید استفاده کنید، برنامه را در یک کانال آزمایشی بسته در فروشگاه Play آپلود کنید و با استفاده از ابزار پیوند دارایی پیتر، آن را با PWA جفت کنید.
در نهایت، برنامه خود را از کانال آزمایشی بسته به محیط عملیاتی منتقل کنید!