איך לבנות Backend לאפליקציית iOS? מדריך שלב אחר שלב
יישומי iOS, בדומה ליישומי אינטרנט, דורשים דרך לאחסן ולעקוב אחרי נתונים. בין אם הנתונים מאוחסנים בשירות ענן או בשרת מקומי שמנוהל באופן אישי, צד שרת (backend) הוא חיוני לניהול נתוני המשתמש.
עם זאת, בניית צד שרת עבור אפליקציית iOS מאפס יכולה להיות משימה מאתגרת, במיוחד אם אתם חדשים בפיתוח iOS ובפיתוח צד שרת באופן כללי.
במדריך זה תלמדו כיצד לבנות צד שרת עבור אפליקציית iOS שלכם. ראשית, נספק סקירה של פיתוח iOS ונדון ביתרונות ובמגבלות שלו.
לאחר מכן, תסיירו בין אפשרויות הצד שרת השונות העומדות לרשותכם. לבסוף, תלמדו כיצד להשתמש ב-Back4App, פתרון Backend as a Service (BaaS), כלצד שרת עבור אפליקציית iOS שלכם.
Contents
סקירת iOS
אפלה פיתחה את iOS כמערכת ההפעלה העיקרית להנעת האפליקציות הניידות הבנויות עבור האייפונים, האייפדים ומכשירי iPod Touch שלה.
בניית האפליקציות הללו ואופטימיזציה שלהן לפלטפורמת iOS כפי שאפלה תכננה נקראת פיתוח iOS. אפליקציות iOS נכתבות בשתי שפות תכנות, Objective-C ובשפת Swift, שהושקה לאחרונה.
Objective-C הייתה השפה העיקרית לפיתוח אפליקציות iOS לפני השקת Swift ב-2014. Swift עוצבה להיות שפה מודרנית ונוחה יותר, עם תכונות כמו הסקת טיפוסים ו-אפשרויות (optionals) שמקלות על הקריאה והכתיבה.
ניתן להשתמש בשתי השפות באותו פרויקט. זאת מאחר ש-Swift, לפי התיעוד של Swift, תוכננה להיות תואמת ל-Objective-C וניתן להשתמש בה לאינטראקציה עם קוד ירושה קיים ב-Objective-C.
על מנת לבנות את אפליקציות ה-iOS שלכם, אפלה מספקת את Xcode, סביבת פיתוח משולבת (IDE) בה ניתן לכתוב קוד, לבנות ולפתח אפליקציות iOS בנוחות.
יתרונות פיתוח אפליקציות iOS
כמפתחים, בניית אפליקציות iOS יכולה להיות מועילה בדרכים הבאות:
חווית משתמש איכותית
אפליקציות iOS ידועות בזכות חוויית המשתמש היוצאת דופן שהן מציעות, עם עיצובים אינטואיטיביים ומעוצבים שמושכים את המשתמשים וקלים לשימוש.
להן יש קווים מנחים לעיצוב אפליקציות המיועדים להבטיח חווית משתמש מעולה, המדגישים פשטות, בהירות ועקביות. תוצאה מכך, האפליקציות נראות מושכות, עם שלטים ועימודים שמקלים על המשתמשים למצוא את מה שהם צריכים ולהשלים את המשימות במהירות.
בנוסף, אפלה מספקת למפתחים סט מקיף של כלים ומשאבים לעיצוב, כדי להבטיח שהאפליקציות עומדות בסטנדרטים הגבוהים ביותר של איכות.
אפליקציות iOS מותאמות גם לחומרה ולתוכנה הספציפיות של מכשירי אפלה, מה שמביא לביצועים מהירים, אנימציות חלקות וגרפיקה איכותית.
אבטחה משופרת
יתרון משמעותי נוסף של אפליקציות iOS הוא רמת האבטחה הגבוהה שהן מציעות. זאת בזכות מספר גורמים, בעיקר תהליך בדיקת האפליקציות הקפדני של App Store, הצפנה חזקה ותכונות הממוקדות בפרטיות.
תהליך בדיקת האפליקציות של App Store נועד להבטיח שכל האפליקציות ב-App Store עומדות בקווים המנחים הקפדניים של תוכן ואבטחה. תהליך זה כולל בדיקות לקוד זדוני, תוכנות זדוניות ואיומים אבטחתיים נוספים.
כתוצאה מכך, סביר יותר שאפליקציות iOS לא יכילו קוד מזיק או שישמשו למתקפות פישינג או פעילויות זדוניות אחרות.
עקביות בין מכשירים
אפליקציות iOS מעוצבות כך שתיראה ותפעל באופן זהה בכל מכשירי אפלה, כולל אייפונים, אייפדים ו-iPod Touch.
עקביות זו מאפשרת למשתמשים לעבור בין מכשירים שונים ללא צורך בלמידת ממשק משתמש או מערכת ניווט חדשה. כמו כן, היא מבטיחה שמפתחי האפליקציות יוכלו לעצב ולבנות אפליקציות שעובדות בצורה חלקה על כל המכשירים, ללא חשש מבעיות תאימות או תכונות ייחודיות למכשיר מסוים.
כלי פיתוח
אפלה מספקת למפתחי iOS כלים רבי עוצמה שמקלים על פיתוח, בדיקה ותיקון תקלות באפליקציות iOS.
כלים אלו כוללים את iOS SDK, Xcode ומגוון כלים ומשאבים נוספים שמסייעים באופטימיזציה של חוויית הפיתוח ואיכות האפליקציות הנבנות.
מגבלות בפיתוח אפליקציות iOS
חוויית הפיתוח ב-iOS אינה מושלמת. קיימות מגבלות שתיתקל בהן בעת פיתוח אפליקציית iOS. חלק מהן כוללות:
תאימות מוגבלת למכשירים
אחד האתגרים המרכזיים בפיתוח אפליקציות iOS הוא טווח התאימות המצומצם למכשירים. בעולם של היום יש מגוון רחב של יצרני מכשירים ניידים ומגוון רחב של משתמשים ייעודיים.
עם זאת, אפליקציות iOS פועלות רק על חומרת אפלה. משמעות הדבר היא שהאפליקציות יכולות לפעול רק על מכשירי iPhone, iPad ו-iPod Touch, מה שמגביל את קהל היעד הפוטנציאלי לאפליקציה ומגביל אותה לאקוסיסטם של אפלה.
למרות שאפלה מחזיקה בבסיס משתמשים גדול, התאימות המוגבלת למכשירים עשויה להיות חיסרון אם ברצונכם להגיע לקהל רחב יותר מחוץ לאקוסיסטם של אפלה.
תהליך אישור ב-App Store
תהליך בדיקת האפליקציות של App Store של אפלה ידוע בקפדנותו ועלול לקחת זמן רב יותר לעומת חנויות אפליקציות אחרות, כגון Google Play.
תהליך הבדיקה נועד להבטיח שכל האפליקציות ב-App Store עומדות בקווי ההנחיה של אפלה לאיכות, בטיחות ותוכן. עם זאת, הוא עלול להיות מאתגר בשל זמן ההמתנה הארוך, מה שעלול לעכב את השקת האפליקציה לציבור.
אקוסיסטם סגור
אפלה שולטה בקפידה בחומרה ובתוכנה של מכשיריה, מה שאומר שרק תוכנה וחומרה שאושרו על ידי אפלה יכולים לעבוד עם מכשירי iOS. האקוסיסטם הסגור שלהם גם מגביל את אפשרויות ההתאמה האישית ועלול ליצור חסמים אם תרצו להציע גמישות רבה יותר למשתמשי האפליקציה שלכם.
מערכת סגורה זו תגרום לכך שיהיה קשה יותר למפתחים לשלב שירותים ו-APIs מצד שלישי.
אפשרויות צד שרת לאפליקציות iOS
כעת, לאחר שהבנתם את היתרונות והמגבלות של פיתוח אפליקציות iOS, עליכם להכיר את אפשרויות צד השרת השונות הזמינות לאפליקציית iOS שלכם.
IaaS
Infrastructure as a Service (IaaS) הוא מודל מחשוב ענן בו ספק צד שלישי מציע משאבי מחשוב וירטואליים דרך האינטרנט למשתמשים שזקוקים להם להפעלת תוכנה אישית.
השימוש ב-IaaS דומה לשכירות מחשב וירטואלי מספק צד שלישי. במקום לקנות ולאחסן מחשב, ניתן לגשת למחשב שהספק מארח דרך האינטרנט.
מחשב זה הוא ייצוג וירטואלי של מחשב אמיתי, עם כל התשתית הבסיסית הנדרשת לבניית סביבת מחשוב וירטואלית משלכם, הכוללת תכונות כגון שטח אחסון, כוח עיבוד וזיכרון.
הספק מעניק לכם גישה למחשב הווירטואלי, שבו תוכלו להריץ את התוכנה והאפליקציות שלכם מבלי לדאוג לחומרה הפיזית או לתחזוקה.
עם IaaS, תוכלו להגדיל או להקטין את המשאבים לפי הצורך ותשלמו רק עבור מה שאתם משתמשים בו. דוגמאות לשירותי IaaS כוללות את Amazon Web Services (AWS), Microsoft Azure ו-Google Cloud Platform.
PaaS
Platform as a Service (PaaS) הוא מודל מחשוב ענן נוסף, דומה ל-IaaS. ספקי PaaS מציעים פלטפורמה מתוקננת מראש עם התאמה אישית מינימלית, מה שמקל ומאיץ את תהליך יצירת והפצת האפליקציות.
השוני העיקרי בין IaaS ל-PaaS הוא ברמת השליטה שיש לכם על התשתית הבסיסית.
עם IaaS, הספק מציע משאבי מחשוב וירטואליים, כגון שרתים ואחסון, דרך האינטרנט. במקביל, יש לכם שליטה מלאה על הסביבה הווירטואלית, כולל מערכת ההפעלה, תוכנות ביניים (middleware) ואפליקציות.
מצד שני, עם PaaS, הספק מציע פלטפורמה מתוקננת מראש עבור מערכות ההפעלה, תוכנות הביניים ורכיבי תוכנה אחרים הנחוצים לפיתוח והפצת אפליקציות. אתם צריכים להתמקד רק בפיתוח האפליקציה, בעוד שספק ה-PaaS מטפל בתשתית הבסיסית.
דוגמאות לשירותי PaaS כוללות את Heroku, Google App Engine ו-Microsoft Azure App Service.
BaaS
עם Backend as a Service (BaaS), תוכלו לשלב בקלות צד שרת בענן באפליקציה שלכם מבלי לבנות או לנהל את התשתית הבסיסית.
ספקי BaaS מציעים שירותי צד שרת מובנים מראש שלא תמיד כלולים ב-PaaS או IaaS, כגון מסדי נתונים, אימות משתמשים, אחסון קבצים, פונקציות ללא שרת ו-התראות דחיפה. כעת תוכלו לשלב שירותים אלו באפליקציות שלכם באמצעות API או SDK.
כך אין צורך לבנות ולתחזק תשתית צד שרת משלכם, מה שמאפשר לכם להתמקד בפיתוח חזית האפליקציה. דוגמאות לשירותי BaaS כוללות את Back4App, Firebase ו-8Base.
מהו העלות של פיתוח צד שרת עבור אפליקציית iOS?
עלות פיתוח צד שרת עבור אפליקציית iOS יכולה להשתנות בהתאם לגורמים שונים, כולל זמן, משאבים וכוח אדם נדרש.
הזמן המושקע בבניית והגדרת צד השרת הוא גורם משמעותי שיש לקחת בחשבון. הזמן הדרוש לבניית הצד שרת תלוי במורכבות הפונקציות של האפליקציה ובאינטגרציה בין הצד שרת לאפליקציה.
יתכן שיידרש גם זמן נוסף לבדיקות, תיקון באגים והפצה. ככל שהפונקציות של האפליקציה מורכבות יותר, כך עשוי להתארך זמן הפיתוח של צד השרת, מה שעלול להגדיל את העלות בסופו של דבר.
כוח האדם הדרוש לפיתוח צד השרת הוא גורם קריטי נוסף המשפיע על העלות. שכירת מפתחים מנוסים ושימורם יכול להיות יקר, ועלויות הדרכה ופיתוח עשויות להוסיף לעלות הכוללת של פיתוח צד השרת.
ניתן לנהל את העלות של פיתוח צד שרת עבור אפליקציית iOS על ידי שימוש בפתרונות צד שרת קיימים כגון Back4App.
איך לבנות צד שרת לאפליקציית iOS עם Back4App?
Back4App הוא פלטפורמת Backend as a Service (BaaS) עם תשתית צד שרת מוכנה מראש לפיתוח אפליקציות ניידות ואינטרנטיות. הפלטפורמה מספקת תשתית צד שרת עוצמתית ומדרגת, הכוללת ניהול מסדי נתונים, אימות משתמשים, התראות דחיפה ועוד.
Back4App הוא אופציה מצוינת לשמש כלצד שרת עבור אפליקציית iOS שלכם ממספר סיבות. ראשית, הוא מציע ממשק פשוט ונוח המקל על ניהול נתונים ו-API.
שנית, הוא מציע תיעוד מקיף שמדריך אתכם בכל שלב בתהליך הפיתוח. בנוסף, Back4App מספק אירוח ענן מדרגי שיכול לעמוד בצרכי כל אפליקציה, גדולה כקטנה, ומציע תכונות אבטחה ברמה גבוהה.
על ידי ביצוע השלבים המפורטים להלן, תוכלו לבנות צד שרת לאפליקציית iOS שלכם באמצעות Back4App.
שלב 1: הירשמו לחשבון Back4App חינם
כדי ליצור תשתית צד שרת לאפליקציית iOS שלכם, הירשמו לחשבון Back4App חינם באתר הרשמי. עם חשבון Back4App שלכם, יהיה לכם את היכולת ליצור ולהגדיר את צד השרת לאפליקציה שלכם ולנהל את כל תהליכי הנתונים באמצעות אפליקציית צד השרת הזו.
להרשמה לחשבון חינם, גשו לאתר Back4App והירשמו באמצעות חשבון Google, GitHub או כתובת אימייל.
שלב 2: צרו אפליקציה חדשה
כעת, לאחר שיש לכם חשבון Back4App, התחברו והמשיכו ליצירת אפליקציה חדשה. כפתור לביצוע פעולה זו ימוקם בפינה הימנית העליונה של דף החשבון שלכם. בחרו באפשרות Backend as a Service עבור האפליקציה שלכם.
המשיכו והכניסו שם מתאים לאפליקציה החדשה שלכם ולחצו על כפתור Create.
Back4App יבנה כעת את האפליקציה שלכם וינחה אתכם אל לוח הבקרה שלה.
שלב 3: חברו את אפליקציית ה-iOS שלכם ל-Back4App
השלב הבא הוא לחבר את אפליקציית ה-iOS שלכם לצד השרת של Back4App. יש להתקין את Parse SDK באפליקציית ה-iOS כדי לבצע זאת. האפליקציה שלכם תשתמש ב-SDK זה כדי לקבל קישור ישיר לצד השרת.
לפני שמתחילים בהגדרת החיבור, תצטרכו שיש לכם אפליקציית iOS פעילה לעבודה. כפי שצוין קודם, אפליקציות iOS נבנות באמצעות Xcode, סביבת הפיתוח של אפלה לפיתוח תוכנה עבור אפלה.
תצטרכו גרסה עדכנית של Xcode (גרסה 13.0.0 או מאוחרת יותר) מותקנת במחשב המק שלכם כדי שתוכלו לעקוב אחרי מדריך זה. חלק מהכלים והתכונות שתשתמשו בהם במדריך זה זמינים רק בגרסאות אלו של Xcode.
התחילו בהפעלת Xcode ויצירת פרויקט iOS חדש מסוג App:
תתבקשו למלא שם לאפליקציה יחד עם פרטי קונפיגורציה נוספים. הקפידו לבחור ב-SwiftUI כממשק המועדף.
ממשק SwiftUI משתמש במערכת צפייה שונה מהמערכת של StoryBoard שהושמטה. כתוצאה מכך, מבנה הפרויקט הנוכחי שלכם לא יכלול קובץ AppDelegate.swift
. עליכם ליצור קובץ זה, שכן תזדקקו לו בהמשך המדריך.
צרו קובץ AppDelegate.swift
וייבאו לתוכו את הקוד הבא:
import SwiftUI class AppDelegate: NSObject, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { return true } }
עכשיו, בתוך App
בקובץ הראשי של הפרויקט שלכם, העתיקו והדביקו את הקוד הבא בתחילת הקובץ:
@UIApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate
כעת אתם מוכנים להתקין את Parse SDK. תתקינו אותו באמצעות CocoaPods, מנהל תלות קוד פתוח לפרויקטי Xcode. המשיכו והתקינו את CocoaPods אם עדיין לא עשיתם זאת.
ראשית, אתחלوا Podfile לפרויקט שלכם על ידי הרצת הפקודה pod init
במסוף בתוך תיקיית הפרויקט.
פתחו את קובץ ה-Podfile שנוצר באמצעות Xcode וציינו את Parse SDK.
קובץ ה-Podfile שלכם צריך להיראות בערך כך:
# Uncomment the next line to define a global platform for your project #platform :ios, '13.0' target 'ParseiOS-app' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for ParseiOS-app pod 'Parse' end
לאחר מכן, התקינו את Parse SDK לפרויקט שלכם עם התלות שציינתם בקובץ ה-Podfile.
הריצו את הפקודה הבאה במסוף:
pod install
לאחר התקנת ה-pods, הפרויקט שלכם ייבנה מחדש כקובץ Workspace חדש עם הסיומת .xcworkspace
. מכאן, תעבדו עם ה-Workspace המחודש.
התקנתם בהצלחה את Parse SDK לפרויקט שלכם.
יתכן ותיתקלו בשגיאת תאימות לדמות סימולטור של iOS לאחר הרצת pod install. במידה וזה קורה, עדכנו את Podfile להוספת השורה הבאה בסוף:
post_install do |installer| installer.generated_projects.each do |project| project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' end end end end
קטע קוד זה הוא hook של Post-Install לקובץ ה-Podfile, המאפשר לכם לשנות את הגדרות הבנייה של פרויקט Xcode שלכם לאחר שסיימה CocoaPods בהתקנת ה-pods.
קוד זה מגדיר את גרסת יעד הפריסה המינימלית ל-iOS כ-12.0. ניתן לשנות זאת בכל עת על ידי הקצאת גרסה חדשה ל-['IPHONEOS_DEPLOYMENT_TARGET']
.
כעת, התקינו שוב את ה-pods:
pod install
לסיום חיבור אפליקציית ה-iOS שלכם, יהיה עליכם לקשר את מזהה האפליקציה (App ID) ואת מפתח הלקוח (Client Key) של אפליקציית Back4App שלכם. כדי לעשות זאת, גשו לApp Settings בלוח הבקרה ועברו לServer Settings > Core Settings.
בתוך Core Settings, עליכם למצוא את App id
ואת Client Key
שנוצרו באופן אישי עבור צד השרת שלכם ב-Back4App. העתיקו ושמרו את המפתחות הללו.
💡 הערה: המפתחות המוצגים בתמונה לעיל שייכים לאפליקציית בדיקה שנבנתה למדריך זה. הקפידו להעתיק את המפתחות האישיים שלכם, שכן המפתחות המוצגים לא יעבדו עבור האפליקציה שלכם.
לאחר מכן, פתחו את AppDelegate.swift
ושנו את הקוד הקיים בתוך הפונקציה didFinishLaunchingWithOptions
.
הפונקציה שלכם צריכה להיראות כך:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { print("app launched!") let configuration = ParseClientConfiguration { $0.applicationId = "PASTE_YOUR_APPLICATION_ID_HERE" $0.clientKey = "PASTE_YOUR_CLIENT_ID_HERE" $0.server = "" } Parse.initialize(with: configuration)) return true }
הדביקו את ה-App id
ואת ה-Client Key
ששמרתם במקומות המיועדים לכך.
עליכם לייבא את Parse SDK גם לקובץ זה כדי להסיר שגיאות של ‘module not found'
:
import Parse
האפליקציה שלכם כעת מחוברת בהצלחה ל-Back4App!
שלב 4: בדקו את צד השרת שלכם
בחלק זה, תבדקו את אפליקציית ה-iOS שלכם כדי לוודא שאתם יכולים לבצע אינטראקציה עם שרת Back4App ועם האפליקציה שיצרתם.
תבדקו פעולות CRUD ואחסון נתונים באמצעות Parse SDK.
בסיום הבדיקה, תוכלו לוודא שהנתונים שנוצרו נשמרים בהצלחה ונקראים מהאפליקציית הצד שרת.
כדי לאחסן נתונים בצד השרת, תיצרו אובייקט מסוג class בתוך Back4App. כברירת מחדל, למחלקה חדשה תהיה סכימה הכוללת שלושה שדות: “objectId”, “createdAt” ו-“updatedAt”. ניתן להוסיף שדות ושורות נתונים חדשים.
תיצרו שדה חדש מתוך אפליקציית ה-iOS שלכם ותקראו את הנתונים שנשמרו במחלקה שיצרתם.
ראשית, בתוך ContentView.swift
ייבאו את Parse SDK ממש מיד לאחר SwiftUI:
import SwiftUI import Parse
כדי לבדוק שהאפליקציה שלכם יכולה לבצע אינטראקציה עם הצד שרת, תיצרו ממשק משתמש שדרכו המשתמש יוכל להזין טקסט עבור ציון, והמידע ישמר בצד השרת. האפליקציה גם תוכל לבצע שאילתות בצד השרת, לקרוא נתונים מהמחלקה שיצרתם ולהציג את הציונים השמורים.
בתחילת ה-struct של ה-View ב-ContentView.swift
, צרו את המשתנים הבאים שישמשו כ-state mutable:
@State private var newScore: Int = "" @State private var scores: [PFObject] = []
משתנים אלו יגרמו לעדכון התצוגה כאשר ערכיהם משתנים. הראשון מגדיר משתנה בשם newScore
מטיפוס String
ומייצג את הערך שהמשתמש מזין עבור ציון חדש. הוא מאותחל כמחרוזת ריקה ""
.
השני מגדיר משתנה בשם scores
מטיפוס [PFObject]
, שהוא מערך של מופעי PFObject
. משתנה זה יציג את הציונים שנמשכו מהצד שרת.
מחלקת PFObject
היא מחלקה המגיעה עם Parse-SDK-iOS
ומאפשרת אחסון נתונים. היא מאפשרת להגדיר תכונות מותאמות אישית ואבנים עבור האובייקטים, אותם ניתן לשמור בצד השרת.
לאחר מכן, בתוך אלמנט VStack
, הוסיפו את קטע הקוד הבא:
VStack { TextField("EnterScore", text: $newScore) .textFieldStyle(RoundedBorderTextFieldStyle()) .padding() Button("Save Scores") { saveScore() } List(scores, id: \.objectId) { score in Text(score["score"] as? String ?? "") } } .padding() .onAppear { fetchScores() }
יש לכם שדה טקסט בו המשתמשים יוכלו להזין ציון. פרמטר ה-text
קשור למשתנה ה-state newScore
, כלומר כל שינוי בשדה הטקסט ישתקף במשתנה newScore
.
לאחר מכן, יש כפתור “Save Scores” שמפעיל את הפונקציה saveScore()
בלחיצה.
הרכיב List
מציג את הציונים שנמשכו מהצד שרת. אתם משתמשים במערך scores
כדי למלא את הרשימה, והפרמטר id
מציין מזהה ייחודי לכל פריט ברשימה. בתוך הרשימה, יש תצוגת Text
המציגה את ערך הציון כמחרוזת.
אתם משתמשים בשרשור אופציונלי ובאופרטור ??
כדי להתמודד עם מקרים בהם הציון אינו זמין או מטיפוס שונה.
לבסוף, המודיפייר onAppear
משמש להפעלת הפונקציה fetchScores()
כאשר תצוגת ה-VStack מופיעה.
בשלב זה, סביר שתתקלו בשגיאה כי הפונקציות saveScores()
ו-fetchScores()
אינן מוגדרות.
בשלב הבא תיצרו את הפונקציות הללו. פונקציות אלו יטפלו בכתיבה, שמירת נתונים ובשאיבת הנתונים שנשמרו, בהתאמה, מהאפליקציה המקושרת שלכם ב-Back4App.
השתמשו בקריאה למתודה .save()
או saveInBackground()
כדי לשמור את המשתנה newScore
בצד השרת:
func saveScore() { let score = PFObject(className: "GameScore") score["score"] = newScore score.saveInBackground { success, error in if let error = error { print("Error saving score: \(error.localizedDescription)") } else { print("Score saved sucessfully: \(String(describing: score.objectId))") newScore = "" fetchScores() } } }
ראשית, אתם יוצרים מופע חדש של PFObject
עם שם המחלקה “GameScore”. אובייקט זה מייצג רשומה חדשה במסד הנתונים בצד השרת. בשורה הבאה, אתם מגדירים את התכונה “score” של האובייקט לערך השמור במשתנה newScore
.
לאחר מכן, אתם קוראים למתודה saveInBackground
על האובייקט score
. השימוש ב-saveInBackground
יפעיל שמירה אסינכרונית ברקע. בתוך הקלאוזר להשלמה, תבדקו אם קרתה שגיאה במהלך פעולת השמירה ותטפלו בשגיאה.
לאחר שמירת הציון בהצלחה, תאפסו את המשתנה newScore
למחרוזת ריקה כדי לנקות את שדה הטקסט. לאחר מכן, תקראו לפונקציה fetchScores()
כדי לעדכן את רשימת הציונים.
בתוך הפונקציה fetchScores()
, תשתמשו בשאילתה של Parse בעזרת PFQuery
כדי לבצע שאילתות על הנתונים בצד השרת ולשלוף אובייקטים ממחלקה מסוימת. במקרה זה, המחלקה היא GameScore
:
func fetchScores() { let query = PFQuery(className: "GameScore") query.findObjectsInBackground { objects, error in if let error = error { print("Error fetching scores: \(error.localizedDescription)") } else if let objects = objects { scores = objects } } }
כאן אתם קוראים למתודה findObjectsInBackground
על אובייקט השאילתה כדי להפעיל את פעולת השליפה האסינכרונית. בתוך הקלאוזר, אתם מטפלים בתוצאות השאילתה.
אם מתרחשת שגיאה במהלך פעולת השליפה, יודפס מסר שגיאה. אחרת, אם השליפה מצליחה ואובייקטים מתקבלים, תעדכנו את המשתנה scores
במערך האובייקטים שהתקבלו. אובייקטים אלו מייצגים את הציונים שנשלפו מהצד שרת.
כאשר תריצו את האפליקציה, תזינו ציון חדש ותלחצו על כפתור Save Scores, האפליקציה תשלח ותשמור את ערך הציון החדש בצד השרת ותשלוף את כל הציונים השמורים. לאחר מכן, היא תציג רשימה של הציונים כמו שבתמונה למטה.
שימו לב כיצד הציונים תואמים לערכי הציון בצד השרת שלכם.
זה מאשר שהבדיקה עברה בהצלחה, ואתם כעת כותבים וקוראים נתונים מהצד שרת ב-Back4App בהצלחה.
כעת אתם יודעים כיצד לבנות צד שרת לאפליקציות iOS ניידות שלכם באמצעות Back4App ושפת התכנות Swift.