הנחת הקרקע

Peter Conn
Peter Conn

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

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

  • Bubblewrap: כלי NodeJS שמאפשר למפתחים ליצור ולפתח קובץ APK ל-Android שמארז אפליקציית PWA קיימת. האפליקציה שנוצרת מופעלת על ידי Trusted Web Activities, אבל המפתח לא רואה את זה. לא נדרש ניסיון בפיתוח ל-Android. כדי להתחיל, כדאי לעיין במסמכי העזרה של Bubblewrap.
  • android-browser-helper: ספריית Android שמכילה את פרוטוקול Trusted Web Activities. מומלץ למפתחים שמכירים את הפיתוח ב-Android ורוצים להשתמש ב-Trusted Web Activities כאחת מהפעילויות באפליקציית Android שלהם, או לבצע התאמות אישיות שלא נתמכות ב-Bubblewrap. כדי להתחיל להשתמש ב-android-browser-helper, כדאי לעיין במסמכי העזרה ובדמואים שלנו.

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

סקירה כללית של הספריות

הנה סיכום קצר של כל אחת מהספריות שעשויות להועיל לכם:

  • androidx.browser, ספריית Android ליצירת אינטראקציה עם הדפדפן שמותקן במכשיר של המשתמש.
  • Android Browser Helper, ספרייה שמבוססת על androidx.browser ללקוחות של Trusted Web Activity, שמספקת שיטות נוחות וערכי ברירת מחדל הגיוניים.
  • Bubblewrap, כלי ליצירת פעילויות מהימנות באינטרנט מאפליקציות PWA בלי לגעת בקוד Java.

בנוסף, כל אחת מהספריות או מהכלים האלה מחליפה ספרייה או כלי ישנים יותר:

היסטוריה

ספריית התמיכה של Android

Android Support Library מרחיבה את פלטפורמת Android באמצעות ממשקי API חדשים ותכונות תאימות. הוא מחולק למספר חבילות, כאשר Custom Tabs Support Library מכילה פונקציונליות ליצירת אינטראקציה עם דפדפנים במערכת של המשתמש. הפיתוח של ספריית התמיכה של הכרטיסיות בהתאמה אישית בוצע בעיקר במאגר GitHub‏ custom-tabs-client, והשינויים הועברו חזרה ל-Android Support Library.

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

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

AndroidX

Android Support Library עברה מאוחר יותר מיתוג מחדש כ-AndroidX, שהוא חלק ממאמץ רחב יותר לשיפור חוויית המפתחים שנקרא JetPack. לכן, הכרטיסיות המותאמות ופעילויות Trusted Web הועברו מספריית התמיכה של הכרטיסיות המותאמות אל androidx.browser החדש.

חלק מהקוד שכתבנו ב-custom-tabs-client היה מתאים לספרייה של כיתות עזר של Trusted Web Activity, אבל לא ל-Android API. לא ניתן היה להעביר ל-AndroidX קוד שמטרתו לבדוק אם יש גרסאות Chrome לא מעודכנות, להציג למשתמש בקשה לעדכן או לקבל החלטות לגבי אופן האחסון של הנתונים. לכן יצרנו ספרייה חלופית שתכלול את החלקים האלה של custom-tabs-client שלא ניתן היה להעביר ל-androidx.browser, וכך נוצר Android Browser Helper.

Android Browser Helper נוצר כדי להכיל קוד שיכול להיות ספציפי לדפדפנים (לא רק Chrome, אנחנו פתוחים לקוד שמיועד לדפדפנים אחרים) ולקבל החלטות קונקרטיות שספריות לא יכולות לקבל. נצלנו את ההזדמנות הזו כדי להפריד באופן כללי את התפקידים של שתי הספריות האלה:

  • androidx.browser מכיל את אבני הבניין הבסיסיות לאינטראקציה עם דפדפנים במערכת של המשתמש.
  • Android Browser Helper מכיל הטמעות ברירת מחדל נוחות וחכמות.

אתחול (bootstrapping)

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

הפרויקט הראשון (והוותיק ביותר) הוא svgomg-twa, פרויקט Android שמתארח ב-GitHub ומפעיל פעילות מאומתת באינטרנט. הוא תוכנן במקור כפרויקט הדגמה, והפך לתבנית. המשתמשים יכולים לשכפל את המאגר הזה ולשנות את הקובץ build.gradle כך שיצביע לאתר שלהם, ליצור אותו וליצור פעילות מהימנה באינטרנט בלי לגעת בקוד Java. (אימות הקישורים לנכסים הדיגיטליים דורש מאמץ נוסף. מידע נוסף זמין כאן).

בהתחלה, svgomg-twa היה תלוי ב-custom-tabs-client, אבל לאחר מכן עבר ל-Android Browser Helper (ובאופן עקיף ל-androidx.browser).

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

בעתיד הקרוב

אנחנו נפסיק את השימוש ב-svgomg-twa משתי סיבות:

  • Bubblewrap יוצר למעשה קובץ svgomg-twa מלא למפתח. הוא עושה זאת באופן אינטראקטיבי ויכול לקבל את ההגדרות ממניפסט של אפליקציית אינטרנט (שצפוי שכבר יהיה ב-PWA).
  • מפתחים שרוצים לקבל הנחיות ליצירת פרויקט משלהם של פעילות מאומתת באינטרנט מהתחלה יכולים לעיין בספרייה demos של Android Browser Helpers.

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

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