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

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

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

חנות Play היא חנות לאפליקציות ל-Android, ולעיתים קרובות מפתחים רוצים לפתוח את האפליקציות שלהם מסוג Progressive Web App מהאפליקציות שלהם ל-Android.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

כלים

מפתחי אינטרנט שרוצים ליהנות מהיתרונות של Trusted Web Activity לא צריכים ללמוד טכנולוגיות או ממשקי 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 עוזר למפתחים להפוך אתרים קיימים לאפליקציות אינטרנט מתקדמות (PWA). הוא גם משתלב עם בועת בועות כדי לספק ממשק 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 עצמה.

כדי להימנע מהצגת אפליקציה שבורה למשתמשים, צריך לפרוס את האפליקציה בערוץ בדיקה סגור, להתקין אותה במכשיר בדיקה ואז להשתמש בכלי לקישור נכסים של Peter כדי ליצור את קובץ assetlinks.json הנכון לאפליקציה. צריך להפוך את קובץ assetlinks.json שנוצר לזמין בכתובת /.well-known/assetlinks.json, בדומיין שרוצים לאמת.

מה השלב הבא?

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

אם אתם רק מתחילים להשתמש ב-Progressive Web Apps, כדאי לכם לקרוא את ההנחיות שלנו ליצירת PWA מעולה. מפתחים שכבר יצרו אפליקציית PWA יכולים להשתמש ב-Lighthouse כדי לוודא שהיא עומדת בקריטריונים של האיכות.

לאחר מכן, משתמשים ב-Bubblewrap או ב-PWABuilder כדי ליצור את אפליקציית Android, מעלים את האפליקציה לערוץ בדיקה סגור בחנות Play ומתאימים אותה ל-PWA באמצעות הכלי לקישור נכסים של Peter.

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