כל האפשרויות לפיתוח Cross-Platform במובייל

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

מקור: Pexels

מאת קרן שם-טוב סגל, מנהלת קהילות טכנולוגיות, חטיבת Developers Experience & Evangelism, מיקרוסופט ישראל

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

לפני הכל צריך להבין מה המשמעות של אפליקציית Native, מושג שהחברות השונות מבטיחות שהמוצר שלהן הוא זה שיגרום לכם לפתח אפליקציה שהיא ממש כמו הדבר האמיתי. מדובר באפליקציה שמשתמשת ב-SDK של IOS, של אנדרואיד ושל כל פלטפורמה אחרת ב-100%. אם לכלי מסוים יש גישה מוגבלת ל-SDK של IOS ולאנדרואיד דרך ה-API שלו, הוא יתקמפל לכדי אפליקציית Native binary, אבל לאפליקציה לא יהיה ה-Look & Feel כמו של אפליקציית Native והביצועים שלה יהיו משמעותית נחותים יותר.

פיתוח אפליקציה לפלטפורמה ספציפית עם שפה וכלים "מקומיים", כמו פיתוח אפליקציית IOS ב-Swift עם Xcode, מניבה אפליקציית Native מלאה מבחינת הביצועים והתגובתיות כפי שהמשתמש מצפה לה. הגישה הזו מייצרת קוד בסיס לכל פלטפורמה בנפרד שבה אנחנו רוצים לתמוך. כלומר, אפליקציית ה-IOS חייבת להיות כתובה ב-Swift או ב-Objective-C עם Xcode, ואפליקציית האנדרואיד תהיה כתובה ב-Java תוך שימוש ב-Android Studio או ב-Eclipse. שתי האפליקציות ייבנו בנפרד, לכל אחת מהן יהיה קוד בסיס משלה וקרוב לוודאי ששני צוותים שונים יכתבו ויתחזקו את הפלטפורמות הללו.

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

הפתרון ההיברידי

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

הפתרון ההיברידי מתקמפל לכדי אפליקציות שהן כמעט Native, ובאופן כללי הפתרון טוב בהרבה בביצועים מאשר שימוש ב-Mobile Web App (ראו הסבר בהמשך). אך עדיין, מדובר באפליקציה שאינה מותאמת ב-100% למערכת ההפעלה, הביצועים שלה נחותים יותר מאשר אפליקציית Native, זמני התגובה שלה איטיים ואפשרויות הפיתוח עליה מוגבלות, מכיוון שאין שימוש בכל היכולות שמאפשרת הפלטפורמה.

דוגמאות ל-Frameworks המשמשים לפיתוח באופן היברידי: PhoneGap, Apache Cordova,Onsen UI, Intel XDK.

Mobile Web App

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

דוגמאות ל-Frameworks המשמשים לפיתוח: Mobile Web App: Ionic, Sencha

Native אמיתי עם שיתוף קוד? יש חיה כזאת

אפשרות נוספת, שלא כל כך מוכרת עדיין בארץ אך שווה מאוד להכיר אותה, היא פיתוח אפליקציית Native ב-100% מבלי להגביל את המתכנת ל-SDK של כל פלטפורמה, ותוך שימוש בקוד משותף לכל הפלטפורמות. סוג כזה של אפליקציות בעצם מושתת על בנייה של קוד מקור אחד בשפה משותפת, כאשר ה-IOS וה-Android API חשופים לו. שימוש בקוד כזה הוא למעשה זהה לשימוש בקוד של אפליקציית Native אוריגינל. למתכנת יש גישה לכל המודולים, כפי שהייתה לו גישה בשימוש ב-objective-c, Swift או Java ללא יוצא מן הכלל. זה אומר שבעצם אפשר לתרגם כל פונקציה, אובייקט, שדה ועוד משפת המקור לשפה המשותפת, ולסיים ביצירת אפליקציה זהה עם אותו ממשק משתמש.

היתרונות כאן הם ברורים: ליהנות מכל העולמות. כלומר, שינוי קטן שעושים בקוד לא מצריך שינויים בכל פלטפורמה בנפרד אלא שינוי במקום אחד משותף, ולאפליקציה יש Look & Feel כמו לכל אפליקציה אחרת. החסרונות כאן הם בכוח האדם – כעת המפתחים שהתרגלו לפתח ב-Java או Objective-C ייאלצו לעבור לפתח בשפה משותפת.

הדוגמאות כאן כוללות את Xamarin ואת React Native, אם כי React Native אינו מספק כרגע כיסוי מלא בכל המקרים, אלא כתלות בפונקציונליות הדרושה על מנת לפתח את האפליקציה.

הכתבה בחסות מיקרוסופט

Xamarin הוא פתרון Native העונה על הצורך של שימוש בקוד משותף והוא מובנה ב Visual studio 2017 להורדת גרסת ה Enterprise לחצו כאן . הפיתוח בXamarin הוא בC# ובנוסף, Xamarin איננה כובלת את המפתח לכדי קוד משותף ותו לא, אלא מאפשרת ליצור ממשק משתמש ייחודי לכל פלטפורמה. חברת CodeValue החלה בתחרות נושאת פרסים לפיתוח אפליקציות xamarin פשוטות, זו הזדמנות מצויינת להכנס לעולם ה Xamarin, להכיר את היכולות ולהרוויח על הדרך- להצטרפות לחצו כאן

כתב אורח

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

הגב

14 Comments on "כל האפשרויות לפיתוח Cross-Platform במובייל"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 
Sort by:   newest | oldest | most voted
אריה
Guest
יותר ויותר מפתחי אפליקציות מפתחים רק לפלטפורמה אחת… פעם זה היה רק לאייפון, היום זה בעיקר רק לאנדרואיד כי הנתח שוק של אפל הצטמצם קשות… בקצב הזה, כמו כל דבר בטבע… אבולוצייה… החזק שורד… זה רק עניין של זמן… אפל יהפכו לבלאקברי או נוקייה או מייקרוסופט, מה שמשותף להם שהם כולם ניסו לשחק אותה עם מערכת הפעלה משלהם וחנות אפליקציות משלהם, והשוק לא יכול להתמודד עם ריבוי פלטפורמות… זה לא אפשרי עסקית לייצר 5 גרסאות של אפליקציות שונות על פלטפורמות שונות… זה פיתוח יקר… אפל או גוגל ימותו… ולגוגל יש יתרון של נתח שוק ושליטה ברשת והם לא פראיירים בכלל…… Read more »
גוני
Guest

אתה דרמתי על

עמית פלומו
Guest

לא. היקום תמיד שואף לאנטרופיה גבוהה יותר. (סיבוכיות וגיוון). זה נכון גם לגבי עולם התוכנה. הרי לא הפסקנו לפתח שפות תכנות אחרי שהמציאו את C. במקרה של עולם המובייל אנחנו נראה עוד ועוד מערכות הפעלה חדשות בעתיד ויותר פלטפורמות, חלקם יעלמו חלקם ישרדו, כמו באבולוציה. אבל כמובן שיהיו עוד ועוד ובהחלט לא נתכנס לאחת מהן כמו שאתה טוען. תראה מה קורה בעולם הפרונט-אנד, כל יומיים יוצאת טכנולוגיה חדשה שגורפת קהל מפתחים אבל הגיוון הוא אדיר, וממשיך לגדול. לטובה או לרעה. ככה זה ביקום. https://www.ted.com/talks/david_christian_big_history#t-92678

תגובה ללא חסות
Guest
תגובה ללא חסות

,haxe,intel multi-os,robovm,javafx/java9, codenameone
דרך אגב הפיתוח של robovm שנקנתה ע"י xarmine לצורך שיפור עמדות במ"ומ חוסל ע"י החברה שקנתה אותה- מיקרוסופט…ע"ע Embrace, extend and extinguish

השם שלי קצר מידי
Guest
השם שלי קצר מידי

תודה על הmention
קודניים וואן חברה ישראלית דרך אגב ולא נופלת תחת אף אחת מהקטגוריות למעלה.

בנימין
Guest

React-Native לא מתכוון לכסות את כל הAPI של הפלטפורמות. כל מי שפיתח טיפה לעומק עם React-Native מבין שכל התפיסה היא לכסות את הדברים הבסיסים ולתת למפתח שAPI שיאפשר לו לכסות כל דבר נוסף בכתיבה של Native Code.
אני מפתח בRN כבר שנה ופיתחתי כמה דברים מורכבים. לא נתקלתי במשהו שהפלטפורמה הגבילה אותי.

ברק
Guest

מסכים עם זה. react native היא פלטפורמה טובה (אנחנו מפתחים בה כבר הרבה זמן) וחוסכת הרבה זמן וכאבי ראש.

משה
Guest

אני עוסק בפיתוח כ 3 או 4 שנים וכל הזמן אני אני מרגיש שחסר לי 98 אחוז מהידע…

תותח
Guest

אתה לא יודע אם אתה 3 או 4? ;)
זה לא 15 או 16… :)

meni
Guest

אני מפתח כבר.תקופה ארוכה ב ionic 2 וזה ממש לא אתר מותאם למובייל
הוא כמעט אפליקצייה ניטיבית לכל דבר עם אפשרות כמעט לגשת לכל דבר במכשיר והביצועים שלו לא רעים בכלל.. לדעתי גם יותר מ RN,שהאפליקצייה שלכם פותחה בזה.
https://ionicframework.com/docs/

יוגב
Guest

אלטרנטיבה נוספת וקצת פחות מוכרת ל-RN ו-Xamirin היא Nativescript, שהפיתוח בה הוא ב-JS או ב-TS ואנגולר.

עמית א
Guest

Xamrin.. Well you will to program in XAML which is not so intuitive and fun.
Mmm well I think they fail to mention NativeScript. Devlope intuitive with typescipt and angular to native code. How can yo beat that?

אני
Guest

נו ברור שהכותבת ממיקרוסופט תגיד ש Xamarin זה הכי טוב.

Ido
Guest

סתם כתבה מאעפנה שרוצה לייחצן את xamarin

wpDiscuz

תגיות לכתבה: