אפלקציות היברידיות
אופנה חולפת או בעצם הדור הבא בפיתוח אפליקציות לסלולר?
May 25 2015מהי "אפליקציה היברידית"?
לפני שנתאר את המושג נבקש לתקוף קודם כל את מרחב הבעיה שאותה אפליקציה היברידית יכולה לפתור. באופן מסורתי עולם האפליקציות הסלולריות מתחלק לשניים:
אפליקציות אינטרנט סלולרי\מובייל (Mobile Web App) - אתרי אינטרנט דינאמיים שהותאמו לתצוגה בפורמט מתקדם של HTML למכשירים סלולריים לדוגמא xHtml ו- HTML5.
אפליקציות מסורתיות (לעיתים נקראות גם NATIVE) - אפליקציות המפותחות על גבי מערכות זמן ריצה שונות. ובשפות מגוונות בהתאם לסוג הפלטפורמה כגון אנדרואיד עם שפת ג'אווה (JAVA) או C\C++, אייפון עם שפת Objective-C ו- Windows Phone עם C# .Net.
ללא ספק אפליקציות ה- NATIVE עולות הן בביצועים, הן בחוויות המשתמש והן במראה על אפליקציית WEB, ויתרה מכך יש אפליקציות שאין אפשרות אחרת אלא לפתח אותן כ- NATIVE למשל אפליקציות משחקים כגון Angry Birds. החיסרון הבולט בשיטה זו, פיתוח NATIVE מצריך ידע ומיומנות וכן במרבית המקרים זמן רב יותר לביצוע. אם נרחיק מעט לכיוון משחקים מבוססי רשתות חברתיות במרבית המקרים היתרון של אפליקציית ה- NATIVE מתגמד.
חלק ניכר מזמננו (בעבודה וגם בבית) נמצא את עצמנו בודקים מייל, משוטטים באתרי חדשות, מדיה, רשתות חברתיות, בנקים רשויות ומה לא?
שירותים רבים עוברים בימים אלו מאינטרנט מסורתי בדפדפני מחשב שולחני לאינטרנט בפורמטים החדשים המותאמים לסמארטפונים וטאבלטים. העולם הזה הולך ומתכנס לתוך הכיס שלכם והמגמה דיי ברורה. בד בבד מתגלה גם הצורך בתכונות נוספות שקיימות בכל סמארטפון למשל מיקום, מצלמה, רמקול, שטח אחסון ועוד שזה כבר פותח מרחב חדש של אפשרויות.
כאן ממש מתחילה דילמה האם לפתח ב- NATIVE? ב- WEB?
בעד אפליקציית Mobile Web App:
- אין צורך לפתח באופן ספיציפי עבור iPhone או Android או כל פלטפורמת Mobile
- מקצרת מאוד את זמני הפיתוח עד 70% במקרים קיצוניים
- קלה לתחזוקה
- מרבית אפליקציות המובייל הארגוניות לא דורשות פירוטכניקה עוצמתית
- כך שניתן לפתח Mobile Web App שיתנהג כמו אפליקציה לכל דבר, וכותבים אותו פעם אחת בלבד
- ניתנת לעדכון באופן אוטומטי על גבי השרת (בעוד אפליקציית NATIVE מחייבת עדכון על המכשיר)
- מאפשרת שימור של ה"בינה העיסקית" (Business Logic) ומתאימה ובנויה מראש למודלים של שירות
- מאפשרת הצגה אולטימטיבית ומותאמת ביותר של תכנים על ידי שימוש בדפדפן של המכשיר
- מותאמת למגוון רחב יותר של מכשירים ולא דורשת פיתוח מיוחד אלא התאמות קלות
נגד אפליקציית Mobile Web App:
- לא עובדת כשאין אינטרנט
- לא תמיד מאפשרת גישה לחומרה של הטאבלט או הסמארטפון, כמו למשל שימוש ב- Bluetooth, במנועי תלת ממד כגון OpenGL, שליטה ובקרה מתקדמת על אודיו ועוד
- לא תמיד מתאפשרים זמני התגובה ראויים לשימוש
מה עושים כשיש דילמה כזאת?
התשובה הברורה במקרים כאלו היא אפליקציה היברידית למובייל, שילוב מתוחכם של 2 הגישות, מצד אחד שימוש בתכונות הגרפיות והגמישות האדירה שיכול לספק דפדפן אינטרנט (כן גם בסמארטפון), ומצד שני, שילוב יכולות שרק אפליקציית NATIVE יכולה לספק.
חשוב לציין כי אפליקציית מובייל היברידית היא בראש ובראשונה אפליקציית NATIVE Mobile app.
אותה אפליקציה משמשת כמעין "אינקובטור" לדפדפן שמוטמע בתוכה והתקשורת בין האפליקציה לבין הדפדפן מתבססת על גשר בין הדפדפן לבין אפליקציית ה- NATIVE, נקרא לה מעתה אפליקציית הבסיס - BASE.
איך זה מתבצע בתכלס? זה כבר תלוי במכשיר שאתו אתם עובדים, אך העיקרון הוא זה תמיד זהה: הדפדפן מתקשר עם ה- BASE דרך ממשק Javascript שמצוי בכל דפדפן.
אם נלך צעד אחד קדימה נבין שאפשר גם להטמיע יותר מדפדפן אחד ב"אינקובטור" הזה,
כמו גם להוסיף מעליהם טקסטורות, כפתורים ואפילו לשנות את ההתנהגות והתוכן שלהם עלפי מיקום, זמן וכל פרמטר שרק נרצה. וכל זה כמובן, מתאפשר תוך שליטה מלאה על התנהגות האפליקצית דרך שרת WEB.
ונשאיר קצת מקום לדימיון שלכם שיעשה את שלו...
איפה מתחילים?
יש היום מספר פלטפורמות מוכנות בשוק כגון sencha touce, phonegap, jQueryMobile ועוד, ללא ספק ניתן להגיע לתוצאות דיי מהירות עם הפלטפורמות הללו, במספר שבועות קטן,
לרוב כדאי להסתפק בהן רק בשלבים בסיסיים או כהוכחות יכולת מאחר ויש מחיר לשימוש בהן:
- הביצועים לא מזהירים
- בדרך כלל הפלטפורמות מתאימות למוצרים בסיסיים ומרחב הגמישות לא גדול
- כשיש צורך בשינויים או מעקפים של בעיות בפלטפורמות הללו החיים הופכים לסיוט
- באגים
הדרך נכונה היא בבסיס טוב.
ע"מ לפתח HYBRID יש צורך בידע לא מועט גם ב- NATIVE, הקלק כאן לפרטים נוספים אודות פיתוח אפליקציות היברידיות למובייל:
הכותב: עופר דוידיאן, מייסד ומנכ"ל החברה
לעופר 16 שנות נסיון במחקר ופיתוח, מהן 14 שנים בתעשיית הסלולאר והאפליקציות.
הקלק כאן לצפייה בכתבה אודות פיתוח אפליקציות במהדורה המרכזית, חדשות 2