2.3.2010

פיתוח אפליקציות ל IPHONE ,
מורה נבוכים לאנשי WINDOWS

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

אז נתחיל...

שאלת השאלות:

אז לפני שאתם רצים לקנות מכשיר נייד חדש ומרימים סביבת פיתוח (אני אחזור לזה), אתם בוודאי מעוניינים לדעת האם האפליקציה שלכם כבר קיימת. הבעיה היא שאין אתר אינטרנט שמאפשר חיפוש ב APPSTORE ועוד לא רכשתם מכשיר - אז מה עושים? מורידים את ה iTunes בחינם ואפשר דרכו לחפש ב APPSTORE.

כיצד להרים סביבת פיתוח:

בשביל לפתח ל IPHONE אתם צריכים מערכת הפעלה OS (רצוי גרסא מתקדמת 10.5/10.6) ואת כלי הפיתוח XCODE. אל תרוצו להרים VM - כי זה לא עובד!. APPLE לא מאפשרים להריץ את מערכת ההפעלה שלהם מלבד על מכונות שלהן. לפי מה ששמעתי אפשר להריץ מערכת הפעלה שנקראית HACKINTOSH (אבל לא שמעתם את זה ממני...) . אם מדובר בהתנסות חד פעמית, אני ממליץ לחפש Mini Mac משומש עם מערכת הפעלה מתקדמת.

הסברים טכניים לאנשי דוט נט: (אם את\ה לא איש טכני דלג מעל 2 הפיסקאות הבאות.)

באופן כללי, לאנשים שבאו מעולם הדו טנט קל יהיה להתחבר לפיתוח בסביבת ה XCODE.
הפיתוח דומה מאד לפיתוח בסביבת WINFORMS , אם כי הכלי הרבה פחות בשל מ VSTS, והוא אוסף של כלים בינהם ה (Interface Builder)IB שמנסה לתת כלי ויזואלי עם חיבור מסובך בין פקדים לאירועים. אז הנה מספר הערות:

  • לתוכניות עבור ה MAC אין קובץ EXECUTABLE – אלא מדובר באוסף קבצים שנמצאים באותה ספריה ומערכת ההפעלה יודעת להשתמש בהם.
  • הכלי (XCODE) מספק TEMPLATE לפיתוח לאייפון וחשוב להבין שבהגדרה כל הפיתוח הנו תחת המודל MVC (זוכרים?...)
  • קיימת הפרדה בין ה UI לקוד. האפליקציה כוללת קובץ XML עם סיומת XIB שמסיבות היסטוריות נקרא עדיין NIB (אני לא אכנס לזה) ושניתן לערוך אותו ללא הקומפיילר.– מזכיר קצת את WPF - לא?
  • הפיתוח מתבצע בשפת Objective C שהיא הרחבה של C לשפה מונחית אובייקטים. (לא מדובר ב C++ ! , יש גם תוכניות לזה).

חשוב לדעת: נכון להיום האייפון אינו תומך ב- MULTITHREADS ולכן ברגע שנכנסת שיחה האפליקציה שלכם נסגרת!!!

קצת על Objective C:

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

  • מדובר בהרחבה של C ולכן אפשר לכתוב בשפת C קלאסית.
  • קיימת חלוקה לקבצי h וקבצי m - בדומה ל C. יש גם את התחלואים של סדר הופעת הרכיבים השונים.
  • כל מחלקה מיוצגת כ INTERFACE בקובץ ה- HEADER
  • יש קונספט של PROPRTIES עם כל מיני ATTRIBUTES כמו readonly ן retain שקשורים לגישה למשתנים ברקע ולניהול הזכרון
  • סימני פלוס ומינוס כאשר פלוס מציין מתודה STATIC
  • יש דגש, באופן טבעי, על נושא הקצאת וניקוי הזכרון מתוך המגבלות של המכשיר

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

הערה:

קיים פרוייקט שנקרא MonoTouch מאפשר למפתחי דוט נט לפתח אפליקציות לאייפון ב C# ולהשתמש בכלי פיתוח יותר מוצלח (http://www.youtube.com/watch?v=M0VoyhKFmWg)

DELIVERY:

אוקיי, סיימתם את כל הפיתוח ואתם רוצים לנסות את ה- App שלכם על אמת. הכל חייב לעבור דרך ה APP STORE. הם מאפשרים לכם לרשום מכשירים ספציפיים לטובת הטסטים. ברגע שתרצו להשיק את האפליקציה הם בודקים אותה ורואים שהיא מתיישבת עם סט חוקים שנקרא HIG (Human Interface Guidence) לא הסתכלתי לעומק, אבל מדובר בכך שהאפליקציה תהיה "צפוייה" עם UI סטנדרטי.

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

קצת על הביזנס:

  1. APPLE מטילה המון מגבלות ובקיצור "הם לא נחמדים" (ג.מ.) 2
  2. APPLE גובה מהמפתחים תשלום של מנויים וגם 30 אחוז מעלות המכירה
  3. בשביל פיתוח חד-פעמי, אפשר למצוא Mini MAC
  4. טווח המחירים של האפליקציות נע בין דולר ל 5 .

הכי חשוב:

במידה והאפליקציה שלכם טובה עדיין קיימות 2 סכנות שעלולות למנוע מכם לקצור פירות: קיימות אלפי Apps(נכון להיום כ-100 אלף) - אי אפשר לחשוב שניתן להציג אפליקציה להמונים ללא פרסום. קיימים אלפי תוכניתנים שיקנאו בהצלחה שלכם ויחליטו להעתיק אתכם במהירות שיא. לכן, לדעתי, לפני שמעלים את האפליקציה יש לבנות תכנית שיווק אגרסיבית שאמרוה להביא את מקסימום ה REVENUE במינימום זמן! עוד מעקף לבעיה, לבנות APP שהיא חלק ממערכת גדולה יותר שנותנת תוכן שלא ניתן לחקות - ראה ערך האפליקציות של הבנק.

אחרית דבר

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

קישורים

3 תגובות:

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

    השבמחק
  2. תותח על אתה.
    אוהבים אותך הרבה.

    השבמחק
  3. איש זקן פעם אמר לי "בכל לילה שאתה הולך לישון עם רעיון , עוד 10000 איש בעולם חושבים עליו"
    על מנת להצליח איתו אתה צריך להיות הראשון שמפיץ אותו , משווק אותו נכון , נותן לו ערך מוסף אל מול המתחרים שיצוצו , " ואתה בכלל מתכנת ".
    לענין ה iphone אז אפשר גם ב .net קוראים לזה mono זה פרויקט של novel :

    MonoTouch is a software development kit for Mac OS X that lets you use .NET programming languages to create native applications for Apple iPhone and Apple iPod Touch devices. MonoTouch allows developers to use the .NET framework and more efficient programming languages, such as C#, to create applications that run on the iPhone and can take advantage of native iPhone APIs. Developers can test MonoTouch applications on the iPhone simulator, as well as physical hardware, and can distribute MonoTouch applications on Apple's App Store.

    http://monotouch.net/

    השבמחק