הנחת הקרקע

פיטר קון
פיטר קון

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

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

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

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

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

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

  • androidx.browser, ספריית Android לאינטראקציה עם הדפדפן שמותקן במכשיר של המשתמש.
  • העוזר לדפדפן Android, ספרייה שמבוססת על דפדפן androidx.browser ללקוחות של פעילות אינטרנט מהימנה ומספקת שיטות נוחות וברירות מחדל הגיוניות.
  • בועות – כלי ליצירת פעילויות מהימנות באינטרנט מאפליקציות של PWA, בלי לגעת בקוד Java.

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

היסטוריה

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

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

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

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

AndroidX

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

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

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

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

רכיב אתחול

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

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

svgomg-twa התחיל לפעול בהתאם ל-custom-tabs-client, אבל אחר כך עבר ל-Android BrowserHelp (וגם androidx.browser).

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

עתיד קרוב

אנחנו נוציא משימוש את svgomg-twa משתי סיבות:

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

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

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