[30 בנובמבר 2009] [25 תגובות]
מעוניינים לפתח אפליקציות לאייפון אבל לא יודעים איפה להתחיל? הגעתם למקום הנכון. ניסיתי לרכז את המידע שכדאי לדעת לפני שנכנסים לעולם אפליקציות האייפון.
אם אתם רק מחפשים מפתחי אפליקציות, תוכלו למצוא אותם ב-רשימת מפתחי האייפון.
פיתוח אפליקציות לאייפון
אם יש משהו יותר נחמד מלהיות בעל מכשיר אייפון, זה להיות מפתח אפליקציות לאייפון. הסיבה המרכזית לכך והמפתח להצלחה של האייפון הוא חנות האפליקציות שחברת אפל הביאה לעולם, ה-App Store.
בתור מתכנת שתמיד כתב תוכניות בזמנו הפנוי, אני יודע שזה לא פשוט למצוא אנשים שיהיו מוכנים לשלם כסף עבור התוכנות שאני כותב. לא שהן לא טובות או משהו, אבל יש הבדל גדול בין פיתוח תוכניות ומכירת תוכניות. כאן בדיוק מגיעה החנות של אפל לעזור לנו, המתכנתים.
ניתן לפתח אפליקציות לאייפון ולשווק אותן דרך ה-App Store למיליוני משתמשים שמעוניינים בתוכנות חדשות למכשיר שלהם. כל עניין התשלום מוסדר מראש, 70% אל בעל האפליקציה ו-30% ל-Apple. אין צורך לדאוג לקבלת התשלומים מכל הקונים של האפליקציה, Apple כבר יגבו את התשלום ויעבירו לכם את החלק שלכם ברווחים.
דבר אחד שכדאי לדעת מראש הוא ש-Apple נוקטים בשיטה אחרת מחברות כמו Microsoft ו-Google. אפל מעוניינת לשלוט בכל מדיה שנכנסת לאייפון שלכם. אפליקציות יכולות לרוץ על המכשיר רק במידה ואפל אישרו אותן והורדתם אותן מה-App Store. אפל הרחיקה לכת וחסמה את התוסף הפופולארי Flash של חברת Adobe על מנת שלא יוכלו "להכניס" אפליקציות לאייפון ללא אישור של אפל.
עם הידע הזה בראש, ניתן להתחיל במסע בעולם האייפון.
רשימת הציוד
אנחנו רגילים שפיתוח תוכנות בסביבות Windows ול-Linux הוא פחות או יותר חינם. אפשר להשתמש בשפת תכנות כמו Java (או כל שפת תיכנות אחרת), לכתוב תוכנות ולשלוח אותן לחברים או למכור אותן. אצל Apple הדברים לא כל כך פשוטים. כבר אמרנו שאפל שולטת בדרכי ההפצה של האפליקציות לאייפון, כעת נראה שאפל שולטים גם בצורות הפיתוח לאייפון.
הנה רשימת הציוד הדרושה על מנת לפתח אפליקציות לאייפון:
1. מחשב Mac.
הרבה אנשים מופתעים לשמוע שלא ניתן לפתח אפליקציות אייפון במחשבי PC רגילים המריציפם Windows. פיתוח לאייפון אפשרי רק במחשב המריץ את מערכת ההפעלה של אפל, Mac OS X גירסה 10.5 ומעלה. לכן עלינו להצטייד במחשב מקינטוש המבוסס על מעבד אינטל.

המחשב הזול ביותר שאני מכיר שעונה על הדרישות האלו הוא ה-Mac Mini. זהו מחשב קטנטן שתופס מעט מקום משולחן העבודה שלכם, אבל יודע לעשות את העבודה בצורה מצויינת.
2. מכשיר iPhone או iPod Touch.
עלינו לבדוק את האפליקציות שנכתוב על מכשיר כלשהו. מכשיר ה-iPhone מכיל פיצ'רים רבים: מצלמה, GPS, טלפון ועוד עוד. תוכלו להסתדר גם עם iPod touch עבור הבדיקות, אך לא תוכלו לבדוק בו אפליקציות שמשתמשות במצלמה ובטלפון.
3. רישום לתוכנית המפתחים של אפל.
על מנת לפתח אפליקציות, יש להירשם לתוכנית המפתחים של Apple. המחיר הוא 99$ לשנה עבור מפתח בודד והתוכנית מאפשרת לכם לפתח אפליקציות, לבדוק אותן על מכשיר ה-iPhone שלכם ושימוש בחנות האפליקציות על מנת למכור (או לחלק בחינם) את התוכנות שתכתבו. המוטו של אפל הוא: פתחו אפליקציות בקלות - בידקו אותן בקלות - הפיצו אותן בקלות. איפה נרשמים? באתר המפתחים של אפל.
נכון לעכשיו, אין App Store ישראלי ולכן אפל לא יכולים לקבל את התשלום של 99$ שלכם בצורה פשוטה. באחד משלבי ההרשמה תתבקשו לשלוח פקס אל אפל. כדאי לעשות זאת בהקדם מכיוון שתהליך זה עלול לקחת כשבועיים.
עדכון: יוסי מעדכן בתגובות שדווקא יש App Store ישראלי.
בנוסף, ישנה גם אפשרות להירשם לתוכנית כחברה ולא כמפתח עצמאי. אפשרות זאת עולה יותר (299$) אך מאפשרת לצרף מספר מתכנתים לתוכנית. חברות נדרשות להציג אישורים להיותן חברות רשומות. גם כאן מומלץ להתחיל בתהליך ההרשמה מוקדם ככל האפשר.
זה השלב שרוב המתכנתים אומרים משהו כמו "אני לא מאמין! אני צריך לשלם בשביל לפתח תוכנות! הרי אני רק רוצה לבדוק אם זה מתאים לי או לא! ה-Apple האלו נפלו על הראש!". אני מבין אותם, זה באמת שובר את כל מה שהכרנו עד עכשיו. לצערנו, אפל מכתיבים את החוקים בקשר לפיתוח האפליקציות ואנחנו יכולים לפעול לפיהם או לבחור במכשיר טלפון אחר.
"אני רק רוצה לראות איך זה"
בכל זאת, אם אתם ממש רוצים רק לראות איך זה ולהבין אם זה מתאים לכם או לא, תוכלו לבצע "מעקפים":
אין לכם Mac? תוכלו להתקין את מערכת ההפעלה של המקינטוש Mac OS X על מחשב וירטואלי. כתבתי על כך פוסט שלם בעבר: פיתוח אפליקציות בסביבת חלונות. זה לא מושלם אך הצלחתי לפתח את האפליקציה SimpleSense בשיטה זו.
אין לכם אייפון? לא נורא, אפל מספקת תוכנה בשם iPhone Simulator שהיא בעצם סימולטור לאייפון. המשמעות היא שזה נראה כמו אייפון ומתנהג כמו אייפון, אך הכל קורה על מסך המחשב שלכם. תוכלו להתקין את התוכנות שלכם על הסימולטור ולבדוק אותן.
לא רוצים להירשם? אין בעיה, לא צריך. לפחות לא בשלב הראשון של הפיתוח. בדיקת האפליקציות על הסימולטור אפשרית גם ללא הרשמה לתוכנית המפתחים. אם אתם ממש רוצים לבדוק אותן על המכשיר שלכם. תוכלו לעשות זאת על ידי פריצת האייפון שלכם והפיכתו ל-Jailbroken.
פריצת האייפון הוא מהלך ששבר את כל החוקים של אפל והוא בהחלט שווה דיון כאן. לצערי, המידע רב והפיסקה הזאת קצרה מלהכיל את הכל ולכן אני אשלח אתכם לערך בויקיפדיה לקרוא קצת על התהליך. במשפט אחד ניתן להגיד שפריצת האייפון מאפשרת להריץ אפליקציות שלא אושרו על ידי אפל.
מעבר לכך, האפליקציות שלא מאושרות על ידי אפל יכולות לבצע שינויים משמעותיים יותר במכשיר האייפון שלכם, כמו למשל להחליף את דף הבית של האייפון ואת אפליקציית הטלפון. אפליקציות כאלו אינן מאושרות על ידי אפל ולכן רבים נוטים לפרוץ את האייפון.
אחד המפתחים המוכשרים והפופולארים ביותר בעולם האייפון הוא Jay Freeman הידוע בשם saurik. הוא כתב את המדריך הטוב ביותר להרצת אפליקציות על מכשירי אייפון פרוצים.
זהו בנושא מכשירי אייפון פרוצים ומעכשיו נתרכז בצד ה-"כשר" של הפיתוח.
הידע הנדרש
שפת התכנות בה כותבים תוכניות לאייפון נקראת Objective-C. מתכנתים שמכירים את אחת משפות התכנות הבאות: C++, Java או C# יוכלו לבצע מעבר די חלק לעולם ה-Objective-C.
זוהי שפה קלה יחסית, מונחת-עצמים, ה-Syntax שונה במעט מהקונבנציות של C אך מאוד נוח. לצערם של מתכנתי ה-Java ו-C# לא תמצאו בה את ה-Garbage-collector כך שתאלצו לנהל את הזכרון בעצמכם. אפל מספקת הקדמה ל-Objective-C שכדאי מאוד לקרוא. תוך מספר שעות, כבר תדברו Objective-C שוטפת.
המהדר של XCode יודע להדר גם קוד הכתוב בשפות C ו-C++. זוהי אפשרות מאוד חזקה מכיוון שתוכלו לייבא סיפריות שלמות הכתובת בשפת C\C++, להדר אותן ולהשתמש בהן לפיתוח האפליקציות שלכם.
אם לא תיכנתתם בעבר, אני לא מציע לכם להתחיל את קריירת התכנות שלכם באמצעות פיתוח אפליקציות לאייפון. תתחילו בשפות יותר קונבנציונאליות ואז תעברו. תוכלו למצוא מדריכים בחינם לשפת Java ממש כאן.
איפה מתחילים
קניתם מקינטוש, קניתם אייפון ונרשמתם לתוכנית המפתחים של אפל. אתם מוכנים להתחיל לפתח אפליקציות.
הדבר הראשון שאתם רוצים לעשות הוא להוריד את ה-iPhone Software Development Kit, או בקיצור ה-SDK. תוכלו למצוא אותו בפורטל של המפתחים. ה-SDK כולל סביבת עבודה בשם XCode. סביבה זו מאפשרת לנו לכתוב את התוכניות שלנו, להדר (לקמפל) אותן, להריץ אותן על הסימולטור או על מכשיר אמיתי ולדבג (debug) אותן.

ישנו כלי משלים בשם Interface Builder המאפשר ליצור את ה-GUI של האפליקציה בצורה נוחה. כמובן שניתן לכתוב תוכניות ללא העזרה של הכלי הזה ואפילו נאמר "גברים אמיתיים לא משתמשים ב-Interface Builder" אבל לדעתי זה פשוט יהיה... טיפשי.
הרבה מתכנתים מתחילים בדוגמת ה-Hello World המפורסמת, אבל אני דווקא ממליץ על מדריך אחר. זהו מדריך שעובר צעד צעד על השלבים בבניית אפליקצית אייפון פשוטה. בסיום בניית האפליקציה, תדעו להשתמש ב-Interface Builder על מנת ליצור GUI המכיל מספר כפתורים, לחבר את הכפתורים לקוד עצמו ולבצע פעולות בהתאם. ברגע שתסיימו את המדריך הזה, תרגישו קצת יותר בעניינים.
שליחת התוכנית לחנות האפליקציות
כל אפליקציה שנכנסת ל-App Store עוברת תהליך אישור קפדני (פחות או יותר, לפעמים יש תקלות) על ידי עובדי חברת אפל על מנת להבטיח שתכנים לא רצויים ישארו בחוץ ועל מנת להגן על משתמשי האייפון.

מפתחים שולחים את האפליקציות שלהם לאישור ותהליך זה עלול להיות ארוך ומתיש. זמן אישור התוכנית עלול לקחת בין שבועיים לארבעה שבועות ואז האפליציה עלולה להידחות. אחת הסיבות הנפוצות לדחייה היא דווקא בניית ממשחק משתמש לא ידידותי. אפל כתבה מסמך שידריך אתכם איך לא להידחות מסיבה זאת.
מהניסיון האישי שלי, האפליקציה אושרה תוך זמן סביר והייתה זמינה ב-App Store הרבה לפני שציפיתי שהיא תהיה שם.
שיווק האפליקציות
חנות האפליקציות של אפל מכילה המוני אפליקציות ומשחקים. כיצד גורמים לאנשים לבחור דווקא בתוכנית שלנו? עומר פרצ'יק מחלק מספר טיפים בנושא באתר שלו.
אחת השיטות הנפוצות היא יצירת שתי גירסאות של האפליקציה. גירסת קלה (Lite) וגירסה מלאה. הגירסה הקלה מכילה פחות פיצ'רים מהגירסה המלאה והיא מופצת בחינם. משחקים בצורת Lite יכילו את השלבים הראשונים במשחק. הגירסאות המלאות יהיה כמובן בתשלום. זוהי דרך מצויינת לאפשר למשתמשים להתנסות באפליציה לפני שהם קונים.
לאחרונה, אפל מאפשרים למכור פריטים דרך האפליקציה שלכם. כלומר, תוכלו ליצור משחק שבו יש מספר שלבים והורדת המשחק תהיה ללא כסף. המשחק יכיל אפשרות לקנות שלבים נוספים והרווחים יתחלקו בינכם ובין אפל. לכן, סביר להניח שנראה פחות גירסאות Lite של אפליקציות בזמן הקרוב.
בכל מקרה, כדאי לדעת שישנם אתרים שמטרתם להציע ביקורות על כל האפליקציות ב-App Store. אני ממליץ לעבור על הרשימה של תשעת האתרים האלו ולהגיש את האפליקציה שלכם לביקורת בהם.
מילה לפני סיום
אם הנושא מעניין אתכם, היכנסו לעולם הזה עכשיו ופשוט התחילו לפתח אפליקציה. בשנים האחרונות תרבות החינם שלטה בעולם התכנות, אך כעת ישנה דרך לגיטימית להרוויח מעט כסף עבור האפליקציות שאתם מפתחים.
כמו כן, אני משער שעם כניסת האייפון לארץ, חברות ישראליות רבות ירצו לפתח אפליציות לאייפון. אם יש לכם תוכנית להשתלב בשוק עבודה זה, מומלץ להתחיל כבר היום.

פוסט טוב כמבוא למתכנתים שמעוניינים להיכנס לתחום.
טיפ נוסף: לא לוותר!
פוסט מרתק, חשוב לכל מפתח מתחיל. עכשיו אם סיימת לפתח אפליקציה מגניבה, תעלה אותה שלב:
http://www.bbdo-lab.co.il/Default.asp
תודה :) אני שמח לשמוע.
"נכון לעכשיו, אין App Store ישראלי"
לא נכון, דווקא יש.
יוסי, אתה צודק, טעות שלי. כאשר נרשמתי לא הייתה חנות ישראלית.
מישהו נרשם לתוכנית המפתחים ושילם דרך ה-AppStore הישראלי?
אם כן אני אשמח לעדכן את המידע בפוסט.
אהלן טל,
רציתי לדעת האם ניתן להפיץ את האפליקציה שהכנתי ללא תלות ב Apple?
הכוונה היא לאחר שתיכנתתי הכל ב XCODE..
ניתן לעשות זאת בשתי דרכים:
1. אם אתה חבר בתוכנית המפתחים לאייפון של אפל, ניתן להכריז על מכשירים מסויימים כבטא-טסטר (בודקים של האפליקציה שלך).
2.אם אתה לא חבר בתוכנית, ניתן לעשות זאת בצורה הלא-חוקית.אם לחברך יש אייפון פרוץ (Jailbroken), ניתן לבנות את האפליקציה ולחתום עליה בעזרת כלי שנקרא ldid. חפש עוד פרטים על כך באינטרנט.
יש שמישהו מידע לגבי אפליקציות בתחום הסולארי, מחשבונים ומשווקי מידע שנותנים תחזיות לגבי האנרגיה המיוצרת בארץ ובעולם?
תודה
מדריך מעולה
האם אפשר לפתח את אפליקציות לפני שנרשמים ל"תוכנית המפתחים של אפל" ורק אח"כ להרשם כדי להפיץ אותם?
תודה!
@יעקב, כן זה אפשרי ואני מאמין שרוב המפתחים מתחילים בדרך זאת. עם זאת ישנה מגבלה:
האפליקציות ירוצו רק על הסימולטור ולא על מכשיר האייפון. זה מספיק עבור אפליקציות בסיסיות, אבל צריך לזכור שהסימולטור והאייפון עובדים שונה.
אפליקציה עשויה לעבוד טוב על הסימולטור ולא לעבוד על המכשיר.
היי!
האם ישנן בעיות כולשהן בקבלת התשלום מאפל למפתחים מישראל?
איך מקבלים את התשלום?-לחשבון בנק?ויזה?
שאלה,
תכלס יש אפשרות ללמוד פיתוח אפליקציות לבד?
הכוונה אני כרגע לומד שפתC עצמאית. אחרי שאני אסיים את לימודיי
אוכל לקרוא מאמרים ולראות קטעי וידאו המסבירים איך לעבוד עם XCODE ותוכנת SDK,(כמו שיש באתר של סטנפורד) וממש להבין?
או שזה מסובך מידי וחייב קורסים ייחודיים לכך?
מישהו התנסה בתהליך הזה?
כן, אני למדתי כיצד לפתח אפליקציות בעזרת האתר של אפל. זה לא מסובך יותר מכל שפת תיכנות אחרת.
עברתי על כמה קורסים של סטנפורד (הם מעולים, אבל ארוכים) אבל עיקר הלמידה נעשתה על ידי פיתוח אפליקציות.
ממש לא חייבים לקחת קורס מיוחד לזה. מה שכן, עדיף לעבור לפתח לאייפון רק לאחר שיש נסיון תיכנותי כלשהו, כמו C++ או Java (זאת דעתי).
טל תודה על התגובה המהירה (והמדרבנת),
על פי דעתך ידיעה של שפת C אינה מספיקה?
ושצריך C++ או שאפשר לעשות את קפיצת המדרגה הזאת ישר מC לobjective-C ?
אגב מתנצל על הגסות! המאמר מצויין ותורם ידע! תודה רבה
ישר כוח
אני חושב ש-C היא שפה מצויינת, אבל היא לא מכילה תכנות-מונחה-עצמים (OOP).
על מנת לתכנת ב Objective-C יש להבין את הקונספטים של OOP: מחלקות, אובייקטים, ירושה, constructors/destructors וכדומה.
אני חושב שאפשר דרך לימוד Obj-C ללמוד גם את הקונספטים האלו. פשוט תנסה לבנות משהו פשוט לאייפון ותראה אם משהו חסר לך. תמיד אפשר ללמוד "על הדרך".
שלום,
אחלה מאמר,
רציתי לשאול,
אם יש לי רעיון לאפליקציה, איך אני מגן עליו? כלומר מבחינת פטנט, אשמח להתייחסות לנושא זה, מה שלא דובר עליו כ"כ.
בסוף אם אני מפרסם משהו, מה מונע מאנשים להעתיק את הרעיון ולפתח אותו גם?
תודה
@דב, תודה.
השאלה שלך בנוגע להגנה על הרעיון היא שאלה כללית ומדברת כמובן גם על תוכנות ל-PC ואתרי אינטרנט.
לה אף אחד לא מעתיק מפייסבוק? התשובה היא שהמון מעתיקים מפייסבוק ולמעשה פייסבוק היא העתקה של אתרים ותיקים יותר.
לפי הבנתי, בתחום התוכנה קשה להגן על הפטנטים שרושמים, אך לצערי אני לא מבין יותר מדי בנושא המשפטי הזה ולכן כדאי להתייעץ עם גורמים אחרים.
שלום,
האם זה משתלם, אפליקציה ל- iphone?
ניתן להרוויח מזה? יש לי רעיון מסויים שאני רוצה לפתח , אבל לא מצליח לקבל מידע האם משתלם...
תודה
באותו עניין כמו מעלי..
שאלה קטנה. אני בתיכנות יודע כמו שאני מבין נשים (גרוע)
מה שכן אני גרפיקאי ותלת מימד.
אם אני מחפש אדם לגבי בנית אפליקציה. אני מוכן לשלם מהסיבה שאני בטוח שזה יצליח.
איפה הכי כדאי לי לחפש ?
האם זה משתלם? אני לא יודע, לא עשיתי מחקר לגבי זה. אני מתעניין יותר בצד הטכני. אבל זאת דעתי הלא מלומדת בנושא:
מבחינת חברות. האתר כלכליסט לדוגמה פיתח אפליקציה לאייפון שמציגה את הכתבות באתר בצורה נוחה. הם יכלו פשוט להתאים את האתר לדפדפן של האייפון. לדעתי האפליקציה גורמת לאנשים להיזכר באתר שלהם והיא משיגה את המטרה יותר מאשר אתר מותאם לדפדפן.
מתכנת בודד. מישהו שרוצה להרוויח האפליקציה מרוויח כאן את מנגנון השיווק והסליקה של אפל. כל מה שהוא צריך לעשות הוא לפתח את האפליקציה. קל מאוד לחשב כמה משתמשים צריכים לקנות את האפליקציה על מנת להגיע לרווח שנחשב הצלחה עבורך.
איפה כדאי לחפש מפתחים? אפשר להתחיל ב: ideveloper.co.il ואפשר פשוט לראות אפליקציות שפותחו על ידי ישראלים ולפנות למפתחים ישירות.
האם אפל יאשרו לי אפליקציות עם תכנים כחולים?
יש אופציה שהם יעשו הגבלה של 18 + , מה הנוהל שלהם לגבי אפליקציות שכאלה?
סתם דוגמה, פזל של כוכבות פורנו
הי,
אם יש לי כבר אתר שעובד על JAVA - איך אני יכול לכתוב אפליקציה שבעצם תהיה רק ה-CLIENT SIDE ותשתמש ב-SERVER SIDE הקיים?
הי טל,
קודם כל רציתי להגיד לך שהבלוג שאתה כותב מצויין. אני רוצה לפתח אפליקציה לאייפון ויש לי 2 שאלות אליך:
1. מה ההבדל בין פיתוח אפליקציה על מק "אמיתי" לבין פיתוחה על תכנת הפעלה שהורדתי?
2. איפה אפשר ללמוד את שפת ה - Objective-C ?
תודה מראש!
@עילי, תודה :)
1. ההבדל העיקרי הוא המהירות של מערכת ההפעלה. מחשב מק אמיתי רץ בערך פי 4 יותר מהר מאשר מק ב-VMWare (הפתרון שהצעתי בפוסט). ישנו פתרון נוסף שאינו מצריך קניית מק ומספק ביצועים יחסית טובים - חפש אותו בגוגל: hackintosh.
מלבד ההתנסות הראשונית כדי לראות אם התחום מתאים ומעניין אותך, קניית מקינטוש תהיה הדבר הנכון לעשות.
כמו כן, ההתעסקות בהקמת המערכת על VMWare או בניית hackintosh עשויה לגזול זמן רב, שעדיף להשקיע אותו בלמידת השפה ופיתוח האפליקציות.
2. אם יש לך רקע בתכנות בשפה מונחת עצמים, הכניסה ל-Objective-C אמורה להיות ממש פשוטה. אפשר להתחיל מדוגמאות באינטרנט לאפליקציית Hello World ולתפוס את העניין.
במידה וזו שפת התכנות הראשונה שלך - כדאי למצוא מדריך Objective-C ולהתחיל אותו מההתחלה.
שלום לכולם,
אני מלחין, בוגר המגמה להלחנה לקולנוע של בית ספר רימון,
אם משהו מחפש להוסיף מוסיקה מקורית ומגניבה לאפליקציה שלו,
תרגישו חופשי ליצור עמי קשר.
דוגמאות ניתן לשמוע במייספייס www.myspace.com/reameir
תיכנות נעים לכולם.