בין אם אתם הולכים לפתח אפליקציית ווב או מובייל בעצמכם או בין אם אתם הולכים לפתח ב- חברת פיתוח מנוסה , בכל מקרה אתם הולכים להיתקל באותה שאלה חשובה: ״באיזו טכנולוגיה כדאי לפתח אפליקציה?
אוקיי, אז החלטתם לבנות אפליקציה, מזל טוב! אחת השאלות הראשונות שעומדת לפניכם היא בדיוק השאלה הזאת, באיזה טכנולוגיה כדאי לבנות את האפליקציה? הדבר החשוב ביותר כאן, הוא להבין ששאלה זו חשובה, מאוד, והתשובה עליה גורלית להצלחת האפליקציה ועתיד הסטארט-אפ שלכם. ננסה לתת לכם כאן מספר קווים מנחים, אותם קווים מנחים שאנחנו נותנים לכל לקוח שנכנס למשרדים שלנו בפעם הראשונה. בכדי לענות על התשובה הזאת בצורה נבונה, יש קודם כל צורך להבהיר מספר דברים בסיסיים.
האם צריך צד שרת עבור האפליקציה?
ככלל אצבע, כן, צריך שרת עבור האפליקציה שלכם. רוב אפליקציות המובייל וכל אפליקציות הווב צריכות "Backend" או במילים אחרות, שרת, אשר הן מתקשרות מולו ונעזרות בו על מנת לעקוב אחרי המידע של המשתמשים, המידע של האפליקציה, תזמון אירועים ודחיפתם לאפליקציה, עיבוד נתונים, ניהול האפליקציה וכו׳.
יש מספר מקרים בהם אפליקציה לא צריכה שום סוג של שרת על מנת לעבוד בכלל (לדוגמא: משחק פשוט, או כלי כגון אפליקציית פנס). אך ברגע שיש צורך בשליטה דינמית על האפליקציה ותכני האפליקציה, או צורך בשמירת נתונים או מעקב אחריהם, כגון: שמירת נתוני משתמשים, דרישות אלו בהכרח מצריכות צד שרת, צד שרת חזק ויעיל שייתן מענה נכון לצרכיי האפליקציה.
אתם יכולים לקרוא על כך בהרחבה כאן: שרת עבור אפליקציית מובייל, למה זה נחוץ ?
איזו טכנולוגיית צד שרת טובה עבור אפליקציית מובייל?
ניתן לבנות צד שרת לאפליקציה על ידי כמעט כל הטכנולוגיות צד שרת שקיימות היום, ויש דיי והותר טכנולוגיות ושפות תכנות לבחור מתוכן: PHP, .NET, NodeJS, ג׳אווה, פייטון, Rails, ועוד טובים ורבים.
אז איך בוחרים מתוכן? אתם צריכים לבחור טכנולוגיה שהיא גמישה וסקיילבילית (סילומיות), בכדי שברגע שתפרצו ותגדלו הטכנולוגיה שבחרתם לא תקשה עליכם מלהתקדם. הדבר השני שצריך לבדוק הוא כמה ״בוגרת״ הטכנולוגיה שבחרתם, הכוונה בכך היא כמה משתמשים עובדים איתה, בודקים אותה ומתקילים אותה שוב ושוב ברמה יומית. ובנוסף טכנולוגיה יציבה מספיק שלא משתנה כל יומיים, ויש לא מעט לדוגמאות לטכנולוגיות כאלו.
דבר נוסף שיש לקחת בחשבון הוא גודל הקהילה של הטכנולוגיה וזו נקודה חשובה מאוד משום שאתם חייבים לוודא שתוכלו למצוא מפתחים מנוסים בשלבי הגדילה. אם אתם משתמשים בטכנולוגיה החדשה והמגניבה, ייתכן ויהיה לכם מאוד קשה בשלב מאוחר יותר למצוא מפתחים חזקים ומנוסים באותה טכנולוגיה. גם אם כרגע בחרתם בפיתוח מול חברת פיתוח אפליקציות מנוסה, עדיין, שיקול זה חשוב מתמיד, כי יכול להיות שבשלב הבא תירצו להקים צוות עצמאי לסטאט-אפ שלכם ולהמשיך את הפיתוח כחברה עצמאית.
מה גם שבמידה ותיתקלו בבעיות בפיתוח פיצ׳רים חדשניים, אתם תרצו לדעת שיש אחרים שמשתמשים באותם כלים בהם אתם משתמשים ומנסים לתקן ולשפר את הטכנולוגיה שבחרתם.
עכשיו שהגעתם למסקנות בנוגע לטכנולוגיית צד השרת, זה הזמן לחשוב ולענות על השאלה הבאה, מה הטכנולוגיה המומלצת לפיתוח אפליקציית המובייל עצמה.
האם כדאי לפתח אפליקציית מובייל Native או היברידית?
בואו נדבר על ההבדלים לשנייה.
פיתוח אפליקציית Native אומרת שאתם הולכים לפתח שתי אפליקציות נפרדות באמצעות שתי טכנולוגיות ושפות נפרדות. אתם הולכים לבנות אפליקציית Native באמצעות ג׳אווה ואפליקציית iOS באמצעות Objective-c או Swift. מה שיצריך לפחות שני מפתחים עם יכולות פיתוח שונות מאוד אחת מהשנייה.
במידה ואתם הולכים עם האופציה של פיתוח אפליקציה היברידית, הקוד צריך להיכתב אך ורק פעם אחת, בשפה אחת עבור אנדרואיד ו- iOS, מה שאומר שכנראה תוכלו לעשות זאת עם מפתח אחד עבור שתי הפלטפורמות, זהו יתרון ענק, בטח בהסתכלות ראשונית ברמת עלויות פיתוח אפליקציה.
שנייה לפני שאתם נהיים סופר שמחים (מצטערים על זה) ובטוחים שזו ההחלטה הקלה ביותר שהייתם צריכים לעשות אי פעם, ואתם סגורים על פיתוח אפליקציה היברידית, יש מספר חסרונות מאוד משמעותיים בפיתוח היברידי שצריך לקחת בחשבון כאן. דוגמא זריזה לכך היא שימוש בפיצ׳רים מובנים של המכשיר. כל האפליקציות ההיברידיות משתמשות בסוג של מעטפת (Wrapper) שמשתמשת ב חבילות או ספריות קוד על מנת לגשת לפיצ׳רים מובנים במכשיר (לדוגמא: חיישנים, שימוש במצלמה, אנימציות וכו׳), ספריות אלו כתובות בשפות מקור (Native code).
לכן במידה ותרצו להשתמש בפיצ׳ר מובנה תצטרכו למצוא ספרייה מתאימה שיודעת לעשות זאת, במידה ואין, תצטרכו לכתוב אחת בעצמכם. בנוסף בהסתכלות לטווח הרחוק, כאשר פיצ׳ר חדש ונוצץ יגיע, תצטרכו לחכות על שתצא ספרייה שתומכת בפיצ׳ר החדש, לא תוכלו להכות בברזל שהוא חם, ולצאת לשוק באותה מהירות שאפליקציית Native תוכל, אתם עלולים לראות את המתחרים שלכם עוקפים אותכם בסיבוב.
עוד חסרון הוא שבין אפליקציות Android לבין אפליקציות iOS יש הבדלים מהותיים בעיצוב ובחווית משתמש שהם מציעים למשתמשים שלהם. הדוגמא הקלאסית לכך היא שבעוד משתמש אנדרואיד לוחץ על כפתור ה״אחורה״ משתמש iOS יחפש את החץ אחורה בחלק העליון של המסך.
החסרון המשמעותי ביותר הוא ביצועים. גם המעריץ האדוק ביותר של האפליקציות ההיברידיות יהיה חייב להודות שכמדובר בביצועים, כאפליקציות Native רצות מהר יותר, לוקחות פחות זיכרון ובסוף נותנות למשתמש חווית משתמש טובה יותר. אפליקציות היברידיות משתמשות באינטנסיביות ב- WebViews שלעצמן צורכות לא מעט זיכרון, למעשה רוב הפעולות שאפליקציה היברידית תבצע יהיו פחות מהירות ויצרכו יותר זיכרון מאשר הפעולות המקבילות באפליקציית Native.
כן, פיתוח אפליקציות היברידיות הוא מעולה, הוא חוסך זמן וכסף, והטכנולוגיות ההיברידיות גודלות בקצב מדהים, אבל נכון להיום, עדיין יש לטכנולוגיות האלו עוד דרך לעבור ושלל חסרונות להתגבר עליהן. שלא תבינו לא נכון, אנחנו ממש לא נגד פיתוח אפליקציות היברידיות, אך כחברת פיתוח אפליקציות אנחנו מרגישים שזה עוד לא לגמריי בשל ומעדיפים לבחור את החזון של לספק את התשתית הטובה ביותר וחווית המשתמש הטובה ביותר שנוכל להשיג עבור המשתמש בצד השני של המסך.