חושבים לפתח אפליקציה ב-React Native? הנה כמה נקודות שכדאי להביא בחשבון
הפלטפורמה של פייסבוק יוצרת מהפכה בפיתוח אפליקציות למובייל, אך האם היא מתאימה לכל הסטארטאפים והחברות? קיבצנו את כל הסיבות למה כדאי ולא כדאי לפתח ב-React Native
צלם/תמונה: Justin Sullivan/ Getty Images Israel
מאת בוריס דינקביץ’, ממקימי 500Tech
בשנה האחרונה נהיה באזז סביב פלטפורמת React Native, שיצרה מהפכה של ממש בתחום פיתוח האפליקציות למובייל. מדובר בפלטפורמת קוד פתוח מבית היוצר של פייסבוק, שמאפשרת לכתוב אפליקציית אנדרואיד ואפליקציית אייפון בעזרת JavaScript בלבד. במקרים שגם אתר הווב של החברה כתוב בריאקט, הטכנולוגיה מאפשרת לחלוק את הקוד לא רק בין אפליקציות המובייל, אלא גם בינן לבין אתר האינטרנט של החברה.
בשוק יש כבר די הרבה אפליקציות שכתובות ב-React Native וכלל לא ניתן להרגיש בהבדל בינן לבין אפליקציה שכתובה בטכנולוגיה מותאמת. פייסבוק ואינסטגרם הן החלוצות (מן הסתם, שכן פייסבוק היא המפתחת של הטכנולוגיה), אבל גם האפליקציות של Wix, Airbnb ו-Uber Eats משתמשות בטכנולוגיה.
מתי כדאי לכתוב את האפליקציה ב-React Native ומתי עדיף להישאר עם Java ,Swift ושאר הטכנולוגיות המותאמות לכל פלטפורמה בנפרד? הנה כמה נקודות למחשבה שיעזרו לכם להחליט.
למה כן React Native?
קוד אחד למערכות הפעלה שונות: במקום להחזיק לפחות שלושה מפתחים עם ידע שונה – מפתח ג’אווה לאנדרואיד, מפתח סוויפט ל-iOS ומפתח JavaScript לווב – בפיתוח ב-React Native אפשר להחזיק אדם אחד עם ידע ב-javascript, או צוות מעורב שמפתח כולו ב-React ו-React Native ויכול לחלוק את הידע.
נראות ויזואלית: לעומת אפליקציות היברידיות, שכבר קיימות בשוק, אפליקציות שפותחו ב-React Native, הן כשמן – Native. מה ההבדל? הנה דוגמה: כשיוצרים כפתור באפליקציה היברידית (Cordova, PhoneGap), למעשה כותבים קוד שפונה לדפדפן ויוצר כפתור דפדפן על מסך הטלפון. לעומת זאת, ב-React Native הקוד פונה למערכת ההפעלה של המכשיר ויוצר כפתור “אמיתי” – כמו שהיה נוצר על ידי Java או Swift. בשיטה זאת לא ניתן להבדיל בין הטכנולוגיות, ועל כל מכשיר האפליקציה נראית כאילו פותחה בשבילו.
עדכונים מיידים: גם אחרי שהאפליקציה באוויר יש צורך תמידי בעדכונים, תיקוני באגים ועוד. ב-React Native אפשר לבצע את התיקון פעם אחת ולעדכן את כל המערכות ביחד (ווב, אנדרואיד ואייפון). יתרון נוסף ומכריע הוא שאין צורך לחכות לאישור של Google Play או של Appstore לכל תיקון וניתן לעשותו מיידית על כל המכשירים שבהם מותקנת האפליקציה.
קהילה תומכת: React Native היא קוד פתוח לחלוטין: יש סביבה קהילה תוססת וחיה שיוצרת בלי הפסקה מאמרים, קוד משותף ועוזרת זה לזה בקידום ויישום הטכנולוגיה.
למה לא React Native?
סוג האפליקציות: אמנם ניתן לפתח 90% מהאפליקציות שקיימות היום בשוק ב-React Native, וגם אפליקציות ויזואליות כמו אינסטגרם פותחו בטכנולוגיה הזו, אבל עדיין – פחות מומלץ לפתח בה אנימציות מורכבת ומשחקים. כלומר, אם קהל היעד שלכם הוא גיימרים, עדיף שתיצמדו לטכנולוגיה אחרת.
“אם זה לא שבור אל תתקן את זה”: אם יש לכם כבר אפליקציה טובה ב-iOS או באנדרואיד ואתם מרוצים, אין טעם לעשות את המעבר. לא פשוט לבצע מעבר הדרגתי מאפליקציות נייטיב ל-React Native ולרוב נדרש שכתוב מחדש.
הטכנולוגיה עדיין חדשה: React Native פתוחה לשימוש רחב רק שנים בודדות. אמנם בפייסבוק יש צוות ייעודי לפיתוח המערכת, אך היא עדיין עוברת שיפורים.
יכולות מיוחדות: React Native אמנם מאפשר לפתח תוסף באנדרואיד ובאייפון ולשלבו בקוד הרגיל של האפליקציה, אך במקרים שיש הרבה דרישות מיוחדות, עדיף לבחור לפתח את כל האפליקציה באנדרואיד או אייפון.
פתרונות מותאמים למובייל הופכים ליותר ויותר טובים, כך שסטארטאפים קטנים שהאפליקציה היא לא עיקר המוצר שלהם, יכולים לדחות את פיתוח אפליקציית הנייטיב לשלב מאוחר יותר ולספק חוויה טובה ליוזר בווב ובמובייל ווב. עדיין, אין ספק שמבחינת יכולות, אפליקציית נייטיב תיתן חוויה טובה בהרבה מכל פתרון וובי שמותאם למובייל, וגם ברמת המותג – אין חברה גדולה שתרשה לעצמה לא להיות נוכחת בחנות האפליקציות. בחישוב של תוצאה מול עלות, React Native יכולה להיות פתרון משתלם.
הגב
20 תגובות על "חושבים לפתח אפליקציה ב-React Native? הנה כמה נקודות שכדאי להביא בחשבון"
* היי, אנחנו אוהבים תגובות!
תיקונים, תגובות קוטלות וכמובן תגובות מפרגנות - בכיף.
חופש הביטוי הוא ערך עליון, אבל לא נוכל להשלים עם תגובות שכוללות הסתה, הוצאת דיבה, תגובות שכוללות מידע המפר את תנאי השימוש של Geektime, תגובות שחורגות מהטעם הטוב ותגובות שהן בניגוד לדין. תגובות כאלו יימחקו מייד.
כתבה דלה מאוד
צודק, הנה משהו בעל יותר בשר שמשווה בין צורות הפיתוח השונות כולל חברות ישראליות בתחום (קודניים וואן) https://www.linkedin.com/pulse/how-pick-right-cross-platform-solution-shai-almog
הכתבה שבלינק מאד איכותית.
תודה רבה
נכנסתי ללינק המומלץ. פוסט עוד יותר שטחי – הבנאדם כנראה מתחנף למנכ”ל שלו.
תגיב לכתבה שם ודבר על איך אפשר לשפר אותה…
מה זאת אומרת שלא צריך לחכות לAppstore וGoogle play? אני לא צריך לשלוח להם גרסא חדשה אם אני מעדכן משהו?
כלי ג׳אווה סקריפט בסגנון הזה מכילים את הסקריפט המלא של האפליקציה בפנים. הם לא ״באמת״ נייטיב. זה אומר שאתה יכול לשלוח עידכון (משהוא שלא מוצא חן במיוחד בעיני אפל והמדיניות שלהם קצת עמומה פה) אבל זה גם אומר שיש וקטור התקפה מאד קל להאקר בשביל להשתלט על האפליקציה שלך… גם reverse engineering של הקוד יותר קל במצבים כאלו.
הווידג׳טים שריאקט עובד איתם הם נייטיבים זה אומר שכל קריאה בין הג׳אווה של אנדרויד (שבה הווידגטים ממומשים) ובין ריאקט נייטיב צריכה לעבור דרך הJNI וזו בעיית פרפורמנס אינהרנטית בנוסף לבעיות המובנות בג׳אווה סקריפט.
נסחפת קצת עם כל ההפחדות
יש בריאקט נייטיב פתרון מצויין לבעיה שלוקח לאפל לאשר עדכון 14 יום.
יש כל מיני אפשרויות לעדכון אבל אחת הפולאריות היא של מייקרוסופט, מאובטחת בצורה טובה מאד
https://microsoft.github.io/code-push/
ואם אתה עדיין פוחד אל תתקין וככה לא תהיה חשוף.
לגבי ה reverse engineering, חלקית נכון אבל שולי ביותר, ממילא לא מומלץ להחזיק פטנטים בפרונט אלא רק בשרת ולכן כל מה שהם יראו אלו קריואת לשרת.
אין בעיות ביצועים בכלל ואם יש אלו בעיות שיכולות להיות בניייטיב ונובעות ממימוש לא נכון.
בקיצור תתקדם לעתיד
יש פתרונות הרבה יותר מתקדמים מריאקט אבל אתה שבוי בקונספציה של ג׳אווהסקריפט.
בעיות הביצועים הם אינהרנטיות על אנדרויד ועם אתה לא מבין אותם אתה אולי צריך לקרוא על הJNI bridge…
הקטע שכל הבעיות האלו ורבות אחרות לא קיימות בקודניים וואן אז אולי אתה תתקדם לעתיד.
React Native זאת נחלה של חברות גדולות עם משאבים רציניים הן מבחינת כא רלוונטי זמין וידע טכנולוגי ,הן מבחינת משאבים כספיים והן מבחינת זמן. לחברות start up עם משאבים ולוז מצומצמים זה פחות מתאים ולעיתים אך מסוכן.
ההפך, עם מפתח אחד ואתה יכול לפתח ל ווב, אייפון ואנדרואיד
בתאוריה זה תפור על סטארטאפ, עם שליש ידע וחצי משאבים קבלת הכל
ממליץ בחום דווקא לסטארט מנסיון
לא התקרב..
אין אפשרות לפתח SDK. קריטי.
מעניין אותי לשמוע את דעותייכם על Xamarin , שהיא גםשפה לפיתוח היברידי לחלוטין.
א. עכשיו ראיתי בתגובות את האתר: https://www.linkedin.com/pulse/how-pick-right-cross-platform-solution-shai-almog , זה יכול להביא פתרונות גם למפתחי ++JAVA,C, ביחס לפתרון היברידי
ב. היתרונות של Xamrin זה שאת הקוד ה”חישוב” אתה צריך לכתוב פעם אחת,ואת הקוד ה “תצוגה” אתה צריך לכתוב לכל מכשיר בנפרד, (וגם שכל כתיבת הקוד היא בc#)
ג. לגבי האייפון אתה צריך מחשב מאק לחבר את הxamrin איתו
ד. ועוד יש בעיות של תאימות שאין לי כח לפרט עליהם..
ממליץ על זה למי שיש לו קבוצה של מתכנתים שיודעים רק C#
כתבה מאוד שטחית, מה שמאפיין לצערי את איכות הכתבות שמפורסמות ב Geektime.
לאדע.. טוב לי עם ionic:)
שכחתם להתייחס לבעיית הזכויות יוצרים של הטכנולוגיה…
איזו בעיה? אפשר מקורות?
חברים תתקדמו ל vue.js + nativeScript