תכנות של המיני-אפליקציה

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

רכיבים

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

מודל צפייה במודל

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

חשיבה חוכמת-דף

ניפוי באגים באפליקציות מוקטנות מראה שלמעשה מדובר באפליקציות מרובות דפים (MPA). יש לכך יתרונות רבים. למשל, האפשרות הזו מאפשרת ניתוב טריוויאלי וסגנון ללא התנגשויות בין כל דף. אנשים החילו בהצלחה ארכיטקטורות MPA על אפליקציות מסוג Progressive Web Apps. חשיבה בתוך דפים גם עוזרת לנהל משאבים כמו קובצי ה-CSS וה-JavaScript של כל דף, ונכסים אחרים כמו תמונות וסרטונים. הדבר החשוב ביותר הוא שאם לא תעלו שום דבר אחר, תקבלו פיצול קוד מבוסס-מסלול בחינם. במקרה כזה, כל דף בהגדרתו טוען רק את מה שהוא צריך לתפקד.

תהליך build

למיני אפליקציות אין תהליך build גלוי. באינטרנט, כלי פיתוח מודרניים כמו Snowpack משתמשים במערכת המודול המובנית של JavaScript (שנקראת ESM) כדי למנוע עבודה מיותרת ולהישאר מהירים בלי קשר לגודל של הפרויקט. מדובר בטכנולוגיות כמו Web Bundle בתחילת הדרך, אבל קל להוסיף אותן לתהליך ה-build.

יכולות רבות עוצמה

לפלטפורמת האינטרנט נוספו לאחרונה יכולות חדשות רבות. עכשיו אפשר לגשת למכשירים באמצעות Bluetooth, USB, HID, serial ו-NFC. במקומות שבהם מיני אפליקציות פועלות ברכיבי WebView ותלויות בגשר JavaScript, באינטרנט היכולות המתקדמות האלה זמינות באופן ישיר, כך שלא תוכלו לתכנת כנגד ממשק API שמסופק על ידי גשר ה-JavaScript, אלא נגד ה-API של הדפדפן ללא גורם ביניים.

אישורים

המאמר הזה נכתב על ידי Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kant וקיית' גו.