הפעלת PWA באפליקציה ל-Android
אפליקציות Progressive Web App (PWA) הן אפליקציות אינטרנט שמשתמשות בתכונות שדומות לאלה של אפליקציות כדי ליצור חוויות איכותיות, מהירות, אמינות ומעניינות.
לאינטרנט יש פוטנציאל חשיפה מדהים, והוא מציע למשתמשים דרכים יעילות לגלות חוויות חדשות. אבל המשתמשים גם רגילים לחפש אפליקציות בחנות של מערכת ההפעלה שלהם. במקרים רבים, המשתמשים האלה כבר מכירים את המותג או השירות שהם מחפשים, ויש להם כוונה ברורה שמובילה למדדי התעניינות גבוהים מהממוצע.
חנות Play היא חנות לאפליקציות ל-Android, ומפתחים רוצים לעיתים קרובות לפתוח את האפליקציות שלהם מסוג Progressive Web App מהאפליקציות שלהם ל-Android.
פעילות Trusted Web היא תקן פתוח שמאפשר לדפדפנים לספק מאגר שתואם באופן מלא לפלטפורמת האינטרנט, ומציג אפליקציות אינטרנט מתקדמות (PWA) בתוך אפליקציה ל-Android. התכונה זמינה ב-Chrome, ונמצאת בפיתוח ב-Firefox Nightly.
הפתרונות הקיימים היו מוגבלים
תמיד אפשר היה לכלול חוויות אינטרנט באפליקציה ל-Android, באמצעות טכנולוגיות כמו Android WebView או מסגרות כמו Cordova.
המגבלה של Android WebView היא שהוא לא נועד להחליף את הדפדפן. Android WebView הוא כלי למפתחים שמאפשר להשתמש בממשק משתמש של אתר באפליקציה ל-Android, והוא לא מספק גישה מלאה לתכונות של פלטפורמת אינטרנט מודרנית כמו הכלי לבחירת אנשי קשר או מערכת הקבצים, בין היתר.
Cordova נועד לשפר את החסרונות של WebView, אבל ממשקי ה-API מוגבלים לסביבת Cordova. זה אומר שאתם צריכים לתחזק בסיס קוד נוסף כדי להשתמש בממשקי API של Cordova באפליקציה ל-Android, בנפרד מה-PWA באינטרנט הפתוח.
בנוסף, יכולת הגילוי של התכונות לא תמיד פועלת כצפוי, ויכולות להיות גם בעיות תאימות בין גרסאות Android לבין יצרני ציוד מקורי (OEM). כשמשתמשים באחד מהפתרונות האלה, המפתחים צריכים תהליכים נוספים של בקרת איכות ועלויות פיתוח נוספות כדי לזהות את הבעיות וליצור פתרונות עקיפים.
פעילות Trusted Web היא קונטיינר חדש לאפליקציות אינטרנט ב-Android
מפתחים יכולים עכשיו להשתמש בפעילות Trusted Web כמאגר שכולל PWA כפעילות להפעלה של אפליקציה ל-Android. הטכנולוגיה הזו משתמשת בדפדפן כדי לעבד את ה-PWA במסך מלא, וכך מבטיחה שלפעילות Trusted Web יש את אותה תאימות לתכונות ולממשקי ה-API של פלטפורמת האינטרנט כמו לדפדפן הבסיסי. יש גם כלי שירות בקוד פתוח שמאפשרים להטמיע אפליקציה ל-Android באמצעות Trusted Web Activity בקלות רבה יותר.
יתרון נוסף שלא קיים בפתרונות אחרים הוא שהמאגר משתף את האחסון עם הדפדפן. מצבי ההתחברות והעדפות המשתמשים משותפים בצורה חלקה בין הממשקים.
תאימות דפדפן
התכונה הזו זמינה ב-Chrome החל מגרסה 75, וב-Firefox היא הוטמעה בגרסה הלילית.
קריטריונים לאיכות
מפתחי אתרים צריכים להשתמש בפעילות Trusted Web כשהם רוצים לכלול תוכן מהאינטרנט באפליקציה ל-Android.
תוכן מהאינטרנט בפעילות Trusted Web חייב לעמוד בקריטריונים להתקנת PWA.
בנוסף, כדי להתאים את ההתנהגות למה שהמשתמשים מצפים מאפליקציות ל-Android, ב-Chrome 86 הוכנס שינוי שבו כשל בטיפול בתרחישים הבאים נחשב לקריסה:
- אימות Digital Asset Links נכשל בהשקת האפליקציה.
- לא הוחזר קוד HTTP 200 לבקשת משאב רשת אופליין.
- בקשת ניווט שמחזירה שגיאת HTTP מסוג 404 או 5xx".
כשמתרחש אחד מהתרחישים האלה בפעילות Trusted Web, האפליקציה ל-Android קורסת והמשתמש רואה את זה. כדאי לעיין בהנחיות לטיפול בתרחישים האלה ב-service worker.
האפליקציה צריכה גם לעמוד בקריטריונים נוספים שספציפיים ל-Android, כמו תאימות למדיניות.
כלים
מפתחי אתרים שרוצים להשתמש בפעילות Trusted Web לא צריכים ללמוד טכנולוגיות או ממשקי API חדשים כדי להפוך את ה-PWA שלהם לאפליקציה ל-Android. ביחד, Bubblewrap ו-PWABuilder מספקים כלי למפתחים בצורת ספרייה, ממשק שורת פקודה (CLI) וממשק משתמש גרפי (GUI).
פצפצים
הפרויקט Bubblewrap יוצר אפליקציות ל-Android בצורה של ספריית NodeJS וממשק שורת הפקודה (CLI).
כדי להפעיל פרויקט חדש, מריצים את הכלי ומעבירים את כתובת ה-URL של מניפסט האינטרנט:
npx @bubblewrap/cli init --manifest=https://pwa-directory.appspot.com/manifest.json
הכלי יכול גם לבנות את הפרויקט, והרצת הפקודה הבאה תפיק אפליקציה ל-Android שמוכנה להעלאה לחנות Play:
npx @bubblewrap/cli build
אחרי הרצת הפקודה הזו, קובץ בשם app-release-signed.apk יהיה זמין בתיקיית השורש של הפרויקט. זה הקובץ שיועלה לחנות Play.
PWABuilder
PWABuilder עוזר למפתחים להפוך אתרים קיימים ל-Progressive Web App. הוא גם משתלב עם Bubblewrap כדי לספק ממשק GUI לעטיפת אפליקציות ה-PWA האלה באפליקציה ל-Android. הצוות של PWABuilder הכין פוסט מצוין בבלוג שמסביר איך ליצור אפליקציה ל-Android באמצעות הכלי.
אימות הבעלות על ה-PWA באפליקציה ל-Android
מפתח שיוצר אפליקציית Progressive Web App מעולה לא ירצה שמפתח אחר ייצור אפליקציה ל-Android באמצעותה ללא רשותו. כדי למנוע את זה, צריך להתאים בין האפליקציה ל-Android לבין Progressive Web App באמצעות כלי שנקרא Digital Asset Links.
Bubblewrap ו-PWABuilder מטפלים בהגדרות הנדרשות באפליקציה ל-Android, אבל נשאר שלב אחרון: הוספת הקובץ assetlinks.json ל-PWA.
כדי ליצור את הקובץ הזה, המפתחים צריכים את חתימת SHA-256 של המפתח שמשמש לחתימה על ה-APK שהמשתמשים מורידים.
אפשר ליצור את המפתח בכמה דרכים, והדרך הכי קלה למצוא את המפתח שחתם על ה-APK שמוצג למשתמשי הקצה היא להוריד אותו מחנות Play עצמה.
כדי למנוע מצב שבו האפליקציה לא תפעל אצל המשתמשים, צריך לפרוס את האפליקציה בערוץ בדיקה סגור, להתקין אותה במכשיר בדיקה ואז להשתמש בכלי של פיטר לקישורי נכסים כדי ליצור את קובץ ה-assetlinks.json הנכון לאפליקציה. צריך להפוך את קובץ ה-assetlinks.json שנוצר לזמין בכתובת /.well-known/assetlinks.json, בדומיין שעובר אימות.
לאן ממשיכים מכאן
אפליקציית Progressive Web App היא חוויית גלישה באיכות גבוהה. פעילות Trusted Web היא דרך חדשה לפתוח את החוויות האיכותיות האלה מאפליקציה ל-Android, כשהן עומדות בקריטריונים המינימליים לאיכות.
אם אתם מתחילים לעבוד עם Progressive Web Apps, כדאי לקרוא את ההנחיות שלנו ליצירת PWA מוצלחת. מפתחים שכבר יש להם PWA יכולים להשתמש ב-Lighthouse כדי לבדוק אם האפליקציה עומדת בקריטריונים לאיכות.
אחר כך משתמשים ב-Bubblewrap או ב-PWABuilder כדי ליצור את האפליקציה ל-Android, מעלים את האפליקציה לערוץ בדיקה סגור בחנות Play ומשייכים אותה ל-PWA באמצעות Peter's Asset Link Tool.
בשלב האחרון, מעבירים את האפליקציה מערוץ הבדיקה בקבוצה מוגדרת לסביבת הייצור.