שימוש ב-PWA באפליקציה ל-Android

הפעלת PWA באפליקציית Android

אפליקציות אינטרנט מתקדמות (PWA) הן אפליקציות אינטרנט שמשתמשות בתכונות דמויות אפליקציה כדי ליצור חוויות איכותיות, מהירות, אמינות ומושכות.

לאינטרנט יש פוטנציאל חשיפה עצום, והוא מציע למשתמשים דרכים יעילות לגלות חוויות חדשות. אבל המשתמשים רגילים גם לחפש אפליקציות בחנות של מערכת ההפעלה. במקרים רבים, המשתמשים האלה כבר מכירים את המותג או השירות שהם מחפשים, ויש להם כוונת רכישה גבוהה שמובילה למדדי מעורבות גבוהים מהממוצע.

חנות Play היא חנות של אפליקציות ל-Android, ומפתחים רוצים לעיתים קרובות לפתוח את אפליקציות ה-PWA שלהם מתוך אפליקציות Android.

Trusted Web Activity הוא תקן פתוח שמאפשר לדפדפנים לספק קונטיינר תואם לחלוטין לפלטפורמת אינטרנט, שמציג אפליקציות PWA בתוך אפליקציית Android. התכונה זמינה ב-Chrome, ובשלבי פיתוח ב-Firefox Nightly.

הפתרונות הקיימים היו מוגבלים

תמיד הייתה אפשרות לכלול חוויות אינטרנט באפליקציית Android באמצעות טכנולוגיות כמו Android WebView או מסגרות כמו Cordova.

המגבלה של Android WebView היא שהוא לא מיועד להחליף דפדפן. ‫Android WebView הוא כלי למפתחים שמאפשר להשתמש בממשק משתמש אינטרנטי באפליקציית Android, אבל הוא לא מספק גישה מלאה לתכונות של פלטפורמת אינטרנט מודרנית, כמו כלי לבחירת אנשי קשר או מערכת קבצים, בין היתר.

‫Cordova נועד לשפר את החסרונות של WebView, אבל ממשקי ה-API מוגבלים לסביבת Cordova. כלומר, צריך לתחזק בסיס קוד נוסף לשימוש בממשקי Cordova API באפליקציית Android, בנפרד מה-PWA באינטרנט הפתוח.

בנוסף, גילוי התכונות לא תמיד פועל כצפוי, ובעיות תאימות בין גרסאות Android ויצרני ציוד מקורי (OEM) יכולות גם הן להוות בעיה. כשמשתמשים באחד מהפתרונות האלה, מפתחים צריכים להשתמש בתהליכים נוספים של בקרת איכות ולשאת בעלויות פיתוח נוספות כדי לזהות בעיות וליצור פתרונות עקיפים.

פעילות Trusted Web היא מאגר חדש לאפליקציות אינטרנט ב-Android

מפתחים יכולים עכשיו להשתמש בפעילות אינטרנט מהימנה כקונטיינר כדי לכלול PWA כפעילות הפעלה לאפליקציית Android. הטכנולוגיה הזו מסתמכת על הדפדפן כדי לעבד את ה-PWA במסך מלא, וכך לוודא שלפעילות האינטרנט המהימנה יש את אותה תאימות לתכונות של פלטפורמת האינטרנט ולממשקי ה-API שקיימים בדפדפן הבסיסי. יש גם כלי קוד פתוח שהופכים את ההטמעה של אפליקציית Android באמצעות פעילות Trusted Web לקלה עוד יותר.

יתרון נוסף שלא קיים בפתרונות אחרים הוא שהמאגר חולק את האחסון עם הדפדפן. מצבי הכניסה והעדפות המשתמשים משותפים בצורה חלקה בין חוויות השימוש.

תאימות לדפדפנים

התכונה זמינה ב-Chrome מאז גרסה 75, ו-Firefox הטמיעו אותה בגרסת ה-Nightly שלהם.

קריטריונים של איכות

מפתחי אתרים צריכים להשתמש בפעילות Trusted Web כשהם רוצים לכלול תוכן מהאינטרנט באפליקציית Android.

תוכן אינטרנט בפעילות Trusted Web צריך לעמוד בקריטריונים להתקנת PWA.

בנוסף, כדי להתאים את ההתנהגות למה שהמשתמשים מצפים מאפליקציות ל-Android, ב-Chrome 86 בוצע שינוי שבו אי טיפול בתרחישים הבאים נחשב לקריסה:

  • האימות של Digital Asset Links נכשל בהשקת האפליקציה.
  • הבקשה למשאב רשת במצב אופליין לא החזירה HTTP 200.
  • בקשת ניווט שמחזירה שגיאת HTTP 404 או 5xx".

אם אחד מהתרחישים האלה מתרחש בפעילות Trusted Web, האפליקציה ל-Android קורסת ומוצגת למשתמש. כדאי לעיין בהנחיות לטיפול בתרחישים האלה ב-service worker.

האפליקציה צריכה לעמוד גם בקריטריונים נוספים שספציפיים ל-Android, כמו עמידה בדרישות המדיניות.

צילום מסך שבו מוצג הציון של Lighthouse לגבי AirHorn, עם תג PWA וציון ביצועים של 100.
התג PWA ב-Lighthouse מראה אם ה-PWA שלכם עומד בקריטריונים של אפשרות ההתקנה.

כלים

מפתחי אתרים שרוצים להשתמש ב-פעילות 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 לאפליקציית האינטרנט המתקדמת באמצעות כלי שנקרא Digital Asset Links.

‫Bubblewrap ו-PWABuilder מטפלים בהגדרה הנדרשת באפליקציה ל-Android, אבל נשאר שלב אחרון: הוספת הקובץ assetlinks.json ל-PWA.

כדי ליצור את הקובץ הזה, המפתחים צריכים את חתימת SHA-256 של המפתח שמשמש לחתימה על ה-APK שהמשתמשים מורידים.

אפשר ליצור את המפתח בכמה דרכים, והדרך הכי קלה לגלות איזה מפתח חתם על ה-APK שמוצג למשתמשי הקצה היא להוריד אותו מחנות Play.

כדי למנוע הצגה של אפליקציה פגומה למשתמשים, צריך לפרוס את האפליקציה בערוץ בדיקה בקבוצה מוגדרת, להתקין אותה במכשיר בדיקה ואז להשתמש בכלי Peter's Asset Link Tool כדי ליצור את קובץ ה-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.

לבסוף, מעבירים את האפליקציה מערוץ הבדיקה בקבוצה מוגדרת לסביבת הייצור.