תכנות iPhone OS 3 מאת Thomas Sarlandie

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

ספר בשביל מה? בשביל מי?

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

תכנות אייפון - הנחשב נגיש יחסית על ידי הקהילה - מושווה לעתים קרובות - בטעות - להרחבה של תכנות אינטרנט(כנראה בגלל האפליקציותנראים הרבה כמו אתרים קטנים). עם זאת, אפליקציה לאייפון היא אפליקציהכָּבֵד, כלומר, דומה לתוכנית עבור Mac OS, Windows או Linux. אנחנו די רחוקים כאן ממושגי PHP או מכל האתרים המכווניםלקוחות. מצד שני, העולם המשובץ מטיל אילוצים משמעותיים (גודל מסך, אוטונומיה, כוח מחשוב וכו') שיש לזכור במהלך הפיתוח. לבסוף, אם ברצוננו לפתח משהו אחר מלבד אכרית וופי,שלב תכנון וניתוח שלם הוא חיוני לחלוטין, מבלי לשכוח את מרכיבי הממשק, הארגונומיה, אלא גם את כל החלק המסחרי, שלעיתים דורש משאבים משמעותיים.

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

תכנות אייפון OS 3הוא ספר שלוהמטרה היא לתת חזון גלובלי של פיתוח באייפון: הספר ידריך אותך לאורך כל יצירת האפליקציה שלך, מהיסודות של ObjectiveC ועד לשיווק התוכנית. קהל היעד אז די גדול.

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

הַיוֹם,חברות המפתחות באייפון מעסיקות בדרך כלל מהנדסים או טכנאי IT בכירים.עם זאת, עבור יישומים פשוטים, לאחר ביצוע מעט של C++ ו-Java (או אפילו PHP) יהיה די והותר כדי להתחיל.

בפיתולים של ה-SDK

מההורדה הפשוטה של

XCode

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

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

אבל ה-SDK הוא גם שתי תוכניות:

-

בונה ממשקים

, כדי ליצור את הממשק שלך
-

XCode, IDE התכנות

האינטראקציה בין שני היישומים הללו חיונית להבנה, ולעתים קרובות זוהי הנקודה העדינה ביותר עם ה-SDK.

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

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

גלה את ObjectiveC

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

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

עם זאת, שים לב שמספר נושאים נדונים בפירוט רב:

- ניהול התראות (אפילו בצד השרת)
- הקלטה ותפעול נתונים (CoreData, XML וכו')
- העברת נתונים דרך הרשת
- נתוני מולטימדיה (צלילים, סרטונים וכו')

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

על חשיבות העיצוב

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

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

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

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

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

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

עצות טובות בכל הרמות

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

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

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

מַסְקָנָה

תכנות אייפון OS 3מאת תומס סרלנדי הואספר קל לקריאה ומאוד שלם. זה יהיה מושלם לכל מי שרוצה להיכנס לעולם ה-iPhone SDK בראש שקט, ורוצה להימנע מהפתעות לא נעימות.

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

תמורת כשלושים יורו, הספר נותן תמורה לכסף.

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

ראיון של תומס סרלנדי

שלום תומס. אתה יכול להציג את עצמך מהר? מה היה המסע שלך?

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

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

היצירות הראשונות שלנו הן האתר הנייד של Voyages-sncf.com, 20minutes.fr ו-sncf.mobi. החלטנו במקור ליצור רק אתרים לנייד ולא לפתח ב-J2ME או ב-Windows Mobile. אבל כששוחרר ה-iPhone SDK התעניינתי בו מאוד והאפליקציה הראשונה שלנו (LeMonde.fr) הראתה שיש ביקוש גבוה מאוד מהציבור.

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

מהו לדעתך הפרופיל האידיאלי להתחיל עם ה-SDK?

מפתחי Java יכולים ללמוד בקלות את ה-iPhone SDK. הרוב המכריע של הסוגים הבסיסיים (מחרוזת, תאריך, רשימה וכו') קרובים מאוד (Java קיבלה השראה רבה מ-NextStep) ודפוסי העיצוב המשמשים ב-SDK ידועים למדי. מפתחים שכבר פיתחו אפליקציות "כבדות" (עם Swing או SWT) יקבלו יתרון גדול מכיוון שהקושי העיקרי לדעתי הוא להשאיר את פרדיגמת ה"עמוד אחר עמוד" של פיתוח אתרים לחשוב על האפליקציה שלהם כקובץ הפעלה שמשך חייו הוא הרבה יותר ארוך ובו אנחנו יכולים לעשות כמה דברים במקביל. לפחות ידע בסיסי ב-C ו-pointers הוא גם מאוד שימושי.

איך הייתם מאפיינים את עקומת הלמידה? מהם השלבים העדינים ביותר?

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

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

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

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

הדרך שבה אפליקציה פועלת שונה בתכלית מזו של אתר אינטרנט. זה קצת כמו להשוות בין פיתוח אתרים לפיתוח עם Visual C++ או Delphi.

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

מהן המלכודות שיש להימנע מהן לחלוטין, הטעויות הנפוצות ביותר?

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

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

מה היתרון של ספרות מסוג זה לתחילת תכנות?

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

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

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

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

האם הסתכלת על אנדרואיד או webOS? האם האייפון שומר על ההובלה שלו מבחינת איכות הפיתוח בהשוואה לתחרות החדשה הזו?

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

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

ה-WebOS של פאלם הוא חלק מהיגיון אחר, זה של יצרנים שמהמרים על HTML5 ו-JavaScript. אנו מאמינים מאוד בגישה זו ומשקיעים רבות במחקר ופיתוח בטכנולוגיות אלו.

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

בשנה שעברה השתתפת ב-WWDC. מה מביא אירוע מסוג זה למפתח אייפון?

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

אנחנו מתחילים לדבר על OS4. מה באמת היית רוצה לראות מופיע שם?

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

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

זמינות ומחיר

תכנות אייפון OS 3זמין בחנויות רבות (פיזיות ומקוונות), עבור

קצת יותר מ-30 יורו.

Related Posts