Quickstarters
Feature Overview
How to Build a Backend for iOS?
40 นาที
บทนำ ในบทเรียนนี้ คุณจะได้เรียนรู้ วิธีสร้างแบ็กเอนด์สำหรับ ios โดยใช้ back4app https //www back4app com เราจะพาคุณไปทำความเข้าใจการรวมฟีเจอร์ที่สำคัญของ back4app—เช่น การจัดการฐานข้อมูล, ฟังก์ชันคลาวด์, rest และ graphql apis, การตรวจสอบสิทธิ์ผู้ใช้, การจัดเก็บไฟล์, และการสอบถามแบบเรียลไทม์ (live queries)—เพื่อสร้างแบ็กเอนด์ที่ปลอดภัย, ขยายตัวได้, และแข็งแกร่งสำหรับแอปพลิเคชัน ios ของคุณ ข้อเสนอของ แบ็กเอนด์เป็นบริการ ของ back4app ช่วยลดความซับซ้อนในการตั้งค่า โครงสร้างฝั่งเซิร์ฟเวอร์ ในขณะที่เร่งกระบวนการพัฒนา คุณสามารถจัดเก็บข้อมูลในรูปแบบฐานข้อมูล nosql ที่ยืดหยุ่น, จัดการบัญชีผู้ใช้, เพิ่ม การแจ้งเตือนแบบพุช , และใช้การควบคุมการเข้าถึงขั้นสูงในเวลาเพียงเล็กน้อยเมื่อเปรียบเทียบกับการสร้างโซลูชันที่กำหนดเอง นี่หมายความว่าคุณสามารถมุ่งเน้นไปที่การปรับปรุง ประสบการณ์ผู้ใช้ และการนำฟีเจอร์หลักไปใช้ แทนที่จะต้องกังวลเกี่ยวกับการบำรุงรักษาเซิร์ฟเวอร์หรือการจัดเตรียม เมื่อสิ้นสุดบทเรียนนี้ คุณจะมีแบ็กเอนด์ที่พร้อมใช้งานซึ่งสามารถปรับให้เข้ากับสถานการณ์ในโลกจริง, ขยายเพื่อรองรับการเข้าชมที่เพิ่มขึ้น, และขยายด้วยตรรกะที่ซับซ้อนมากขึ้นหรือ บริการของบุคคลที่สาม คุณจะสามารถจัดส่งแบ็กเอนด์ที่เชื่อถือได้สำหรับแอป ios ของคุณ, เร่งกระบวนการ พัฒนาของคุณ , และปรับปรุง ส่วนติดต่อผู้ใช้โดยรวม ของคุณด้วยความพยายามที่น้อยลง ข้อกำหนดเบื้องต้น ในการทำตามบทเรียนนี้ คุณจะต้องมี บัญชี back4app และโครงการ back4app ใหม่ เริ่มต้นใช้งาน back4app https //www back4app com/docs/get started/new parse app หากคุณไม่มีบัญชี คุณสามารถสร้างบัญชีได้ฟรี ทำตามคำแนะนำข้างต้นเพื่อเตรียมโครงการของคุณ สภาพแวดล้อมการพัฒนา ios พื้นฐาน คุณสามารถพัฒนาด้วย xcode (เวอร์ชัน 13 0 หรือสูงกว่า) ติดตั้ง xcode https //developer apple com/xcode/ swift package manager หรือ cocoapods สำหรับการเพิ่ม parse swift ทำตาม คำแนะนำ parse swift github https //github com/netreconlab/parse swift สำหรับรายละเอียดการติดตั้ง ความคุ้นเคยกับ swift และแนวคิด ios เอกสาร swift ของ apple https //docs swift org/swift book/ หากคุณเป็นมือใหม่ใน swift หรือ ios ให้ตรวจสอบเอกสารทางการหรือบทเรียน ios พื้นฐานก่อนเริ่ม การมีสภาพแวดล้อม ios ที่ทำงานได้พร้อมกับ xcode และบัญชี back4app ฟรีของคุณ จะช่วยให้คุณทำตามได้อย่างราบรื่นมากขึ้น ขั้นตอนที่ 1 – การสร้างโครงการใหม่บน back4app และการเชื่อมต่อ ทำไมต้องสร้างโครงการใหม่? โครงการ back4app ใหม่เป็นพื้นฐานของการ พัฒนาระบบหลังบ้าน สำหรับ ios มันให้เครื่องมือทั้งหมดที่คุณต้องการ—ฐานข้อมูล, apis, การตรวจสอบสิทธิ์, ฟังก์ชันคลาวด์—เพื่อ สร้างระบบหลังบ้าน ได้อย่างรวดเร็วและปลอดภัย การแนะนำ เข้าสู่ระบบ บัญชี back4app ของคุณ สร้างแอปใหม่ โดยคลิก “แอปใหม่” บนแดชบอร์ด back4app ของคุณ ตั้งชื่อแอปของคุณ (เช่น “ios backend demo”) เมื่อสร้างเสร็จแล้ว โครงการใหม่ของคุณจะปรากฏในแดชบอร์ด back4app ของคุณ การติดตั้ง parse swift sdk และการกำหนดค่า keys back4app ขึ้นอยู่กับ parse platform ภายใน สำหรับ ios ให้ใช้ parse swift sdk 1 ดึง parse keys ของคุณ ในแดชบอร์ด back4app ให้ไปที่ “app settings” หรือ “security & keys” เพื่อค้นหา application id client key (หรือ swift key หากมี) server url (มักจะ https //parseapi back4app com ) 2 เพิ่ม parse swift sdk หากคุณใช้ swift package manager // in package swift or xcode's swift packages package( url "https //github com/netreconlab/parse swift git", from "5 0 0" ) ถ้าคุณใช้ cocoapods , ให้เพิ่มใน podfile pod 'parseswiftog' จากนั้นให้รัน pod install 3 เริ่มต้น parse ภายใน appdelegate swift (หรือไฟล์แอปหลัก swiftui ของคุณ) ให้เรียก parseswift initialize( ) ด้วยข้อมูลรับรองของคุณ import swiftui import parseswift @main struct myapp app { init() { do { try await parseswift initialize( applicationid "your app id", clientkey "your client key", // optional serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\\\(error)") } } var body some scene { windowgroup { contentview() } } } ขอแสดงความยินดี! แอป ios ของคุณเชื่อมต่อกับ back4app แล้ว และคำขอหรือการทำธุรกรรมข้อมูลทุกครั้งจะผ่าน parse swift โดยอัตโนมัติ ขั้นตอนที่ 2 – การตั้งค่าฐานข้อมูล 1 การสร้างโมเดลข้อมูล back4app ใช้ schema วิธีการที่แต่ละคลาส/ตารางสามารถจัดการได้จากแดชบอร์ด สมมติว่าเราต้องการสร้าง todo คลาส ไปที่ “ฐานข้อมูล” ใน back4app คอนโซลของคุณ คลิก “สร้างคลาสใหม่” , ตั้งชื่อว่า todo , และเพิ่มคอลัมน์เช่น title (string) และ iscompleted (boolean) 2 การสร้างโมเดลข้อมูลด้วย ai agent ai agent ของ back4app สามารถเร่งกระบวนการออกแบบ schema ของคุณ เปิด ai agent ในแดชบอร์ดของคุณ อธิบาย โมเดลข้อมูลของคุณด้วยภาษาธรรมดา (เช่น “สร้างคลาส todo ใหม่ที่มีฟิลด์ title และ iscompleted”) ให้ ai สร้าง schema ให้คุณโดยอัตโนมัติ 3 การอ่านและเขียนข้อมูลโดยใช้ swift sdk ด้วย parse swift , กำหนดโครงสร้างข้อมูลของคุณในโค้ด ตัวอย่างเช่น import parseswift struct todo parseobject { // parseobject protocol var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom properties var title string? var iscompleted bool? } // saving func createtodoitem(title string, iscompleted bool) async { var todo = todo() todo title = title todo iscompleted = iscompleted do { let saved = try await todo save() print("saved objectid \\\\(saved objectid ?? "")") } catch { print("error saving \\\\(error)") } } // querying func fetchtodos() async { do { let todos = try await todo query() find() print("fetched \\\\(todos count) todos") } catch { print("error fetching \\\\(error)") } } 4 การอ่านและเขียนข้อมูลโดยใช้ rest api อีกทางเลือกหนึ่ง คุณสามารถใช้ rest calls ตัวอย่างเช่น เพื่อสร้าง todo curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo 5 การอ่านและเขียนข้อมูลโดยใช้ graphql api back4app ยังรองรับ graphql ด้วย นี่คือตัวอย่างการเปลี่ยนแปลง mutation { createtodo(input { fields { title "clean house" iscompleted false } }) { todo { objectid title iscompleted } } } 6 การทำงานกับ live queries (ไม่บังคับ) back4app รองรับ การอัปเดตแบบเรียลไทม์ ผ่าน live queries สำหรับ swift let subscription = try? todo query("iscompleted" == false) subscribe() subscription? handleevent({ event in switch event { case created(let newtodo) print("new todo created \\\\(newtodo)") case updated(let updatedtodo) print("todo updated \\\\(updatedtodo)") default break } }) ขั้นตอนที่ 3 – การใช้ความปลอดภัยด้วย acls และ clps 1 ภาพรวม รายการควบคุมการเข้าถึง https //www back4app com/docs/security/parse security (acls) ควบคุมสิทธิ์ต่อวัตถุแต่ละรายการ ในขณะที่ สิทธิ์ระดับคลาส (clps) ตั้งค่าพื้นฐานสำหรับคลาสทั้งหมด 2 ขั้นตอน สิทธิ์ระดับคลาส ในแดชบอร์ด back4app ให้เปิดคลาส (เช่น, todo ), จากนั้นคลิกที่แท็บ “ความปลอดภัย” คุณสามารถล็อคการอ่าน/เขียนให้เฉพาะผู้ใช้หรือบทบาทที่ได้รับการรับรองเท่านั้น acls ในโค้ด เมื่อคุณบันทึก parseobject คุณสามารถกำหนด acl ปรับแต่งสิ่งเหล่านี้เพื่อให้แน่ใจว่าข้อมูลของคุณเข้าถึงได้เฉพาะผู้ใช้ที่ถูกต้องเท่านั้น ขั้นตอนที่ 4 – การเขียนฟังก์ชัน cloud code 1 ทำไมต้องใช้ cloud code? cloud code เป็นเพื่อนที่ดีที่สุดของคุณในการเพิ่มตรรกะฝั่งเซิร์ฟเวอร์ให้กับแอป ios ของคุณ คุณสามารถเก็บตรรกะหรือการตรวจสอบที่ละเอียดอ่อนให้ห่างจากไคลเอนต์ รวมถึงการรวม api ภายนอก และรันงานพื้นหลังบนเซิร์ฟเวอร์ 2 ตัวอย่างฟังก์ชัน สร้างไฟล์ main js ในเครื่อง (หรือในตัวแก้ไขออนไลน์) พร้อมฟังก์ชัน parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "no text provided"; } return { length text length }; }); 3 การปรับใช้ ใช้ back4app cli https //www back4app com/docs/local development/parse cli หรือในแดชบอร์ด cloud code > ฟังก์ชัน editor ติดตั้ง cli กำหนดค่า คีย์บัญชีของคุณ ปรับใช้ 4 เรียกใช้ cloud code จาก ios task { do { if let result = try await parsecloud callfunction("calculatetextlength", with \["text" "hello back4app"]) as? \[string int] { print("text length \\\\(result\["length"] ?? 0)") } } catch { print("cloud code error \\\\(error)") } } 5 การใช้โมดูล npm ในไฟล์ package json (ภายใน cloud code) ให้ระบุการพึ่งพาของคุณ จากนั้นใน main js const axios = require('axios'); parse cloud define("fetchposts", async () => { // use axios here }); ขั้นตอนที่ 5 – การกำหนดค่าการตรวจสอบสิทธิ 1 เปิดใช้งานการตรวจสอบสิทธิผู้ใช้ ในแดชบอร์ด back4app ของคุณ คลาส user ได้ถูกจัดเตรียมไว้แล้ว คุณสามารถตั้งค่าการตรวจสอบอีเมล การรีเซ็ตรหัสผ่าน และอื่น ๆ ได้มากมาย 2 ตัวอย่างโค้ด ios ลงทะเบียน เข้าสู่ระบบ 3 การเข้าสู่ระบบด้วยโซเชียล คุณสามารถรวมการเข้าสู่ระบบด้วยโซเชียล (google, apple, facebook) กับ parse swift ดูที่ เอกสารการเข้าสู่ระบบด้วยโซเชียล https //www back4app com/docs/platform/sign in with apple สำหรับคำแนะนำโดยละเอียด ขั้นตอนที่ 6 – การจัดการการจัดเก็บไฟล์ 1 การตั้งค่าการจัดเก็บไฟล์ อัปโหลดและเรียกคืนไฟล์ เช่น รูปภาพหรือเอกสารผ่าน parse สำหรับ swift struct gamescore parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var score int? var picture parsefile? } func uploadimagedata( data data) async { var file = parsefile(name "photo jpg", data data) do { file = try await file save() print("file url \\\\(file url ?? "")") } catch { print("error uploading file \\\\(error)") } } 2 การเรียกคืนไฟล์ func fetchimage(file parsefile) async { do { let fetched = try await file fetch() print("fetched localurl \\\\(fetched localurl? absolutestring ?? "")") } catch { print("error fetching file \\\\(error)") } } 3 ข้อพิจารณาด้านความปลอดภัย คุณสามารถกำหนดการอนุญาตไฟล์ในการตั้งค่า back4app ของคุณหรือใน parse config ของแอปของคุณ ตัวอย่างเช่น จำกัดว่าใครสามารถอัปโหลดหรือลบไฟล์ได้ ขั้นตอนที่ 7 – การตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน 1 ทำไมต้องตรวจสอบ? การตรวจสอบอีเมลช่วยให้แน่ใจว่าผู้ใช้เป็นเจ้าของที่อยู่อีเมลที่ให้ไว้ การรีเซ็ตรหัสผ่านช่วยให้ผู้ใช้กู้คืนบัญชีได้อย่างปลอดภัย 2 ตั้งค่าใน back4app ไปที่ การตั้งค่าแอป > การตั้งค่าอีเมลผู้ใช้ เปิดใช้งานการตรวจสอบอีเมล กำหนดค่า อีเมลจาก , เทมเพลตอีเมล และโดเมนที่กำหนดเองที่เลือกได้ 3 การดำเนินการ task { do { try await user requestpasswordreset(email "johnny\@example com") print("password reset email sent") } catch { print("error resetting password \\\\(error)") } } ขั้นตอนที่ 8 – การกำหนดตารางงานด้วย cloud jobs 1 ภาพรวม ใช้ cloud jobs เพื่อทำให้การทำงานอัตโนมัติ เช่น การลบบันทึกเก่าหรือการส่งการแจ้งเตือนรายวัน พวกเขาทำงานบน ฝั่งเซิร์ฟเวอร์ , ไม่ถูกกระตุ้นโดยตรงจากไคลเอนต์ 2 ตัวอย่าง parse cloud job("cleanupoldtodos", async (request) => { const todo = parse object extend("todo"); const query = new parse query(todo); // older than 30 days const cutoff = new date(date now() 30 24 60 60 1000); query lessthan("createdat", cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); กำหนดตารางงานนี้ในแดชบอร์ด back4app ภายใต้ การตั้งค่าเซิร์ฟเวอร์ > งานพื้นหลัง เพื่อให้ทำงานเป็นระยะๆ ขั้นตอนที่ 9 – การรวม webhooks 1 คำจำกัดความ webhooks ช่วยให้แอปของคุณส่งข้อมูลไปยังบริการภายนอกเมื่อเกิดเหตุการณ์บางอย่าง ตัวอย่างเช่น แจ้งช่อง slack เมื่อมีการสร้าง todo 2 การกำหนดค่า แดชบอร์ด ไปที่ เพิ่มเติม > webhooks และเลือก “เพิ่ม webhook ” ตั้งค่า endpoint เช่น https //my server com/webhook endpoint ทริกเกอร์เหตุการณ์ เช่น “บันทึกใหม่ในคลาส todo ” 3 ตัวอย่างโค้ด parse cloud aftersave("todo", async (request) => { const { object } = request; // make an http post to an external url // containing the new todo details }); ขั้นตอนที่ 10 – สำรวจแผงผู้ดูแล back4app 1 จะหามันได้ที่ไหน แผงผู้ดูแลของคุณ admin panel สามารถเข้าถึงได้ผ่าน “เพิ่มเติม” > “แอปผู้ดูแล” ในแดชบอร์ด back4app สร้างผู้ใช้ผู้ดูแลและเลือกซับโดเมนเพื่อการเข้าถึงที่ง่ายขึ้น 2 ฟีเจอร์ การเรียกดูข้อมูล ดูและแก้ไขคลาสในรูปแบบที่ใช้งานง่าย บันทึก ตรวจสอบบันทึกเซิร์ฟเวอร์และบันทึก cloud code การวิเคราะห์ ติดตามการใช้งาน, การแจ้งเตือนแบบพุช, ฯลฯ บทสรุป ในบทเรียนนี้ คุณได้เรียนรู้ วิธีสร้างแบ็กเอนด์สำหรับ ios โดยใช้ back4app และ parse swift sdk คุณได้รวมฐานข้อมูลที่สามารถขยายได้, ใช้ระบบรักษาความปลอดภัยด้วย acls และ clps, เขียนฟังก์ชัน cloud code, ตั้งค่าการตรวจสอบสิทธิ์ผู้ใช้, จัดการการจัดเก็บไฟล์, และแม้กระทั่งกำหนดเวลางานเบื้องหลัง ด้วยฟีเจอร์ที่จำเป็นเหล่านี้ คุณสามารถนำเสนอแบ็กเอนด์ที่เชื่อถือได้สำหรับ แอปพลิเคชันมือถือ ios ในขณะที่มุ่งเน้นไปที่ ประสบการณ์ผู้ใช้ และฟีเจอร์ที่เป็นเอกลักษณ์ ขั้นตอนถัดไป สำรวจบทบาทขั้นสูง และการควบคุมการเข้าถึงแบบกำหนดเองสำหรับความปลอดภัยหลายระดับ รวมฟีเจอร์ขั้นสูง เช่น การแจ้งเตือนแบบพุช, การค้นหาตำแหน่ง, หรือแหล่งข้อมูลภายนอก ตรวจสอบเอกสารทางการของ back4app สำหรับเคล็ดลับด้านประสิทธิภาพ, การวิเคราะห์บันทึก, หรือการวิเคราะห์แบบเรียลไทม์ ลองทำบทเรียนเพิ่มเติม เกี่ยวกับแอปพลิเคชันแชท, การรวม iot, หรือการขยายอีคอมเมิร์ซ โดยการใช้ back4app คุณจะได้รับ แพลตฟอร์มโอเพนซอร์ส ที่เป็น ตัวเลือกที่ดี เพื่อลดความซับซ้อน, จัดเก็บข้อมูล ได้อย่างง่ายดาย, และรวม ฟังก์ชันการทำงานแบบเรียลไทม์ เข้ากับแอป ios ของคุณ การดำเนินการตามขั้นตอนเหล่านี้จะช่วยให้คุณมีเวลาในการทำงานด้านการออกแบบ, การไหลของผู้ใช้, หรือธุรกิจตรรกะ, สร้าง แบ็กเอนด์สำหรับแอป ios ของคุณ ได้อย่างรวดเร็ว