2013-03-03

פיתוח למובייל: Native או Web? (חלק א')

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

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

סביר אגב, שהתשובה שתקבלו מאנשי המוצר תהיה: "iPhone בעדיפות ראשונה, iPad בעדיפות שנייה ומאוחר יותר נרצה כנראה לתמוך גם ב Android", שמשמעה בפועל הוא בד"כ: "אנו הולכים אחרי העדר, אנחנו לא ממש יודעים".

יש לנו כאן דילמה מהותית וכמעט חדשה:
עבור אפליקצייה שולחנית הבחירה בין אפליקצייה native לאפליקציית ווב היא ברורה וקלה יותר: הצידוק לאפליציית native הוא בעיקר צורכי גרפיקה / זמן אמת (משחקים / תוכנות גרפיות / כלי productivity) או כלים ספציפיים למערכת ההפעלה (למשל אנטי-וירוס). כל השאר - הלך לווב. מכיוון שמערכת ההפעלה "חלונות" הייתה מונופול בצד ה Client - הפיתוח נעשה בכלים מתאימים (Windows Forms/WPF) עם נישה קטנה של UI בג'אווה (או שפות VM אחרות) - בעיקר לכלי אדמיניסטרציה.

המונופול של Windows ו Intel אפשר תאימות גבוהה, כך שאפליקציה שפותחה לחלונות ונבדקה על מחשב Dell, רצה היטב גם על מחשב מכל דגם של HP או Lenovo.

אנו נראה שהדילמה בפיתוח למובייל דומה - אך שונה ומורכבת יותר.

באיזה מכשירים לתמוך? הרבה מכשירים, הרבה יצרנים.


BYOD

לפני שנה שוחחנו עם לקוח גדול שבחר להשתמש במערכת שלנו. 
"באיזה מכשירים אתם מתכוונים להשתמש?" - שאלנו. "משיקולי אבטחה, תהיה לנו מדיניות נוקשה של iOS[ב] בלבד! לא נרשה חיבור מכשירים אחרים למערכת".
"כמה נוח", חשבנו לעצמנו, "הנה לקוח שסגור על עצמו".

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

תופעה נפוצה מאוד בארגונים היום היא תהליך שנקרא Bring Your Own Device (או בקיצור BYOD) - בה לעובדים יש מכשירים בעלי יכולות שהם רכשו והם רוצים להשתמש בהם לצורך העבודה.

נכון לשנת 2013, BYOD הוא מיינסטרים
מ BYOD נהנים שני הצדדים: הארגון מפחית עלויות (מכשירים, הכשרה, חידוש מכשירים) בעוד העובדים יכולים לעשות יותר עבודה ובדרך שהם בוחרים. ניתן למצוא כיום גם מדיניות של Buy Your Own Device - בה הארגון מספק לעובדים תקציב בכדי שיקנו לעצמם מכשיר בעצמם וע"פ בחירתם (תחת מגבלות מסוימות) - סימן לחשיבות שיש לבחירת המכשיר ע"י העובד.

למורת-רוחם של גופי IT רבים, מדיניות BYOD היא לרוב איננה יוזמה של גוף ה IT אלא תגובה ללחץ ו"קביעת עובדות" מצד היחידות העסקיות (Line Of Business) בשטח.

המשמעות המעשית של BYOD היא הצורך לתמוך במגוון רחב של מכשירים, ללא יכולת של גוף ה IT להכתיב או לבחור את המכשירים, כפי שיכול היה במשך שנים להכתיב את חומרת ה PC או את הדפדפנים שבשימוש[ג]. דיי נדיר היה לראות עובד מחסן שמביא PC מהבית לעבודה ודורש לחבר אותו למערכות הארגוניות.

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


רוב מפתחי האפליקציות מתכננים לתמוך ב2 פלטפורמות או יותר

דיי ברור שפיתוח Native (ל iOS, אנדרואיד, בלאקברי, Windows 8, וכו') מספק את מירב האפשרויות לפיתוח האפליקציה - ביצועים טובים יותר ויכולת לגשת ליכולות ספציפיות של המכשיר וכו' - ממש כפי שאפליציית Windows Native יכולה לעשות יותר מאפליקציית ווב הרצה על חלונות. בניגוד למחשב השולחני, אם נכתוב אפליקציה native למובייל בטכנולוגיה מסוימת - נגיע לפחות מ50% מהמשתמשים. כדי להגיע לאחוז דומה של משתמשי "חלונות" (כ 90%), עלינו לפתח עבור 3 מערכות הפעלה שונות ובסביבות פיתוח שונות, מה שמכעט משלש את כמות ההשקעה - מכיוון שאלו מערכות הפעלה שונות.

לא דיברנו עדיין על עוד 2 מכפילים נוספים המשפיעים על "מספר הפלטפורמות בפועל":
  • טאבלט מול סמארטפון - אפליקציות לא נראות ומתנהגות אותו הדבר על המכשיאים הללו.
  • גרסאות שונות של מערכת ההפעלה בעוד "חלונות" לא השתנתה כמעט מאז שנת 2000 עבור מפתחי אפליקציות - מערכות ההפעלה של מכשירי מובייל עוד צעירות ומשתנות תדיר.

בכדי להגיע ל90% ממשתמשי מכשירי המובייל, עליכם לתכנן ולבדוק לא שלוש, כי אם יותר קרוב ל 6 עד 10 פלטפורמות שונות. הפלטפורמות שחוזים שיהיו הנפוצות ביותר לשנים הקרובות הן:
  • סמארטפון: iPhone (ו iPod Touch)
  • סמארטפון: Anroid של סאמסונג (סדרות Note, Ace, Galaxy וכו')
  • טאבלט: iPad
  • סמארטפון: Windows Phone
  • טאבלט: Windows 8 (הערה: Windows 8 ו Windows Phone הן מערכות הפעלה דומות, אך שונות).
  • טאבלט: Amazon Kindle Fire (נפוץ בקרב משתמשים פרטיים).
  • ? טאבלט אנדרואיד* - אולי Galaxy או Nexus
  • ? סמארטפונים של יצרן אנדרואיד* נוסף. HTC, ZTE או מוטורולה הן המועמדות המובילות. 
  • ? מכשירים של מערכת הפעלה רביעית. מתמודדות עיקריות: Tizen אולי BlackBerry 10 או FireFox OS.
  • ? מסכים (כבר לא נכון לקרוא להם "טלויזיות" או "טלויזיות חכמות") המריצים מערכות הפעלה מוביליות לינק1 לינק2.
* בעולם האנדרואיד, יש משמעות מיוחדת ליצרנים השונים. אשתדל לכסות עניין זה בפוסט המשך.


תחזית לפילוח מערכות ההפעלה המוביליות בשנים הקרובות

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

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


UX Reusability

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

לדוגמה: ה UX Guidelines של חלונות 8 אוסרות על אפליקציה להוסיף אלמנט חיפוש בשטח האפליקציה. החיפוש נעשה מתוך SideBar של מערכת ההפעלה (נקרא "Charm") גם כאשר מדובר בחיפוש בתוך-האפליקציה. למכשירי ה Windows Phone יש כפתור חיפוש פיסי בתחתית המכשיר.


משתמש שהתרגל לעבודה במכשיר יכול להיות מתוסכל מאפליקציה שלא מפעילה את החיפוש שלה בעקבות לחיצה על כפתור ה Search הפיסי או בצורה שאליה הוא רגיל.

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

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


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

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

הנה דוגמה לאפליקציית הווב של Financial Times, והדרך בה היא מציגה חיפוש על טאבלטים במערכות הפעלה שונות. בסקאלה שבין "UI כמו של מערכת ההפעלה" עד ל "UI עצמאי", FT בחרו גישת ביניים של "אזרחות טובה". האפליקציה בסה"כ נראית אותו הדבר על כל הפלטפורמות, מלבד אלמנטים שסותרים בצורה משמעותית את ה UX Guidelines של הפלטפורמות השונות[ד].



---

[א] Phablet - יציר הכלאיים בין טאבלט לאייפון. לרוב בעל מסכי "5 עד "7, שניתן לבצע מהם שיחות. דוגמה בולטת: סדרת ה Galaxy Note של סמסונג.

[ב] מערכת ההפעלה של מכשירי אפל: iPad, iPhone ו iPod Touch.

[ג] בארגונים רבים, IE הוא הדפדפן היחידי שנתמך לשימושים ארגוניים. Chrome יכול לשמש רק לגלישה אישית באינטרנט או שלעתים אף מונעים / אוסרים התקנה של כל דפדפן מלבד זה שהוחלט ע"י ה IT (שזה לרוב IE).

[ד] כדאי להכיר:



6 תגובות:

  1. אנונימי6/3/13 09:43

    מחכים לחלק ב' :)

    השבמחק
  2. ליאור,

    מאיפה התחזית הזו?

    השבמחק
    תשובות
    1. היי דויד,

      אני מניח שאתה מדבר על התחזית לצמיחה של WP. זו תחזית של IDC - אבל היא לא יוצאת דופן. הנה עוד קצת נתונים http://goo.gl/wEmDw.

      ליאור

      מחק
  3. אנונימי23/4/13 10:59

    האם אדובי איר זה פתרון ? במקום לפתח nativ עבור כל פלאטפורמה?

    השבמחק
    תשובות
    1. אפנה אותך לחלק ב' של הפוסט:
      http://www.softwarearchiblog.com/2013/03/mobilenative-or-web-2.html

      שמדבר בדיוק על נושא זה. אני מתייחס גם לאייר.

      ליאור

      מחק