במה שונה פיתוח למובייל?

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

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

שפה חדשה

האם אתם שולטים ב Objective-C? ב-JavaScript? ב-HTML5 וב-CSS3? ב ++C/C? אם אתם הולכים לפתח למובייל – ייתכן ותאלצו ללמוד שפת תכנות חדשה: זו כבר לא כל-כך בחירה שלכם מה אתם מעדיפים – זו דרישה של הפלטפורמה.

סביבת עבודה חדשה

כמה מכם מכירים Linux או Unix? כמה רגילים לעבוד ב-Mac OS או חלונות 8 (שבה חוויית השימוש שונה לחלוטין)? האם אתם רגילים ל-Visual Studio, Eclipse וגם Xcode?
ייתכן ותאלצו להתרגל לסביבה חדשה ולכלים חדשים.

ספריות חדשות

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

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

(נכון: חלק מהספריות ה-javaScript נכונות גם לפתרונות Desktop)

חזרה לפיתוח של אפליקציות מקומיות / Rich Client / אפליקציות שולחניות

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

משתמשים חדשים

כמה מהמשתמשים שלכם כיום:

  • נמצאים במרחק-נגיעה מהמחשב 90% מהזמן?
  • אומרים: “אל תתן לי להקליד במקלדת”?
  • מסירים תוכנה אם היא לא הגיבה תוך 2-3 שניות?
  • עובדים בתנאי רעש ותאורה לקויה?

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

מומחיות חדשה

האם אתם מומחים למגע (Touch) ומחוות (Gestures)? יודעים להבדיל בין “התנהגות חלקה”, “קצת מקרטע” ו-“ממש flickering!”? ואם ההתנהגות לא-טובה, מה עושים בכדי לשפר אותה?

האם אתם מכירים את רוב הדגמים של המחשבים של הלקוחות שלכם ואיזו חומרה יש להם? חומרת Desktop היא סטנדרטית למדי – לא כך במובייל.

האם אתם יודעים למה אין (כמעט) סמארטפונים עם חלת-דבש? (גרסת אנדרואיד)

כיצד אתם בוחרים מה ייכנס ל-Notification Area, ל-Action Bar או כ-Charm?

שינוי בסדרי-גודל

מעבר מפיתוח אפליקציות (Application) יחידה עם הרבה פונקציות –> לפיתוח אפליקציות (Apps) רבות בעלות פונקציה יחידה כל אחת. סביר להניח שאם לתוכנה שלכם יש כיום תפריט ראשי עם 6 פריטים, נכון יהיה בעולם המובייל להפוך 4 מהם ל-Apps* ו-2 אחרים “להעלים” (כלומר לומר למשתמש: עבור פעולה זו – לך לממשק ה Desktop).

* בלתי-תלויים!

חוקי עיצוב UI חדשים

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

יש אתגרים חדשים כאשר עובדים על מסך של “3 עד “5 (לסמארטפון) או “7 עד “10 (טאבלט) כאשר אמצעי ההצבעה הוא אצבע ולא עכבר / עט. יש כמובן גם כמה קונבנציות חדשות, לכל מערכת הפעלה – וגם בכלל בין מערכות ההפעלה השונות.

חזרה לתכנות מוגבל-משאבים

למכשיר סמארטפון ממוצע יש 512MB זכרון סה”כ – לפעמים פחות. המעבד חלש משמעותית יותר, ה-Storage קטן יותר והרשת אטית יותר. מתי בפעם האחרונה לא היה לכם 1MB של זיכרון כשרציתם אותו??

חוקי ביצועים חדשים

ביצועים של אפליקציית מובייל מודדים במילי-שניות (זמן תגובה), צריכת זיכרון (ב MB) וכו’ – כל אלה כנראה לא חדשים. מדד חשוב חדש הוא (O(watt – מדד הסוללה. סוללה היא תמיד משאב בחסר כשמדובר במכשירים ניידים – וחשוב מאוד לתכנן את המערכת שלכם על מנת לנצל אותה בצורה נכונה. לדוגמה: להביא מידע קצת פחות עדכני ובאצוות גדולות, כי העלות של “יצירת connection”, מבחינת הסוללה – היא אדירה.

ערוצי הפצה חדשים

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

אינטגרציה הדוקה יותר עם מערכת ההפעלה

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

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

חלונות 8 מנחה את המפתחים לא לספק חיפוש-בתוך-האפליקציה מתוך ה UI של האפליקציה, אלא מתוך מקום מרכזי במערכת ההפעלה. כך היא נהגה גם עבור האפליקציות שלה.

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

שיהיה לכם בהצלחה!

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

ליאור בר-און

ליאור בר-און הוא Chief Architect בחברת סטארטאפ ישראלית גדולה.

הגב

8 Comments on "במה שונה פיתוח למובייל?"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 
Sort by:   newest | oldest | most voted
Rafael Herscovici
Guest
מישהו חכם אמר פעם "הפחד משתק". וזה בדיוק מה שאתה עושה…. מפחיד את קהל המפתחים. מתכנת ברמה בינונית ומעלה לא יתקשה לעקוב אחרי ההוראות שיש בכל אתר וסיפרייה. אתה כותב כאילו תכנות למובייל **חייב** מעבר לכלים חדשים, אז צר לי, אתה טועה. לכל IDE (כן, כולל VS) כבר יש יכולת מובנה לפתח לסלולרי ואם לא, אז די בקלות ניתן למצוא איזשהוא פלאגין וגם אפשרי לתכנת בשפה שאתה רגיל אליה (.NET לסוגיה ואחרות) OBJECTIVE-C ?? JAVASCRIPT ?? HTML ?? מה בדיוק חדש בזה שאתה טוען ש "צריך ללמוד שפה חדשה" ? נכון, כן צריך להשמר לא לבזבז סוללה ולגרום לאפליקציה לעבוד… Read more »
ניר
Guest

אני חייב לומר שאני מסכים עם ליאור, ולצערי לא רבים בתחום שלנו מבינים עדיין את המשמעות הזאת. “מתכנת בינוני שיעקוב אחרי ההוראות” הוא בדיוק ההבדל בין אפליקציה לא יעילה וזוללת משאבים שאולי תעבוד על גבי המכשירים החדשים ועתירי החומרה אך תקרטע על כל השאר ובכל תבריח פלח שוק לא קטן, לבין אפליקציות הבנויות בחוכמה.
רוצה דוגמה? בבקשה – צבא המפתחים של פייסבוק לא השכיל לעשות את מה שכמה מפתחים של Sencha עשו במספר ימים – לייצר אפליקציה היברידית שעובדת מהר יותר מהאפליקציה הנייטיבית בה מתגאה מר צוקרברג שמאשים את פלטפורמת HTML5 ע”ח ארכיטקטורה, תכנון ופיתוח כושלים.

Nir Elbaz
Guest
אני לא חושב שליאור מנסה להפחיד, אלא להצביע על נקודה חשובה ונכונה מאוד, לטעמי, שלצערי לא רבים בתחום שלנו מבינים עדיין את המשמעות שלה: "מתכנת בינוני שיעקוב אחרי ההוראות" הוא בדיוק ההבדל בין אפליקציה לא יעילה וזוללת משאבים שאולי תעבוד על גבי המכשירים החדשים ועתירי החומרה אך תקרטע על כל השאר ובכל תבריח פלח שוק לא קטן, לבין אפליקציות הבנויות בחוכמה. רוצה דוגמה? בבקשה – צבא המפתחים של פייסבוק לא השכיל לעשות את מה שכמה מפתחים של Sencha עשו במספר ימים – לייצר אפליקציה היברידית שעובדת מהר יותר מהאפליקציה הנייטיבית בה מתגאה מר צוקרברג שמאשים את פלטפורמת HTML5 ע"ח ארכיטקטורה,… Read more »
Nir Elbaz
Guest
אני לא חושב שליאור מנסה להפחיד, אלא להצביע על נקודה חשובה ונכונה מאוד, לטעמי, שלצערי לא רבים בתחום שלנו מבינים עדיין את המשמעות שלה: "מתכנת בינוני שיעקוב אחרי ההוראות" הוא בדיוק ההבדל בין אפליקציה לא יעילה וזוללת משאבים שאולי תעבוד על גבי המכשירים החדשים ועתירי החומרה אך תקרטע על כל השאר ובכך "תבריח" פלח שוק לא קטן, לבין אפליקציות הבנויות בחוכמה. רוצה דוגמה? בבקשה – צבא המפתחים של פייסבוק לא השכיל לעשות את מה שכמה מפתחים של Sencha עשו במספר ימים – לייצר אפליקציה היברידית שעובדת מהר יותר מהאפליקציה הנייטיבית בה מתגאה מר צוקרברג שמאשים את פלטפורמת HTML5 ע"ח ארכיטקטורה,… Read more »
Rafael Herscovici
Guest

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

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

Rafael Herscovici
Guest

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

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

Nir Elbaz
Guest

אני מסכים איתך לגמרי שהבנה מעמיקה של ה- Documentation של אותו Framework או API חיונית מאוד לפני הקפיצה למקלדת, התנהגות שרבים מאיתנו חוטאים בה… אבל ממש כמו באקדמיה, אותם Manuals כתובים בד"כ להתמודדות עם משימות מיינסטרים, וכאשר רבות מהאפליקציות המורכבות לא מסתפקות באותם מימושים פשוטים, אתה נאלץ להפעיל את הראש ופה – כדאי שיהיה לך אחד כזה, כדי שתדע לנתח את הבעיה שעומדת מולך ולבחור את הכלי הנכון שיוביל אותך לפיתרון יעיל ולא את הכלי הראשון שתיתקל בו בשיטוטים אחר פיתרון ברשת.

Idebenone
Guest

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

wpDiscuz

תגיות לכתבה: