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

חוויית המפתחים

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

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

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

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

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

תהליך הפיתוח

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

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

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

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

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

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

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

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

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

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

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

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

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

בדיקה של תמונה באמצעות החלונית &#39;Wxml&#39; של WeChat DevTools. התג בשימוש הוא תג &#39;image&#39;.
בדיקת רכיב <image> באמצעות WeChat DevTools.

רכיבים מותאמים אישית ברקע

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

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

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

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

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

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

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

הפעלת ביקורת ביצועים באמצעות כלי הביקורת המובנה. הציונים כוללים את האפשרויות &#39;סה&quot;כ&#39;, &#39;ביצועים&#39;, &#39;חוויית משתמש&#39; ו&#39;שיטות מומלצות&#39;, כל אחד מהם מקבל 100 נקודות מתוך 100.
כלי הביקורת המובנה ב-WeChat DevTools שמוצגים בו 'סה"כ', 'ביצועים', 'חוויית משתמש' ו'שיטות מומלצות'.

זיוף API

במקום לדרוש מהמפתח להגדיר שירות נפרד, התכונה של יצירת מודלים (mocking) לתשובות API היא חלק ישיר מ-WeChat DevTools. באמצעות ממשק קל לשימוש, המפתח יכול להגדיר נקודות קצה של API ותשובות מדומה (mock) רצויות.

הגדרת תגובה מדומה לנקודת קצה של API ב-WeChat DevTools.
תכונה משולבת של WeChat DevTools לזיוף תגובות API.

תודות

הבדיקה של המאמר בוצעה על ידי Joe Medley,‏ Kayce Basques,‏ Milica Mihajlija,‏ Alan Kent ו-Keith Gu.