פיתוח אפליקציות

קבל הצעת מחיר➘

פיתוח אפליקציה היברידית

עולם אפליקציות המובייל התפתח רבות במהלך השנים. ריבוי הפלטפורמות – IOS, Android ,Windows Phone  יחד עם ריבוי המכשירים והרצון של רוב החברות בשוק לפתח אפליקציה גרם להצפה של השוק במפתחי אפליקציות, כמו גם בכלי פיתוח שונים. אם בתחילת הדרך ע״מ לפתח אפליקציה ל IOS מפתח היה חייב לשלוט ב Objective C, ואילו רצה לפתח את אותה האפליקציה לאנדרואיד היה חייב לשלוט גם ב Java, כיום קיימים סט כלים המאפשר פיתוח אפליקציות תוך שימוש בשפת פיתוח אחת.

מהי אפליקציה היברידית?

אפליקציה היברדית היא אפליקציה המורכבת מרכיבים הכתובים בשפה הטבעית של מערכת ההפעלה, יחד עם רכיבים שפותחו בטכנולוגיה אחרת ושולבו כתוסף לתוך האפליקציה. הדוגמא הנפוצה ביותר היא שימוש בטכנולוגיות  HtmlCSS, Javascript) WEB)

לפיתוח רכיבי UI והטמעה שלהם בתוך האפליקציה באמצעות רכיב טבעי בשם WebView.

html5

יתרונות בפיתוח אפליקציה היברידית

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

חסרונות בפיתוח אפליקציה היברידית

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

כלים לפיתוח אפליקציות היברידיות

בשנים האחרונות יצאו כלים רבים לפיתוח אפליקציות היברידיות – Phonegap/Cordova  , Xamarin, Appcelerator, Unity, React Native ועוד. ההבדל העיקרי בין כלים אלו הוא שפת הכתיבה, רמת המורכבות, וכמות הפלאגינים והספריות החיצוניות בהן ניתן להשתמש יחד עם כלי הפיתוח. להלן הסבר על חלק מהכלים:

Phonegap הוא ללא ספק הכלי הנפוץ ביותר, ומכיל את כמות ספריות העזר הגדולה ביותר. הפיתוח מתבצע ב Javascript וניתן להשתמש בספריות עזר שיפשטו את תהליך הפיתוח אף יותר (דוגמת Ionic המבוססת רובה ככולה על Cordova יחד עם AngularJS).

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

React Native הנו כלי חדש יחסית המבוסס על ReactJS. הכלי מאפשר שימוש בקוד Javascript לרינדור רכיבי UI טבעיים של המכשיר. בשלב זה כמות הספריות החיצונית והרכיבים הממומשים לטכנולוגיה זו היא קטנה יחסית.

Xamarin הנו כלי מבית מיקרוסופט המאפשר שימוש בשפת ה C# ליצירת אפליקציות מובייל שברובן מבוססות WEB. נכון לשלב זה הכלי לא תפס תאוצה רבה.

מה לבדוק לפני שבוחרים כלי לפיתוח אפליקציה היברידית?

בעת הבחירה בטכנולוגיית הפיתוח, יש להתחשב לא רק ביכולות המתכנת ונוחות השימוש בכלי הפיתוח, אלא גם בבשלות שלו. אם ברצוננו לפתח אפליקציה בסיסית ביותר, אשר אינה כוללת שינויים ברכיבי UI סטנדרטיים, יתכן ו React Native הנו פתרון מעולה ( שימוש בטכנולוגיה פשוטה לכתיבת רכיבי טבעיים בסיסיים). אם זאת, יש לשים לב שאם נרצה התנהגות ייחודית לרכיבי הUI שלנו, אז בניגוד לכתיבה רכיבים מבוססי ווב כמו ב Phonegap, ב React Native נצטרך לשלוט הן בJava והן ב Objective C או Swift על מנת להגיע לתוצאה הרצויה, ובכך בעצם נאבד את היתרון העיקרי בפיתוח היברידי.

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

האם אפליקציה היברידית מתאימה לי?

הדבר החשוב ביותר להבין, לפני שבוחרים את טכנולוגיית הפיתוח הוא המטרה של האפליקציה וקהל היעד שלה. אפליקציה אינפורמטיבית שמטרה העיקרית היא הצגת מידע למשתמש לרוב תתאים לפיתוח בטכנולוגיה היברידית. גם אפליקציות עם אנימציות בסיסיות או אפליקציה שמשמשת כהוכחת יכולות או POC הינן דוגמאות מעולות לאפליקציות שמשיקולי עלות תועלת עדיף לפתח בטכנולוגיה היברידית. אם לעומת זאת האפליקציה דורשת גרפיקה מאוד מורכבת, הצגת כמויות מידע גדולות במיוחד, או שימוש במולטימדיה או לוגיקה כבדה (סרטונים גדולים, עריכת תמונות מציאות מדומה וכו׳) לרוב נעדיף להשתמש בטכנולוגיית Native. גם אם האפליקציה הנה יחסית פשוטה, אבל קהל היעד רגיש לביצועים ( לרוב משתמשים צעירים שאוהבים טכנולוגיה), או שיתר האפליקציות בענף הנן ברמת גימור גבוהה והקהל רגיל לרמה זו, נעדיף להשתמש בטכנולוגיית Native ע״מ לא ליצור אכזבה מהביצועים וביקורות שליליות.

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

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