פיתוח אפליקציות לאייפון על PC

פיתוח אפליקציות לאייפון על PC

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

כלומר, אני רוצה לפתח אפליקציה או שניים על ה PC (חזק) שלי, ולא לרכוש מק,
האם אפשרי וכיצד?

תודה.
 

erezor

New member
יש אפשרות דרך מכונה וירטואלית בלבד

כלומר התקנת מערכת הפעלה באופן שמוגדר ע"י אפל כלא חוקי.
אין דרך אחרת לפתח ל-ios על גבי PC
 
כלומר, אם אני רוצה לפתח אפליקציה לאייפון

ללא רכישת מק, אני צריך להתקין VM ןעליו OS X,
ועליו להתקין XCode ולפתח?
 
תודה, ובעבור מה אני צריך לשלם 100$ בשנה?

עבור XCode? עבור האפשרות להעלות את האפליקציה לאייפון שלי (לא בהכרח לאפסטור)? עור העלאה לאפסטור?
 

erezor

New member
100$

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

כדי להרוויח את הזכות להעלות אפליקציה לאפסטור?
מדהים.
 

erezor

New member
זה לא צריך להיות השיקול

אפליקציות לאייפון עושות יותר כסף מאשר באנדרואיד. מתוך מה שאני רואה, גם יש קצת יותר דרישה למפתחי iOS מאשר אנדרואיד, למרות שג׳אווה היא כנראה שפה יותר שימושית מ-objective c
 

De-Panther

New member
אם מדובר על פיתוח עצמי ורווחים, אני גם חושב..

שלאייפון יש את האפשרות להכניס יותר כסף.

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

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

someboddy

New member
אנדרויד מבוסס על לינוקס

עיקר העבודה שגוגל עשו עליו זה להתאים אותו לטלפון סלולארי ולהלביש עליו את הDalvik(המכונה הווירטואלית של אנדרויד שמריצה את התוכנות שנכתבות בJava). גם לי אין נתונים, אבל נראה לי שאם חברה רוצה מערכת הפעלה Embedded למכונה שהיא לא טלפון(או טאבלט), היא תעדיף להשתמש ישירות בלינוקס במקום להתחיל להעיף מודולים מאנדרויד.

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

De-Panther

New member
אף אחד מהדברים שכתבת לא סותר את ההודעה שכתבתי

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

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

לא יודע באיזה שפה עובדים על הקרנל, אבל יש אפשרות לפתח אפליקציות בC או בC++(לא זוכר אם באחד או בשניהם) ולקמפל באמצעות מה שנקרא NDK.
אגב, הרבה פורטים לכלים קיימים במערכות אחרות רצים על האנדרואיד בעזרת הNDK.
למשל יוניטי, הם לא תרגמו את מונו לג'אווה, הם פשוט קימפלו(אחרי התאמות שונת) את המכונה הוירטואלית של מונו בעזרת NDK.

בווינדווז פון 7, למשל, לא היה מקביל לNDK, מיקרוסופט לא איפשרה להריץ קוד לא דרך המכונה הוירטואלית של דוט נט, אלא רק לקמפל דברים דרך הדוט נט שלהם. לכן רק בווינדווז פון 8 תהיה תמיכה ביוניטי(שם מיקרוסופט כן מאפשרת להריץ קוד שלא רץ על דוט נט)

בקיצר, פיתוח לסמארטפונים זה תחום רחב
 

voguemaster

New member
לינוקס היא דבר רחב מאוד

ואגב, גוגל לא כותבת קרנלים של לינוקס עבור אנדרויד. גוגל אחראית על ספריות RUNTIME (ב-NATIVE CODE), אחראית על ה-DALVIK VM, אחראית על כל ה-FRAMEWORK הזה שנקרא אנדרויד שבתכלס הוא מאסיבי לאללה ומציע מלא שירותים ו-APIים וכו' וכו'. בנוסף יש אפליקציות של גוגל ודברים אחרים שרצים על המכשיר כך שלגוגל יש הרבה דברים שהם מפתחים אבל לא את הקרנל.

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