בין אם אתם משתמשים פרטיים, משתמשים ארגוניים, מפתחי תוכנה או כל בנאדם אחר שחי בעולם שבחוץ - אתם בטח מחזיקים בעצמכם מכשיר סלולרי חכם (Smart Phone) ועושים בו שימוש מסיבי.
במידה וגם אתם רוצים להיות שותפים בטירוף העכשווי של אפליקציות למובייל בטח חשבתם על לייצר אפליקציית מובייל שתענה לכם על צורך כלשהו. בעולם של היום - אם זה לא מובייל זה לא קיים.
במידה וכבר הרעיון בידכם ויש לכם את תכנית עסקית בשביל לממש אותו - השלב הבא יהיה לייצר את האפליקציה.
שלב זה הוא השלב מרכזי שבו בדרך כלל אתם מתבקשים תחילה לבחור - לאיזו פלטפורמה אתם רוצים לפתח?
היום בשוק קיימים מספר פלטפורמות מרכזיות
• Android - מתאפיינת במגוון רחב של מכשירים אופציונליים. קהל שוק אמנם רחב אבל מורכב להתאים אפליקציה אחת שתתאים לכולם.
• iOS - מכשירי הiPhone, iPad למיניהם. מאופיין במגוון מצומצם של מכשירים אשר קל להתאים עבורם אפליקציה אך קהל השוק מצומצם יותר ואינו מאפשר חדירה של מכשירים אחרים.
• Windows Phone - מערכת ההפעלה של Microsoft שעברה שדרוג רציני מגרסותיה הקודמות (Windows Mobile מישהו זוכר בכלל?) ועכשיו עומדת לפרוץ את השוק עם המכשירים של Nokia.
• Black Berry - טכנולוגיה שהייתה חדשנית אך היום מראה סימני גסיסה מבחינת נתח שוק.
כיום בברירת המחדל - עבור כל פלטפורמה נפתח אפליקציה אשר תתאים לה ספציפית.
יש אפשרות לפתח פעם אחת אפליקציה אשר תתאים לכל הפלטפורמות?
פה בדיוק נכנסים הכלים אשר משווקים את עצמם כ"פתרון" לכל ריבוי הפלטפורמות ומבטיחים לחסוך את הכאב ראש של פיתוח מחדש עבור כל פלטפורמה.
שני הכלים הפופולריים ביותר הם PhoneGap ו- Appcelerator Titanium,
שניהם מאופיינים בקווים מאוד דומים של פעולה וכל אחד מהם מספק אופן קצת שונה למימוש.
הבסיס שמאפיין אותם ומוצרים דומים שכאלה הוא:
• מספקות framework לביצוע רוב הפעולות מול מערכות ההפעלה השונות (מול הnative)
• אין צורך ללמוד שפה ספציפית (כגון Objective-C או Java), אלא להשתמש בשפות WEB כגון java script
• בסוף התהליך הן מספקות קבצי התקנה שונים עבור הפלטפורמות השונות
מהם החסרונות במוצרים אלו? (או: למה לא כל האפליקציות מבוססות על ה"קסם" הזה?)
חסרון אחד הוא בעצם המרחק של התכניתן מהשירותים הבסיסיים של מערכת ההפעלה.
לדוגמה - שימוש במצלמה, בWiFi, בספר הטלפונים של המשתמש וכדומה הופכים למורכבות חדשה שלא קיימת בתכנות ישירות לnative של המכשיר.
בפיתוח של אפליקציה פשוטה זהו עוד פער שניתן להתמודד עמו - אך ברגע שהמורכבות עולה הפונקציונליות הופכות להיות מורכבת יותר ולעתים אף בלתי אפשרית.
חסרון נוסף הוא בעצם עלות הייצור של אפליקציה שכזאת אשר מתבטא בזמן הפיתוח והמומחיות הנדרשת. בעוד שקל מאוד למצוא תכניתן שמתמחה בAndroid או מתמחה ב iPhone - יהיה יותר קשה להשיג את בעל המקצוע המתאים שמכיר את הכלי ומעודכן בו. גם לאחר שהשגנו כזה, התכנות עצמו יארך יותר זמן מאשר פיתוח רגיל.
חסרון אחרון הוא בעצם התמיכה והשלמות של האפליקציה שלכם: כאשר אתם משתמשים בכלים הללו אתם מייצרים עוד שכבת תוכנה אשר צריכה לתווך בין הקוד הרצוי שלכם לבין המכשיר עצמו. המוצרים הנ"ל לא יכולים להיות אמינים ב-100% והיכן שהם נופלים גם האפליקציה שלכם תיפול.
איך מחליטים האם כן להשתמש או לא להשתמש?
ההחלטה בנוגע לשימוש צריכה להיות נטו בהתאם למאפייני האפליקציה שאתם רוצים לפתח וקהל היעד שאתם מכוונים אליו,
אתאר שני "כללי אצבע" לבחירה בשימוש בכלים אלו:
• אפליקציה פשוטה אשר לא מצריכה שימוש בכלים של מערכת ההפעלה (של המכשיר בעצם) או מצריכה שימוש מצומצם ופשוט
• אפליקציה אשר מיועדת לשיווק ל-3 או יותר פלטפורמות (לדוגמה אנדרואיד+אייפון+בלקברי+ווינדוס)
אז אם ע"פ כללי האצבע האפליקציה שלכם לא מתאימה לתיאור - כנראה שהעלות בשימוש בכלים הללו תעלה על העלות לפיתוח ישירות למכשירים השונים ובכך לא "חסכתם" כלום.
במידה והיא כן מתאימה - דרשו ממפתח האפליקציה שלכם בדיקה מדוקדקת יותר של הנושא.
עולם המובייל הוא עולם שמתפתח כל הזמן,
זכרו - אין שיטה טובה יותר לפתח אפליקציה - יש שיטה מתאימה יותר,
לשאלות או התייעצות נוספת אנא כתבו לי ב- sean@for-each.com
בהצלחה!
כותב מאמר זה הוא מתכנת בחברת for-each, המספקת שירותי פיתוח תוכנה מקצה לקצה עבור עולם המובייל
www.for-each.com - Developing Mobile Software
צרו קשר ונוכל להתאים עבורכם אפליקצית Mobile המתאימה לצרכים שלכם.