PracticU

פרוייקט מסכם ב-Xcode

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode › פרוייקט מסכם ב-Xcode
מילון מושגים:
Xcode - סביבת הפיתוח של אפל לכתיבת אפליקציות ל-iOS ול-macOS.
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).
Endpoint - נקודת קצה שאליה פונים ב-API, המזוהה בכתובת ומטפלת בסוג מסוים של בקשות. גם מכשיר קצה ברשת.
אסינכרוני - אופן פעולה שבו פעולה ארוכה רצה ברקע והתוכנית ממשיכה בלי להמתין לה, ומטופלת כשתסתיים.
תהליכון - יחידת ביצוע בתוך תהליך, המאפשרת להריץ כמה מהלכים במקביל ולחלוק את אותו זיכרון.
טרמינל - חלון או תוכנה שמספקים ממשק שורת פקודה להקלדת פקודות למערכת ההפעלה.
sudo - פקודה ב-Linux שמריצה פקודה אחרת בהרשאות מוגברות, בדרך כלל של משתמש העל (root).
SSL - פרוטוקול להצפנת תקשורת ברשת ולאימות זהות השרת. קודמו של TLS, והשם עדיין נפוץ בשימוש.

פרוייקט מסכם ב-Xcode
בפרויקט המסכם בונים אפליקציית חדשות ב-Xcode שמחברת את כל החומר שנלמד עד כה: Tab Bar Controller עם שני טאבים, קריאה ל-News API, ארכיטקטורת MVC, שתי ספריות חיצוניות וחיפוש. התוצאה מציגה כתבות בטבלה, טוענת תמונות ביעילות ופותחת כל כתבה בדפדפן.
השלבים העיקריים
1. Tab Bar Controller: גוררים Relationship Segue מה-Tab Bar Controller לכל View Controller, וכל אחד הופך לטאב. לכל Tab Bar Item אפשר לקבוע טקסט ותמונה, כאן "חדשות" עם ספר ו"חיפוש" עם זכוכית מגדלת. מסמנים את ה-Tab Bar Controller כ-Is Initial View Controller כדי שיהיה לאפליקציה נקודת כניסה.
2. מבנה MVC: קבוצות נפרדות ל-Controllers, ל-Views ול-Models. שני ה-View Controllers הם Table View Controllers, אחד לכתבות ואחד לחיפוש, ובחיפוש מוסיפים Search Bar.
3. תא לשימוש חוזר: מאחר ששתי הטבלאות משתמשות באותו תא, יוצרים קובץ xib נפרד מ-UITableViewCell, עם שני Labels ו-Image View. הכותרת מודגשת ב-2 שורות והתיאור ב-3 שורות. לתמונה גובה של פחות או שווה ל-180, כדי שהתא ייפתח באנימציה. נותנים לתא Reuse Identifier ורושמים אותו בטבלה עם register.
4. ה-API: ב-News API יש שתי כתובות שנעשה בהן שימוש: top-headlines לכתבות הראשיות ו-everything לחיפוש. בכל קריאה נדרש API key, ובכתבות הראשיות חייבים לשלוח לפחות פרמטר אחד, למשל country.
5. מיפוי ה-JSON: מגדירים struct בשם ArticleResult עם Codable. בו enum של סטטוס (ok או error), המספר total results ומערך כתבות. כל כתבה היא struct פנימי עם title, description, url ו-urlToImage, כשתיאור ותמונה אופציונליים כי לא בכל כתבה הם קיימים.
6. הרכבת הכתובת: ב-struct בשם NewsAPI יש base URL ו-enum של ה-endpoints עם raw value. הפונקציה fetchArticles מקבלת endpoint, מילון פרמטרים וקולבק. בונים URLComponents, מוסיפים את ה-endpoint ואת ה-API key, ומפה מילון ל-URLQueryItem בעזרת map.
7. הקריאה לרשת: URLSession.shared.dataTask ואחר כך resume. התשובה חוזרת דרך DispatchQueue.main.async כי URLSession עובד ב-thread משני. הקולבק מסומן @escaping, והפענוח נעשה עם JSONDecoder בתוך do/catch.
8. הצגת הכתבות: בטבלה שומרים מערך כתבות ומרעננים עם reloadData. הקלוז'ר משתמש ב-weak self כדי לא להחזיק reference חזק ל-View Controller. את מילוי התא מעבירים למתודה populate בתוך קלאס התא.
9. SD-Web-Image: מתקינים אותה עם CocoaPods ואז טוענים תמונות בעזרת ה-extension של ה-Image View. הספרייה שומרת תמונות בדיסק ובזיכרון, פורסת אותן ברקע, ומאפשרת לבטל הורדה כשהתא נגלל מהמסך. אחרי שהתמונה נטענת מעדכנים את גובה התא עם beginUpdates ו-endUpdates.
10. כיוון הטקסט: extension ל-UILabel משתמש ב-NSLinguisticTagger כדי לזהות את שפת הטקסט. עברית וערבית מיושרות לימין, שאר השפות לשמאל.
11. PKHUD: מציג התקדמות בזמן הטעינה, סימן הצלחה לשנייה אחת בסיום, והודעת שגיאה אם הקריאה נכשלה.
12. חיפוש: ב-Search Table View Controller לא טוענים מידע בעת הפתיחה. ממשים את ה-delegate של ה-Search Bar, ובלחיצה על search קוראים ל-everything עם מילת החיפוש. ה-Search Bar הופך ל-first responder כדי שאפשר יהיה להקליד מיד.
13. פתיחת כתבה: ב-didSelectRowAt מבטלים את הבחירה ופותחים את כתובת הכתבה ב-SFSafariViewController, אחרי import SafariServices.
התקנת ספרייה עם CocoaPods
1. פותחים Terminal ועוברים לתיקיית הפרויקט עם cd.
2. התקנה חד־פעמית במחשב: sudo gem install cocoapods.
3. pod init יוצר קובץ Podfile, ופותחים אותו עם open -a xcode Podfile.
4. מוסיפים את הספרייה, למשל SDWebImage בגרסה 5, מתחת להערה Pods for.
5. pod install מוריד את הספרייה. אחר כך סוגרים את Xcode ופותחים את קובץ ה-xcworkspace ולא את ה-xcodeproj.
להוספת ספרייה נוספת, כמו PKHUD, מספיק להוסיף שורה ל-Podfile ולהריץ שוב pod install.
שימו לב
- ערכי ה-Case ב-enum של ה-endpoint והשמות בשדות ה-JSON חייבים להיות זהים לכתוב באתר, כולל urlToImage.
- פרמטר שמתקבל במתודה הוא קבוע, ולכן כדי להוסיף לו את ה-API key יוצרים עותק משתנה.
- בהעתקת קוד בין שני ה-View Controllers קל לטעות ב-Reuse Identifier.
- בקריאה ללא פרמטרים התקבל total results ‎0, ובדיקת הכתובת בדפדפן חשפה את הסיבה.
- שרתי תמונות עם אישור SSL לא תקין נכשלים בטעינה. המרצה מעדיף כך על פני חיבור לא מאובטח.
בסוף הפרויקט אפשר לבנות אפליקציה עם Tab Bar, לקרוא ל-API ולמפות את התשובה, לשלב ספריות חיצוניות, ולהוסיף חיפוש ופתיחת כתבות.
השיעור הבא בקורס: דטה בייס מקומי לאפליקציה תוך שימוש במערכת CoreData

פרקי ההרצאה: פרוייקט מסכם ב-Xcode

  1. 00:00

    הדגמת אפליקציית החדשות

  2. 00:58

    News API וספריות חיצוניות

  3. 02:09

    פרויקט עם Tab Bar Controller

  4. 03:10

    הוספת טאב עם Relationship Segue

  5. 05:05

    בניית ה-Tab Bar מחדש

  6. 06:25

    שני Table View Controllers במבנה MVC

  7. 09:14

    אייקונים לטאבים והוספת Search Bar

  8. 11:44

    תא משותף בקובץ XIB

תמלול ההרצאה: פרוייקט מסכם ב-Xcode

הטקסט המלא של הדקות הראשונות בהרצאה «פרוייקט מסכם ב-Xcode» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:12

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

  3. 00:31

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

  4. 00:54

    על הכפתור search ואז אנחנו ניחשף פה לדברים שחיפשנו למידע שחיפשנו אוקיי אז יש לנו דברים שאנחנו רוצים להכיר, זה ה-Tab Bar הזה, בנוסף יש לנו את ה-Search Bar, וחוץ מזה אנחנו רוצים גם להכיר את ה-API שאיתו עבדנו, נכון? ה-API הזה נקרא News API, ובמקרה הזה השתמשתי בכמה Endpoints ב-API,

  5. 01:15

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

  6. 01:27

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

  7. 01:48

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

  8. 02:13

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

  9. 02:52

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

  10. 03:19

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

  11. 03:48

    שני עדכונים שאתם רוצים להציג אני כרגע לא רוצה בייג' אבל אפשר גם לבחור אימג' עבור האייטם או טקסט עבור האייטם בסדר נגיד אתם רוצים לכתוב פה news אז זה משהו אחד שאפשר לעשות ובנוסף אפשר גם לשים תמונה אז נגיד אתם רוצים לשים פה את התמונה הזאת והיא תהיה תמונה של הטאב אז עכשיו יש לי כאילו שלוש טאבים והובן לכם שאתם צריכים ליצור פה view controller אוקיי מעולה אז זה הרעיון

  12. 03:51

    של הטאבר קונטרולר והוא מאפשר לכם לעשות טאבים באפליקציה אם אתם לא רוצים את אחד ה-View Controller, אתם קודם כל צריכים למחוק את ה-Segway, לעמוד על ה-Segway ולמחוק אותו ואחר כך פשוט להוסיף את ה-Segway מחדש אם תרצו אותו, אוקיי?

  13. 04:36

    ה-Segway שוב פעם זה Relationship Segway, יפה. אז נניח שהחלטתי לוותר פה על ה-Segway הזה ועל ה-View Controller הזה, אני יכול למחוק אותו, מצוין. רוצה להוסיף עוד אחד? גם טוב.

  14. 04:51

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

  15. 05:18

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

  16. 05:42

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

  17. 05:59

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

  18. 06:22

    לתוכנית זה הויו קונטרולר הראשי בתוכנית שאנחנו רוצים לעשות את הפרויקט שלנו בארכיטקטורה של mvc ולהוסיף את הויו קונטרולרים שמציגים במקרה שלנו טייבלס באפליקציה שלנו הויו קונטרולר הזה הוא טייבל ויו קונטרולר וגם פה יש טייבל ויו קונטרולר בעצם פעמיים table view controller בואו נוסיף

  19. 06:45

    אותם אבל נשים אותם כבר בצורה של mvc בגרופ נפרד אז אנחנו מייצרים קודם כל new group נקרא לגרופ הזה controllers ובתוכו אנחנו רוצים לייצר לעצמנו פעמיים table view controller אז אני אעשה new file coco touch class אנחנו רוצים לרשת מtable view controller ולקרוא לראשון articles table view controller ואנחנו רוצים לקרוא לשני

  20. 07:23

    new file עוד פעם לרשת מtable ויו קונטרולר ואנחנו רוצים לקרוא לזה סרצ' טייבל ויו קונטרולר או ארטיקל סרצ' אם אתם רוצים להעריך קצת את השם ולהיות עם שם יותר מסודר קצת אז יש לי שני ויו קונטרולרים של טייבל ויו קונטרולר ובשביל שהם יתאימו לי לפה אז אני צריך להוריד את הויו קונטרולר הזה ולהחליף אותו בטייבל ויו קונטרולר כדי לעשות את זה אני פשוט אוריד את הסגווי קודם ואחר כך אני יכול לגשת לפה ולמחוק את ה...

  21. 07:59

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

  22. 08:31

    אוקיי, עכשיו בואו נגרור Segway, זה יהיה RelationshipSegway של ViewController, וגם פה אני רוצה Segway, שוב פעם RelationshipSegway.

  23. 08:42

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

  24. 08:55

    נלך לאייטם השני, ובקלאס שלו ניתן את ה-search table view controller. יפה. בנוסף לזה, אנחנו רוצים פה ב-table view הראשון לשנות קצת את האייקון כדי שיראה יותר נחמד.

  25. 09:14

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

  26. 09:25

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

  27. 09:46

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

  28. 10:38

    ונחפש גם search bar ואת ה-search bar אנחנו רוצים לשים פה למעלה, בסדר? אז בואו נשים אותו, הנה, מעולה, אז זה ה-search bar שלנו ויש לנו כמו שאמרנו שתי table view controllers, בואו נתחיל בזה שאני רוצה לאכלס את ה-table view controller הראשון ותשימו לב עוד משהו מעניין, אתם יכולים לראות שבפרויקט אני משתמש באותם

  29. 11:07

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

  30. 11:16

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

  31. 11:26

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

  32. 11:48

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

  33. 12:01

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

  34. 12:15

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

  35. 12:42

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

  36. 13:10

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

  37. 13:41

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

  38. 14:04

    ובנוסף אנחנו רוצים אימג'-ויו, אז נשים פה את ה-Image-View שלנו. עכשיו, מבחינת קצת יופי של הדבר הזה, אז אנחנו רוצים שהכותרת תמיד תהיה קצת יותר מודגשת.

  39. 14:27

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

  40. 14:56

    להיות או בצד ימין או בצד שמאל בהתאם לשפה

לקורס המלא: קורס פיתוח אפליקציות לאייפון

ההרצאה הקודמת: שרת HTTP שליחת פרמטרים ב-Swift-Xcode

ההרצאה הבאה: דטה בייס מקומי לאפליקציה תוך שימוש במערכת CoreData

הרצאות קשורות מקורסים אחרים

  • תרגול מסכם על פונקציות
  • פרוייקט ראשון ב-MVC
  • פרוייקט ראשון - בפוסטמן - Postman
  • פרוייקט חדש - WinForm Project

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון