Hybrid / Native / React Native / מהמתודות פיתוח תוכנה / פיתוח אפליקציה
כאשר מתחילים לתכנן פיתוח אפליקציה, עוד בשלבים הראשונים עולה השאלה: האם לפתח ב- Native או בטכנולוגיות ?Hybrid מה עדיף? איזו שיטה תיתן תוצר יותר איכותי? ומה יותר כדאי כלכלית? במאמר זה נסקור את השיטות השונות ונבחן את חוויית המשתמש, הביצועים, זמן ועלות הפיתוח בכל אחת מהמתודות.
אז מה זה פיתוח Native?
אפליקציית Native נכתבת במיוחד עבור הפלטפורמה עליה תרוץ, על פי ההגדרות הנוקשות של פלטפורמה זו בשפת תכנות ייעודית. לדוגמה אפליקציות למערכת ההפעלה של אנדרואיד יכתבו ב- JAVA או Kotlin ואפליקציות IOS (אייפון) יכתבו ב- Objective-C או Swift ואתר רספונסיבי למכשירים סלולריים במגוון שפות רחב כמו Angular או רבות אחרות. אפליקציות אלה יותאמו אך ורק עבור מערכת ההפעלה לה יועדו וכאשר אפליקציה אחת מפותחת לשלוש הפלטפורמות, יש לתכנת את הקוד לכל אחת בנפרד (וכמובן גם לתחזק שלושה קודים שונים בהתאם למספר הגרסאות המופצות עם השנים).
ומה זה פיתוח Hybrid?
בניגוד ל-Native פיתוח היברידי משתמש באותם הכלים לבניית אפליקציה און ליין כמו HTML5, JavaScript CSS, העטופים במעטפת המאפשרת למכשיר להתייחס אליהן כאל אפליקציה של ממש. נציין לדוגמה מספר אפליקציות מוכרות המפותחות בשיטה זו כמו Uber, YELP או Ynet הישראלית.
סיבוב ראשון: חוויות משתמש
חוויות המשתמש של אפליקציות ה- Native הן טבעיות יותר. הן עושות שימוש במאפיינים הגרפיים המוכרים למשתמשים ובנוסף עובדות ביעילות רבה יותר על מעבדי הטלפונים החכמים ה"קוראים" ברהיטות את שפות התכנות שהותאמו למערכות ההפעלה שלהן. המעבר בין מסכים הוא חלק יותר וקיימת אופטימיזציה בניהול הזיכרון. יחד עם זאת, נציין כי באמצעות גרפיקאים מנוסים ומתכנתים העובדים ביעילות עם הזיכרון ניתן להגיע גם באפליקציה היברידית לתוצאות לא רעות.
תוצאות הדו-קרב כעת:
1-0 לטובת ה- NATIVE
סיבוב שני: ביצועים
מבחינת ביצועים אפליקציות ההיבריד איטיות יותר. לפי סטטיסטיקות שפורסמו, משתמשים רבים מעידים על תסכול בשימוש באפליקציה איטית מדי. זאת בעוד אפליקציות הNative – שפותחו במקצועיות ובשפה הטבעית למכשיר רצות בצורה חלקה יותר. בנוסף, לאפליקציות ההיבריד ישנו קושי להתממשק לכל חיישני המכשיר ולבצע פעולות גרפיות מורכבות.
תוצאות הדו-קרב כעת:
2-0 לטובת ה- NATIVE
סיבוב שלישי: זמן פיתוח
כאן האפליקציות ההיברידיות מנצחות בגדול. בעוד אפליקציות ה-Native ידרשו זמן פיתוח ארוך יותר, לכל פלטפורמה בנפרד, את קוד האפליקציות ההיברידיות ניתן למחזר כמעט לחלוטין ורק לעטוף אותו במעטפת המתאימה לכל פלטפורמה, או ליצור שינוי קל בעיצוב על מנת להתאימו לפלטפורמות משתנות. תכונה זו היא אחת מהיתרונות הבולטים של האפליקציה ההיברידית.
תוצאות הדו-קרב כעת:
2-1 לטובת ה-NATIVE
סיבוב רביעי: עלות פיתוח
כאשר מעסיקים מתכנתים העובדים בסביבות Native שונות, במרבית המקרים נצטרך לפחות שני מתכנתים נפרדים הבקיעים בשפות התכנות והשיטות הרלוונטיות לכל שפה. אם נחליט לפתח גם Web בנוסף לאייפון ולאנדרואיד, הצוות יגדל לשלושה מתכנתים לפחות. בנוסף, כל קוד יחייב אותנו להמשיך ולהתאים לגרסאות משתנות של המכשיר תוך שמירה על התאמה לגרסאות עבר. בניגוד לאפליקציות ה-Native האפליקציות ההיברידיות ידרשו בעיקר עבודה עם מתכנתים הבקיאים בעולם ה-Web תוך התאמה מינימלית לכל מכשיר. כאן בוודאות האפליקציות ההיברידיות ינצחו.
תוצאות הדו קרב כעת:
2-2 תיקו מוחלט.
סיכום: אז מה כדאי? כיצד תבחרו את המתודה הנכונה עבורכם?
כפי שציינו לעיל, אין דרך אחת נכונה לפיתוח, עבור חלק מהאפליקציות השיטה ההיברידית תתאים יותר ועבור אחרות נבחר דווקא ב-Native. בכל מקרה כל שיטה תדרוש מאתנו להתפשר במידה מסוימת, מחד, על פיתוח מהיר יותר שמציעה לנו המתודה ההיברידית, ומאידך, על חוויית משתמש וביצועים שפיתוח ה-Native מעניק למשתמשי הקצה. שיקול חשוב שיש לקחת תלוי גם בתקציב הפיתוח – לעיתים נעדיף להשקיע מעט יותר על פיתוח שלוש גרסאות שונות לחלוטין על מנת ליצור חוויית משתמש אולטימטיבית.
למרות האפשרויות הרבות, נעניק לסיכום כלי יעיל בו תוכלו להשתמש על מנת לבחור במתודת הפיתוח העדיפה באמצעות מענה על שאלון קצר. נסו לשאול עצמכם את השאלות הבאות:
- האם חוויית משתמש טבעית היא חלק מהותי באפליקציה?
- האם יש משמעות לזמן בו תצא האפליקציה לאוויר? (כמו למשל – ניסיון לצאת לחנות האפליקציות לפני מתחרים פוטנציאליים)
- האם אתם זקוקים למגוון פיצ'רים ייחודיים?
- האם תקציב הפיתוח מוגבל?
- האם תהיה אינטראקציה רבה בין המשתמשים לאפליקציה הדורשת ביצועים מהירים וברמה גבוהה?
- האם כדאי להתחיל עם MVP ולאחר מכן לפתח גרסה עם פיצ'רים נוספים?
אם עניתם בחיוב על השאלות הזוגיות כנראה שעדיף לכם לפתח את האפליקציה בצורה היברידית. לעומת זאת, אם עניתם בחיוב דווקא על השאלות האי זוגיות נראה שכדאי שתמקדו בפיתוח Native.
וישנה אפשרות שלישית - React Native
בין פתרונות Native לפתרונות Hybrid ישנה אפשרות פיתוח ב-React Native חברת Facebook פיתחו את פלטפורמה הזו ובשנה האחרונה היא תופסת יותר ויותר תאוצה בקרב קהילת הפיתוח.
פתרון זה מאפשר לפתח את ממשק המשתמש ברובו ב-Native ואת רוב החלקים המתקשרים לשרת ב-JavaScript.
כך נשמרת חווית המשתמש המצוינת של הפיתוח ב- Native וניתן לעשות שימוש חוזר בחלק מקוד. חלקים גדולים מאפליקציית Facebook וכל אפליקציית Instagram מפותחות ב-React Native.
אז האם זהו המשיח של טכנולוגיות הפיתוח האפליקציות? לא בדיוק React Native. היא פתרון נהדר עבור פרויקטים מסוימים, אך עדיין לפתרונות Native ו-Hybrid יש יתרונות מובהקים בתחומים אחרים.