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

חוויית המפתח

אחרי שהסברתי על מיני-אפליקציות כשלעצמן, אני רוצה להתמקד בחוויית המפתחים בפלטפורמות השונות של הסופר-אפליקציות. פיתוח מיני-אפליקציות בכל הפלטפורמות מתבצע בסביבות פיתוח משולבות (IDE) שפלטפורמות הסופר-אפליקציות מספקות בחינם. יש עוד אפליקציות, אבל אני רוצה להתמקד בארבע הפופולריות ביותר, ובאפליקציה חמישית – Quick App – לצורך השוואה.

סביבות פיתוח משולבות (IDE) לאפליקציות מיני

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

תבניות בסיס לפרויקטים של מיני-אפליקציות

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

תהליך הפיתוח

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

חלון האפליקציה של כלי הפיתוח של WeChat שבו מוצגים סימולטור, עורך קוד ומנפה באגים.
כלי הפיתוח של WeChat עם סימולטור, עורך קוד ומנפה באגים.
חלון של אפליקציית כלי הפיתוח של Alipay שבו מוצגים עורך קוד, סימולטור ומנפה באגים.
כלי הפיתוח של Alipay עם עורך קוד, סימולטור ודיבאגר.
חלון האפליקציה של כלי הפיתוח של Baidu שבו מוצגים סימולטור, עורך קוד ומנפה באגים.
Baidu DevTools with simulator, code editor, and debugger.
חלון האפליקציה של כלי הפיתוח של ByteDance שבו מוצגים סימולטור, עורך קוד ומנפה באגים.
כלי הפיתוח של ByteDance עם סימולטור, עורך קוד ומאתר באגים.
חלון האפליקציה של כלי הפיתוח של Quick App, שבו מוצגים עורך קוד, סימולטור ומנפה באגים.
כלי פיתוח מהיר לאפליקציות עם עורך קוד, סימולטור וכלי לניפוי באגים.

כמו שאפשר לראות, הרכיבים הבסיסיים של כל סביבות הפיתוח המשולבות דומים מאוד. תמיד יש לכם עורך קוד שמבוסס על Monaco Editor, אותו פרויקט שמפעיל גם את VS Code. בכל סביבות הפיתוח המשולבות יש כלי לניפוי באגים שמבוסס על הקצה הקדמי של כלי הפיתוח ל-Chrome עם כמה שינויים, ובהמשך נסביר עליהם (ראו Debugger). סביבות הפיתוח המשולבות כשלעצמן מיושמות כאפליקציות NW.js או כאפליקציות Electron, והסימולטורים בסביבות הפיתוח המשולבות מיושמים כתג NW.js <webview> או כתג Electron <webview>, שבתורם מבוססים על תג Chromium <webview>. אם אתם מעוניינים בפרטים הפנימיים של ה-IDE, לרוב תוכלו פשוט לבדוק אותם באמצעות כלי פיתוח ל-Chrome עם מקש הקיצור Control+Alt+I (או Command+Option+I ב-Mac).

כלי הפיתוח ל-Chrome משמשים לבדיקת כלי הפיתוח של Baidu, שבהם מוצג תג ה-WebView של הסימולטור בחלונית Elements בכלי הפיתוח ל-Chrome.
בדיקה של כלי הפיתוח של Baidu באמצעות כלי הפיתוח ל-Chrome מגלה שהסימולטור ממומש כתג <webview> של Electron.

בדיקה וניפוי באגים בסימולטור ובמכשיר אמיתי

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

הסימולטור המובנה מספיק כדי לקבל מושג כללי לגבי התנהגות האפליקציה, אבל בדיקה במכשיר, כמו באפליקציות אינטרנט רגילות, היא הכרחית. כדי לבדוק מיני-אפליקציה שנמצאת בפיתוח, פשוט סורקים קוד QR. לדוגמה, ב-ByteDance DevTools, סריקה של קוד QR שנוצר באופן דינמי על ידי ה-IDE באמצעות מכשיר אמיתי מובילה לגרסה של המיני-אפליקציה שמתארחת בענן, שאפשר לבדוק אותה מיד במכשיר. כך זה עובד ב-ByteDance: כתובת ה-URL שמאחורי קוד ה-QR (example) מפנה אוטומטית לדף מארח (example), שמכיל קישורים עם סכימות URI מיוחדות, כמו snssdk1128://, כדי להציג תצוגה מקדימה של המיני-אפליקציה באפליקציות-על שונות של ByteDance, כמו Douyin או Toutiao (כאן אפשר לראות דוגמה). ספקי אפליקציות-על אחרים לא עוברים דרך דף ביניים, אלא פותחים את התצוגה המקדימה ישירות.

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

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

טלפון נייד שמריץ מיני-אפליקציה עם חלקים בממשק המשתמש שמודגשים על ידי מאתר הבאגים של ByteDance DevTools שפועל במחשב נייד ובודק אותה.
ניפוי באגים מרחוק באפליקציה מיני במכשיר אמיתי באמצעות כלי הפיתוח של ByteDance.

כלי לניפוי באגים

ניפוי באגים ברכיבים

חוויית ניפוי הבאגים באפליקציות מיני דומה מאוד לניפוי באגים בכלי הפיתוח של Chrome. עם זאת, יש כמה הבדלים חשובים שמותאמים לתהליך העבודה באפליקציות מיני. במקום החלונית Elements בכלי הפיתוח ל-Chrome, סביבות פיתוח משולבות (IDE) של מיני-אפליקציות כוללות חלונית מותאמת אישית שמותאמת לניב הספציפי של HTML. לדוגמה, במקרה של WeChat, החלונית נקראת Wxml, שזה קיצור של WeiXin Markup Language. בכלי הפיתוח של Baidu, הוא נקרא Swan Element. בכלי הפיתוח של ByteDance, השם של זה הוא Bxml. ב-Alipay, השם הוא AXML, וב-Quick App, השם של החלונית הוא פשוט UX. אני אתעמק בשפות התיוג האלה בהמשך.

בדיקת תמונה באמצעות החלונית Wxml בכלי הפיתוח של WeChat. התג שנמצא בשימוש הוא תג `image`.
בדיקת אלמנט <image> באמצעות כלי הפיתוח של WeChat.

רכיבים בהתאמה אישית מתחת לפני השטח

בדיקה של WebView במכשיר אמיתי דרך about://inspect/#devices מראה שכלי הפיתוח של WeChat הסתירו בכוונה את האמת. במקום <image> שמוצג בכלי הפיתוח של WeChat, מה שאני רואה בפועל הוא רכיב מותאם אישית שנקרא <wx-image> עם <div> כרכיב הצאצא היחיד שלו. חשוב לציין שהרכיב המותאם אישית הזה לא משתמש ב-Shadow DOM. מידע נוסף על הרכיבים האלה מופיע בהמשך.

בדיקת אפליקציית מיני של WeChat שפועלת במכשיר אמיתי באמצעות כלי הפיתוח ל-Chrome. במקום שבו כלי הפיתוח של WeChat דיווחו שאני מסתכל על תג image, כלי פיתוח ל-Chrome חושפים שאני בעצם מתמודד עם רכיב מותאם אישית wx-image.
בדיקה של רכיב <image> באמצעות כלי הפיתוח של WeChat מגלה שהוא בעצם רכיב מותאם אישית <wx-image>.

ניפוי באגים ב-CSS

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

בכלי הפיתוח של WeChat, בודקים תצוגה עם מרווח פנימי עליון ותחתון של ‎ `200rpx` ‎.
בדיקת הריווח הפנימי שצוין בפיקסלים רספונסיביים (200rpx 0) של תצוגה באמצעות כלי הפיתוח של WeChat.

ביקורת ביצועים

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

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

API mocking

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

הגדרת תגובה מדומה לנקודת קצה ל-API בכלי הפיתוח של WeChat.
תכונת ה-mocking המשולבת של תגובות API בכלי הפיתוח של WeChat.

תודות

המאמר הזה נבדק על ידי ג'ו מדלי, קייסי בסקס, מיליקה מיחייליה, אלן קנט וקית' גו.