יום שישי, 7 במאי 2010

מה זה היברידי ולא מכונית?

בשבוע שעבר שוב השתתפתי בכנס של ה-IMA. הפעם עסק הכנס באפליקציות היברידיות, או בעברית, יישומי כלאיים (אל דאגה, הרגע המצאתי את הנוסח העברי, אף אחד שם לא השתמש במונח הזה). תודו שזה נשמע לכם מרתק. עכשיו אתם בטח שואלים את עצמכם את השאלה הבאה: "יישום כלאיים אמור להיות הכלאה של שני סוגי יישומים שונים. אילו סוגי יישומים קיימים?"
שיחקתם אותה, זו באמת שאלה מצויינת. ובכן, בעולמם המכשירים הניידים נהוג להבדיל בין שני סוגי יישומים עיקריים. יישומים שרצים על המכשיר (Native), ויישומי רשת (Web). לכל אחד מסוגי היישומים הללו יש יתרנות וחסרונות שנובעים מעצם טבעם. יישומי Native הם בעצם קבצים בינאריים מסוג זה או אחר שמותקנים בזיכרון המכשיר. יישומי רשת נמצאים על השרת ורצים על המכשיר באמצעות דפדפן האינטרנט.
יישומי רשת זולים יחסית לפיתוח. לא צריך לפתח את היישום מחדש עבור כל מערכת הפעלה וכל מכשיר (פעולה הידועה כ-Porting). מספר הדפדפנים הקיימים בשוק מצומצם הרבה יותר ממספר דגמי המכשירים כך שניתן להגיע לנתח שוק רחב בהשקעה נמוכה יחסית. כמו כן, ניתן להריץ את יישומי הרשת על מכשירים הרבה פחות מתקדמים (בעלי מעבד חלש ומעט זיכרון) ולכן גם זולים יותר.
מצד שני, יישומי הרשת מוגבלים ביכולות שלהם. כיוון שהם לא נמצאים על המכשיר, אין להם גישה לתכונות רבות של המכשיר. הם לא מסוגלים לקרוא ולכתוב את רשימת אנשי הקשר של המכשיר, או לגשת לסנסורים של המכשיר (כגון מד תאוצה, או מד שטף מגנטי - תודו שלא ידעתם שיש לכם כאלו במכשירים הניידים). חסרון נוסף של אפליקציות הרשת הוא שהן מופעלות רק דרך הדפדפן - אין אפשרות להשתמש בהן ב-Offline, ללא לגלוש באינטרנט.
יישומי Native נהנים מהימצאותם על המכשיר, ויש להם גישה לכל הממשקים שהמכשיר מספק. הם יכולים במקרים מסויימים להידמות לאפליקציות של מערכת ההפעלה. מצד שני, פיתוח של יישום כזה הוא יקר יחסית. הוא יקר מכמה סיבות. הסיבה הראשונה היא שיישומים אלו הם בד"כ יישומים מורכבים יותר מיישומי הרשת. הסיבה השנייה נקראית פראגמנטציה (צר לי, לא מצאתי את המילה המתאימה בעברית - אולי פיצול). משמעות הפראגמנטציה בשוק המכשירים הניידים היא שכל מערכת הפעלה, ולפעמים גם מכשירים שונים המשתמשים באותה מערכת הפעלה, שונים זה מזה במידה כזו שלא תאפשר ליישום לרוץ באותו אופן על מכשירים שונים. אם אני מפתח יישום למכשירי אנדרואיד, אני לא יכול להפעיל אותו על iPhone, או בעצם על כל מכשיר שהוא לא אנדרואיד. מצב זה גורם לכך שעל מנת לכסות נתח שוק נרחב, עלי לייצר לפחות 3-4 יישומים שונים, שעלות כל אחד מהם עלולה להיות משמעותית. הסיבה השלישית היא קושי ההפצה - על מנת שהיישום ירוץ, אנחנו צריכים לגרום למשתמש להתקין אותו על המכשיר. לכל מערכת הפעלה יש דרך משלה להתמודד עם בעית ההפצה, אבל העסק לא תמיד פשוט. כמו כן, בעת העלאת גירסת תוכנה מתקדמת יותר, יש לחזור על תהליך ההפצה מחדש.
יישומי הכלאיים משלבים בין שני סוגי היישומים המובהקים. מצד אחד, יש להם חלק שנמצא על המכשיר ויכול לגשת לכל הממשקים שהוא מציע. מצד שני, היישום ניגש לרשת על מנת להוריד משם את התוכן. היישום שפיתחנו בכנס הוא דוגמא טובה. פיתחנו יישום שמציג את הדפדפן של המכשיר. היישום מתחבר לסנסורים של המכשיר ומזהה מתי המשתמש מזיז את המכשיר. בתזוזה שמאלה, היישום מציג בדפדפן את אתר עיתון הארץ. בתזוזה ימינה, היישום מציג את האתר של רוטר.
השאלה המעניינת בנושא יישומי הכלאיים היא האם ניצול היתרונות של שני סוגי היישומים יהיה משמעותי יותר מהחשיפה של היישום לחסרונות. יישומי כלאיים יישארו חשופים לפראגמנטציה של המכשירים ולכן כאשר מפתחים יישום כזה, הוא חייב להיות מספיק מתוחכם על מנת שהחלק שמחובר למכשיר יוכל לתמוך, ללא שינוי, בגרסאות עתידיות של של החלק שמחובר לרשת.
המגמה בעולם, נוטה לכיוון של יישומי רשת, אולם תשתית הרשת עדיין לא חזקה מספיק על מנת לדחוק את רגלי יישומי המכשיר מהעולם. יישומי כילאיים אמורים להיות הגשר בדרך לשם, אבל הם נמצאים עדיין בתחילת דרכם. מי שיידע ליצור אותם בדרך שיתרונותיהם יגברו על חסרונותיהם, ייצור לעצמו יתרון גדול בשוק, אבל כמו שאני רואה את הדברים כרגע, יהיה קל מאוד ליפול למלכודת שתיצור יישומים מרובי חסרונות ובעלי יתרונות מוגבלים בלבד.
יהיה דיסקו.

תגובה 1:

  1. אהבתי.
    אני רואה שיש הרבה מחשבה מאחורי הקליק הפשוט שלנו על הסמליל...

    השבמחק