PracticU

מסך הגדרות לאפליקציה ב-Xcode-Swift

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode › מסך הגדרות לאפליקציה ב-Xcode-Swift
מילון מושגים:
Xcode - סביבת הפיתוח של אפל לכתיבת אפליקציות ל-iOS ול-macOS.
iOS - מערכת ההפעלה של אפל למכשירי iPhone ו-iPad.
View - רכיב שאחראי על הצגת המידע למשתמש (התצוגה) בדפוס MVC. גם טבלה וירטואלית מבוססת שאילתה במסד נתונים.
קוד מקור - הקוד שמפתחים כותבים בשפת תכנות, לפני הידור, המגדיר את פעולת התוכנה.
XML - שפת סימון לייצוג נתונים מובְנים בעזרת תגיות, המשמשת להחלפת מידע בין מערכות ולקובצי הגדרות.
רישיון - ההיתר החוקי להשתמש בתוכנה, הקובע את תנאי השימוש, מספר ההתקנות וזמן התוקף.
בנאי - מתודה מיוחדת שמופעלת אוטומטית בעת יצירת אובייקט ממחלקה, ומאתחלת את ערכיו ההתחלתיים.
Integer - סוג נתונים למספר שלם, כלומר מספר ללא חלק עשרוני.

מסך הגדרות לאפליקציה ב-Xcode-Swift
אפליקציות iOS יכולות להציג הגדרות באפליקציית Settings של המכשיר, באמצעות קובץ Settings Bundle. השיעור מראה איך מגדירים אותו בקובץ plist ואיך קוראים את הערכים מהקוד דרך User Defaults.
השלבים העיקריים
1. יצירת הקובץ: בפרויקט Single View בשם Settings Panel מוסיפים קובץ חדש מסוג Settings Bundle. הוא כולל קובץ plist עם מערך Preference Items, ובו Group, Text Field, Toggle Switch ו-Slider.
2. Group: משמש ככותרת. יש לו Title, ואפשר להוסיף שדה Footer Text שמוצג מתחתיו.
3. סוגי הפריטים: Group, Multi Value, Slider, Text Field, Title, Toggle Switch ו-Child Pane. ה-Slider ו-Text Field פשוטים יחסית.
4. Multi Value: מוסיפים שדה Values עם מערך ערכים (בדוגמה 1, 2, 3 מסוג Number), ושדה Titles עם מערך הכותרות שהמשתמש רואה (happy, sad ו-me). יש התאמה לפי סדר בין Titles ל-Values. כדי לשנות סדר אפשר לערוך ב-Open as Source Code (XML).
5. שדות נוספים: Title הוא חובה, Identifier כמעט חובה (בדוגמה mood_preference), ו-Default Value נבחר מתוך ה-Values.
6. Text Field: יש בו מאפיינים כמו Identifier, ערך ברירת מחדל, Is Secure (לסיסמאות), סוג מקלדת, סגנון אותיות גדולות ותיקון אוטומטי. לשם משתמש כיבו את התיקון.
7. Child Pane: פריט שפותח מסך נוסף לפי שם קובץ. בדוגמה יצרו About.plist (שכפול של הקובץ הקיים עם עריכה), ושמרו בו Group אחד עם Footer, ושם אפשר לכתוב טקסט ארוך כמו הסכם רישיון או תודות לספריות.
8. קריאה מהקוד: קובץ UserDefaultsManager כסינגלטון (בנאי private ו-static let shared). הפעולה readValues משתמשת ב-string(forKey:) וב-integer(forKey:) עם ה-Identifier.
9. ערכי ברירת מחדל: ערך ברירת המחדל שבקובץ plist לא נלקח בחשבון ב-User Defaults (בהתחלה חזר 0 במקום 1). צריך לקרוא ל-register עם מילון של ערכי ברירת מחדל, ולמחוק את האפליקציה כדי לבדוק. נהוג לשים זאת בבנאי של האובייקט המשותף.
שימו לב
בסימולטור בחירת Multi Value לא עובדת טוב, והמרצה בודק אותה בטלפון. אין לעבוד עם הקוד הזה ב-View Controller, אלא בקובץ נפרד.
אחרי השיעור אפשר להגדיר מסך הגדרות לאפליקציה ולקרוא את הערכים שהמשתמש בחר.
השיעור הבא בקורס: חיבור ל-API בשרת בפורמט JSON ב-Xcode-Swift - חלק 1

פרקי ההרצאה: מסך הגדרות לאפליקציה ב-Xcode-Swift

  1. 00:00

    פרויקט חדש וקובץ Settings Bundle

  2. 00:55

    מבנה ה-plist ו-Preference Items

  3. 01:32

    צפייה בהגדרות בסימולטור

  4. 02:06

    הגדרת Group עם Footer Text

  5. 03:40

    הוספת Multi Value עם Values

  6. 06:09

    מערך Titles וערך ברירת מחדל

  7. 08:31

    מאפייני ה-Text Field

  8. 09:26

    Child Pane למסך About

תמלול ההרצאה: מסך הגדרות לאפליקציה ב-Xcode-Swift

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

  1. 00:02

    שלום וברוכים הבאים, בפרויקט היום אנחנו רוצים לעשות מסך הגדרות לאפליקציה וגם את זה אנחנו עושים תוך שימוש ב-user defaults אז בואו נקפוץ ל-Xcode ונסתכל על הפרויקט שלנו אנחנו פשוט רוצים לייצר פרויקט חדש, אז Xcode Project חדש Single View Application ובואו נקרא לפרויקט

  2. 00:21

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

  3. 00:46

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

  4. 01:11

    אבל הוא עדיין נמצא בשימוש כמו שאתם יכולים לראות. ובתוך ה-P-List הזה, אז זה בעצם ה-Preference S שלנו לאפליקציה, ויש פה כרגע Preference Items, שזה בעצם מערך שבתוכו יש Dictionaries.

  5. 01:24

    עכשיו, בתוך המערך הזה יש ארבעה אייטמים, והראשון הוא Group, השני הוא Text Field, השלישי הוא Toggle Switch, והאחרון הוא Slider. בואו נראה את זה בצורה ויזואלית, בבקשה.

  6. 01:36

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

  7. 01:56

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

  8. 02:11

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

  9. 02:28

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

  10. 02:53

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

  11. 03:21

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

  12. 03:46

    אני אמחק רגע את הטאג אל סוויץ' לחצתי על delete ונמחק גם את הסליידר כי שוב פעם זה משהו שהוא די טריוויאלי לחלוטין ואין לי הרבה מה להוסיף לגביו ואנחנו נרצה להוסיף עוד אייטם אחד ל-preference items אז אני עומד על ה-preference items ולוחצת פלוס עכשיו בוא נלך פה על מולטי value ונראה איך

  13. 04:07

    עובדים עם זה כי הוא פחות טריוויאלי מאחרים מולטי value אז הטיפוס הוא מולטי value ויש לי פה title, identifier ו-default value אבל אנחנו צריכים להוסיף לפה משהו כדי שזה יעבוד כמו שצריך אז אנחנו נרצה להוסיף לתוך זה מערך של values אז בוא נראה איך אנחנו עושים את זה כאן אנחנו נלחץ פלוס ובאפשרויות יש פה אפשרות של values והvalues הוא באמת הרי אז מצוין

  14. 04:36

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

  15. 05:07

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

  16. 05:30

    לעשות קליק ימני על הקובץ ולהסתכל עליו בתצורת XML. אז אנחנו עושים קליק ימני open as source code ואז אנחנו יכולים, אתם יודעים, לעשות מה שאנחנו רוצים, למשל להזיז את האינטג'ר הזה פה למטה ואז זה יצא לפי הסדר שרצינו.

  17. 05:47

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

  18. 06:02

    אז ה-values מסודרים עכשיו לפי הסדר. אוקיי, אז נגיד שיש לנו ערכים 1, 2, 3 במולטי-צ'וייס, בוחרים אופציה מספר 1, אופציה מספר 2, אופציה מספר 3.

  19. 06:12

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

  20. 06:24

    בתוך המערך של הטייטלס אנחנו כותבים את מה שהמשתמש יראה. אז בואו נעשה פלוס בפנים, כאן. והטייטל הראשון יהיה נגיד happy ובוא נעשה עוד אחד, בוא נעשה said והטייטל השלישי בוא נעשה משהו נוסף, אז אני לוחץ פה על פלוס ובוא נגיד me.

  21. 06:57

    אז יש לנו שלוש אייטמים, עכשיו אנחנו, יש לנו לכל אייטם בעצם אייטם של happy הערך שלו הוא 1 בסדר? האייטם של me אז הערך שלו הוא 2, האייטם של said הערך שלו הוא 3, יש התאמה בין הטייטלס לבין ה-values.

  22. 07:14

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

  23. 07:30

    והערך הדפולטי זה מתוך ה-Values, אז אם ב-Values כתוב 1, 2, 3, אז בוא נבחר את אחד הערכים, נגיד בוא ניקח את Happy שזה 1. יפה. אז בוא נעבור עוד הפעם, Type זה מולטי value, Title זה מערך כזה של כותרות שזה מה שהמשתמש רואה, Values זה הערך הסופי, זה יכול להיות גם סטרינגים וזה יכול להיות

  24. 07:49

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

  25. 08:03

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

  26. 08:19

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

  27. 08:37

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

  28. 08:58

    ערך default is אם אנחנו רוצים ערך ברירת מחדל. Textful is secure זה מיועד לסיסמאות. Keyboard type Alphabet מצוין בשביל שמות. Capitalization style זה אומר אם אנחנו רוצים להגדיל את האותיות הראשונות וכן הלאה אז אנחנו לא רוצים.

  29. 09:13

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

  30. 09:31

    אני מוסיף גרופ נוסף, ובגרופ הזה אנחנו נפתח אותו ונשנה פה את הטיפוס מגרופ ל- Child Pane. אתם רואים? אלה כל הטיפוסים האפשריים, יש טקסט פילד, טייטל, טאגל סוויץ', סליידר, מולטי וליו, גרופ ואת ה- Child Pane.

  31. 09:51

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

  32. 10:18

    אותנו למסך הבא של הפרפרנסס שייקרא about עכשיו about זה בעצם שם של קובץ ואין לנו עוד קובץ אז בואו ניצור אותו אנחנו הולכים פה לערוץ p-list ואנחנו נבקש מהמחשב שלנו בקליק ימני להראות לנו את זה ב-Finder אז show in Finder אנחנו נשכפל את הקובץ p-list

  33. 10:39

    הזה כי הוא כבר עם סיומת נכונה והכל אז copy paste ואנחנו נקרא לו בדיוק בשם שכתבנו פה about אז about.p-list עכשיו בואו נערוך את ה-p-list הזה של about אנחנו לא רוצים שהוא יהיה זהה לזה שיש עכשיו וב-about ב-preference specifiers אנחנו לא רוצים הרבה אייטמים נכון אז בואו נגיד נשאיר פה רק את אני אוריד את זה אני לא רוצה ריקורסיה בסדר אני אשאיר פה רק את אני אוריד גם את זה כאן

  34. 11:08

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

  35. 11:36

    user license agreement למשל או ספריות שבהן

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

ההרצאה הקודמת: סריאליזציה של אובייקט ב-Xcode-Swift

ההרצאה הבאה: חיבור ל-API בשרת בפורמט JSON ב-Xcode-Swift - חלק 1

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

  • הוספת עברית לאפליקציה
  • תרשים מעברי מסך
  • הגדרות AGENT
  • כתיבת טסטים - צילום מסך

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

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