Quickstarters
Feature Overview
How to Build a Backend for WatchOS?
38 นาที
บทนำ ในบทเรียนนี้ คุณจะค้นพบ วิธีสร้างแบ็คเอนด์สำหรับ watchos แอพโดยใช้ back4app ไม่ว่าคุณจะกำลังสร้าง ส่วนขยาย watchkit สำหรับ แอพ iphone ของคุณ หรือออกแบบ ประสบการณ์ apple watch แบบสแตนด์อโลน back4app จะทำให้การทำงานของคุณง่ายขึ้นโดยการให้เครื่องมือที่จำเป็น คุณจะรวมฟีเจอร์ต่างๆ เช่น ฐานข้อมูลที่ปลอดภัย, ฟังก์ชัน cloud code, การค้นหาแบบเรียลไทม์ (live queries), และการตรวจสอบสิทธิ์ผู้ใช้—ทั้งหมดนี้โดยไม่ต้องจัดการเซิร์ฟเวอร์ของคุณเอง คุณจะเห็นด้วยว่า รูทีนการเริ่มต้นที่รวดเร็วของ back4app และสภาพแวดล้อมที่ใช้งานง่ายช่วยให้คุณมุ่งเน้นไปที่ ฟังก์ชันการทำงานของ watchos apps แทนที่จะต้องตั้งค่าเซิร์ฟเวอร์ ในระหว่างทาง คุณจะได้เรียนรู้การจัดการงานต่างๆ เช่น การกำหนดตารางงาน, การตั้งค่าเว็บฮุค, และการกำหนดค่าการแจ้งเตือนแบบพุช เมื่อสิ้นสุด คุณจะมีพื้นฐานที่มั่นคงในการขยายแอพนาฬิกาของคุณหรือ แอพ ios สำหรับความต้องการในระดับการผลิต ทั้งหมดนี้ในขณะที่ส่งมอบการซิงโครไนซ์ข้อมูลที่ราบรื่น (ผ่าน การเชื่อมต่ออินเทอร์เน็ต ) ระหว่าง แอพ watchkit และแบ็คเอนด์ของคุณ ข้อกำหนดเบื้องต้น บัญชี back4app และโครงการ back4app ใหม่ เริ่มต้นใช้งาน back4app https //www back4app com/docs/get started/new parse app หากคุณยังไม่มีบัญชี คุณสามารถสร้างบัญชีได้ฟรี ทำตามคำแนะนำข้างต้นเพื่อเตรียมโครงการของคุณ สภาพแวดล้อมการพัฒนา watchos/xcode คุณควรติดตั้ง xcode พร้อมกับ watchos sdk คุณสามารถรันและสร้าง watchkit extension ของคุณได้ทั้งบน apple watch จริงหรือจำลอง parse swift sdk ใช้ swift package manager https //github com/netreconlab/parse swift เพื่อติดตั้งและกำหนดค่า sdk สำหรับ watchos หรือ ios apps ที่รวมกัน ความคุ้นเคยกับ swift, xcode, และระบบนิเวศการพัฒนาของ apple เอกสารนักพัฒนา apple https //developer apple com/documentation/ หากคุณเป็นมือใหม่ในแพลตฟอร์มของ apple ใช้เวลาในการสำรวจเอกสาร watchos และ ios ก่อนเริ่ม ตรวจสอบให้แน่ใจว่าคุณมีคุณสมบัติตามที่กำหนดเหล่านี้ก่อนที่คุณจะเริ่ม การตั้งค่าโครงการ back4app ของคุณและเตรียมสภาพแวดล้อม watchos ในเครื่องของคุณจะช่วยให้คุณติดตามได้อย่างราบรื่น ขั้นตอนที่ 1 – สร้างโครงการใหม่บน back4app และเชื่อมต่อ ทำไมคุณถึงต้องการโครงการ back4app โครงการ back4app ใหม่เป็นสิ่งจำเป็นสำหรับการจัดเก็บข้อมูลทั้งหมดและรันโค้ดคลาวด์สำหรับ watchos apps นี่คือพื้นฐานของแบ็กเอนด์ของคุณ สร้างโครงการของคุณ เข้าสู่ระบบ back4app คลิก “new app” ในแดชบอร์ด ตั้งชื่อแอปของคุณ (เช่น “watchos backend tutorial”) ติดตั้ง parse swift sdk เพิ่ม parse swift เป็นการพึ่งพาใน package swift หรือโดยการใช้ file → swift packages → add package dependency ใน xcode ให้ url dependencies \[ package(url "https //github com/netreconlab/parse swift git", from "5 0 0") ] เริ่มต้น parse ใน watchos หรือโค้ดที่แชร์ของคุณ ในโค้ดเริ่มต้นของแอป watchkit ของคุณหรือในไฟล์ที่แชร์ที่เข้าถึงได้โดยทั้ง watchos และ iphone app , เริ่มต้น parse @main struct mywatchapp app { init() { task { do { try await parseswift initialize( applicationid "your app id", clientkey "your client key", serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\(error)") } } } var body some scene { windowgroup { contentview() } } } ในจุดนี้ แอป watchos ของคุณสามารถสื่อสารกับ back4app backend ได้ ไม่ว่าจะเป็นแอป apple watch ที่เป็นอิสระหรือ watchkit extension ที่จับคู่กับ iphone app , ข้อมูลทั้งหมดจาก backend จะไหลผ่าน parse swift sdk ขั้นตอนที่ 2 – การตั้งค่าฐานข้อมูล 1\ การสร้างโมเดลข้อมูล back4app ใช้ฟีเจอร์ schema on write ของ parse server คุณสามารถกำหนดตาราง (คลาส) ในส่วน back4app database หรือให้สร้างโดยอัตโนมัติเมื่อวัตถุถูกบันทึกเป็นครั้งแรก ตัวอย่างเช่น หาก watch apps ของคุณติดตามข้อมูลสุขภาพ คุณอาจมีคลาส “healthmetrics” ที่มีฟิลด์เช่น heartrate, steps หรือ workouttype 2\ การสร้างโมเดลข้อมูลโดยใช้ ai agent ai agent ของ back4app ai agent ช่วยให้คุณสามารถอธิบายสคีมาในภาษาธรรมดาได้ เปิด ai agent ในแดชบอร์ดแอปของคุณ ให้รายละเอียดเช่น “กรุณาตั้งค่าคลาส watch metrics พร้อมฟิลด์ dailysteps (number), heartrate (number) ” ai จะสร้างสคีมาให้คุณโดยอัตโนมัติ 3\ การอ่านและเขียนข้อมูลโดยใช้ sdk ด้านล่างนี้คือตัวอย่างการบันทึกและการค้นหาข้อมูลจากแอป watchos สมมติว่าเรามี healthmetrics struct import parseswift struct healthmetrics parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var dailysteps int? var heartrate int? } // saving data func savemetrics(steps int, heart int) async { var metrics = healthmetrics() metrics dailysteps = steps metrics heartrate = heart do { let saved = try await metrics save() print("saved metrics \\(saved)") } catch { print("error saving \\(error)") } } // querying data func fetchlatestmetrics() async { let query = healthmetrics query() do { let results = try await query find() print("fetched \\(results count) items") } catch { print("error fetching \\(error)") } } 4\ การอ่านและเขียนข้อมูลโดยใช้ rest api หากจำเป็น แอพ watchos หรือ ios apps ของคุณก็สามารถส่งคำขอ rest ได้เช่นกัน 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 '{"dailysteps" 8000, "heartrate" 75}' \\ https //parseapi back4app com/classes/healthmetrics 5\ การอ่านและเขียนข้อมูลโดยใช้ graphql back4app ยังมีจุดสิ้นสุด graphql ให้บริการ ตัวอย่างเช่น mutation { createhealthmetrics(input { fields { dailysteps 7500 heartrate 70 } }) { healthmetrics { objectid dailysteps heartrate } } } 6\ การทำงานกับ live queries (ไม่บังคับ) หากคุณต้องการการอัปเดตข้อมูลแบบเรียลไทม์บน apple watch , เปิดใช้งาน live queries เปิดใช้งาน live queries ภายใต้ server settings ใน back4app กำหนดค่า url ของ live query ในโค้ด watchos ของคุณ parselivequery configure(url url(string "wss\ //your subdomain b4a io")!) จากนั้นสมัครสมาชิกเพื่อรับการเปลี่ยนแปลง func subscribemetricsupdates() async throws { let subscription = healthmetrics query() subscribe() for try await event in subscription { switch event { case created(let newdata) print("new data \\(newdata)") case updated(let updateddata) print("updated \\(updateddata)") default break } } } ขั้นตอนที่ 3 – การใช้ความปลอดภัยด้วย acls และ clps 1\ ภาพรวมสั้น ๆ back4app ช่วยให้สามารถใช้ access control lists (acls) และ class level permissions (clps) เพื่อรักษาความปลอดภัยฐานข้อมูลของคุณ ตัวอย่างเช่น คุณอาจจำกัดเมตริกบางอย่างให้กับผู้ใช้ที่สร้างมันขึ้นมาหรืออนุญาตให้เข้าถึงข้อมูลได้เฉพาะบัญชีที่ได้รับการตรวจสอบแล้วเท่านั้น 2\ การตั้งค่าแบบทีละขั้นตอน class level permissions ไปที่ database → class → security เพื่อกำหนดค่าเริ่มต้น (เช่น อ่านได้เฉพาะสำหรับทุกคน เขียนได้สำหรับเจ้าของ) acls ในโค้ด คุณสามารถเพิ่ม acls ให้กับแต่ละวัตถุใน watchkit หรือโค้ดที่แชร์ได้ ตัวอย่างเช่น if let user = user current { var acl = parseacl() acl setreadaccess(user user, value true) acl setwriteaccess(user user, value true) var metrics = healthmetrics() metrics acl = acl } นี่จะทำให้แน่ใจว่าผู้ใช้ที่เข้าสู่ระบบเท่านั้นที่สามารถดูหรือแก้ไขวัตถุ healthmetrics ที่พวกเขาสร้างขึ้น ขั้นตอนที่ 4 – การเขียนฟังก์ชัน cloud code 1\ ทำไมต้องใช้ cloud code cloud code ช่วยให้คุณดำเนินการที่ซับซ้อนหรือเป็นความลับในฝั่งเซิร์ฟเวอร์ เช่น การตรวจสอบข้อมูล การเรียก api ภายนอก หรือการบันทึก การตั้งค่านี้มีประโยชน์ในการลดภาระงานของอุปกรณ์ watchos และรักษาอายุการใช้งานแบตเตอรี่บน apple watch 2\ ฟังก์ชันตัวอย่าง ใน main js parse cloud define('processmetrics', async (request) => { const { dailysteps, heartrate } = request params; if (!dailysteps || !heartrate) { throw 'missing parameters '; } // example simple calculation return dailysteps heartrate; }); 3\ การปรับใช้ ใช้ back4app cli https //www back4app com/docs/local development/parse cli เพื่อปรับใช้ b4a deploy 4\ การติดตั้งโมดูล npm หากคุณต้องการไลบรารีภายนอกใน cloud code ของคุณ เพิ่มการพึ่งพาใน package json (ภายในโฟลเดอร์ cloud code ของคุณ) ใช้ require('your lib') ใน main js ขั้นตอนที่ 5 – การกำหนดค่าการตรวจสอบสิทธิ์ 1\ เปิดใช้งานการตรวจสอบสิทธิ์ผู้ใช้ ตามค่าเริ่มต้น, คลาสผู้ใช้ พร้อมใช้งานใน back4app ตรวจสอบให้แน่ใจว่า “เปิดใช้งานการอนุญาตระดับคลาส” ถูกตั้งค่าอย่างถูกต้องสำหรับวัตถุผู้ใช้ 2\ ตัวอย่างโค้ด ใน parse swift, คุณอาจลงทะเบียนผู้ใช้จากโค้ด watchos ของคุณ struct user parseuser { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var username string? var email string? var emailverified bool? var password string? var authdata \[string \[string string]?]? } func signupnewuser(name string, pass string, mail string) async { var newuser = user() newuser username = name newuser password = pass newuser email = mail do { let signedup = try await newuser signup() print("sign up successful \\(signedup)") } catch { print("error signing up \\(error)") } } 3\ การเข้าสู่ระบบด้วยโซเชียล หากคุณวางแผนที่จะรวมการเข้าสู่ระบบด้วย apple, google, หรือ facebook ในแอป watchos หรือ iphone ของคุณ, คุณสามารถทำได้ด้วยฟีเจอร์การเข้าสู่ระบบด้วยโซเชียลของ parse swift ที่เกี่ยวข้อง ดู เอกสาร back4app https //www back4app com/docs/platform/sign in with apple สำหรับรายละเอียด ขั้นตอนที่ 6 – การจัดการการจัดเก็บไฟล์ 1\ การตั้งค่าการจัดเก็บไฟล์ หาก แอปนาฬิกาของคุณ ต้องการอัปโหลดภาพ, บันทึก, หรือไฟล์ข้อมูลขนาดเล็ก, คุณสามารถพึ่งพา parsefile func uploadfile(data data, filename string) async { let file = parsefile(name filename, data data) do { let savedfile = try await file save() print("uploaded file \\(savedfile url ?? "")") } catch { print("error uploading file \\(error)") } } 2\ ตัวอย่าง คุณอาจเก็บภาพการออกกำลังกายหรือภาพความก้าวหน้ารายวัน let snapshotdata = // some image data from watch screenshot task { await uploadfile(data snapshotdata, filename "workout jpg") } 3\ ข้อพิจารณาด้านความปลอดภัย ตรวจสอบ acl ของไฟล์ของคุณ โดยค่าเริ่มต้น url ของไฟล์จะสามารถเข้าถึงได้หากมีใครได้ลิงก์โดยตรง คุณสามารถรักษาความปลอดภัยหรือควบคุมการเข้าถึงไฟล์ผ่านการกำหนดค่าของไฟล์ในเซิร์ฟเวอร์ parse ของคุณ ขั้นตอนที่ 7 – การตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน 1\ ภาพรวม ผู้ใช้ apple watch อาจไม่สามารถจัดการการเข้าสู่ระบบโดยตรงบนนาฬิกา แต่การเปิดใช้งานการตรวจสอบอีเมลช่วยให้ข้อมูลของพวกเขาปลอดภัย 2\ การกำหนดค่าดashboard back4app ไปที่ การตั้งค่าแอป → อีเมล เปิดใช้งาน การตรวจสอบอีเมล ปรับแต่งเทมเพลตตามต้องการ 3\ โค้ด/การดำเนินการ สำหรับการรีเซ็ตรหัสผ่าน do { try await user requestpasswordreset(email "example\@domain com") } catch { print("error requesting password reset \\(error)") } do { try await user requestpasswordreset(email "example\@domain com") } catch { print("error requesting password reset \\(error)") } ขั้นตอนที่ 8 – การกำหนดตารางงานด้วย cloud jobs 1\ cloud jobs ทำอะไร cloud jobs ช่วยให้คุณสามารถทำงานเบื้องหลังอัตโนมัติ เช่น การหมุนข้อมูลเก่าหรือการสร้างรายงานการใช้งานสำหรับการวิเคราะห์ watchos ของคุณ 2\ ตัวอย่าง ใน main js parse cloud job('cleanupmetrics', async (request) => { const query = new parse query('healthmetrics'); // for example, remove records older than 7 days const now = new date(); const cutoff = new date(now 7 24 60 60 1000); query lessthan('createdat', cutoff); const oldmetrics = await query find({ usemasterkey true }); await parse object destroyall(oldmetrics, { usemasterkey true }); return `deleted ${oldmetrics length} old records `; }); นำโค้ดของคุณไปใช้งาน ไปที่ การตั้งค่าแอป → การตั้งค่าเซิร์ฟเวอร์ → งานเบื้องหลัง และกำหนดตารางให้ทำงานทุกวัน ขั้นตอนที่ 9 – การรวม webhooks 1\ คำจำกัดความ webhooks แจ้งบริการภายนอกเมื่อเกิดเหตุการณ์บางอย่างในแอปของคุณ ตัวอย่างเช่น คุณอาจต้องการส่งข้อความไปยังช่อง slack ทุกครั้งที่มีการบันทึกเมตริกใหม่ 2\ การกำหนดค่า ในแดชบอร์ด back4app ไปที่ เพิ่มเติม → webhooks เพิ่ม webhook พร้อม endpoint (เช่น url ของ slack) เลือกเหตุการณ์ (เช่น “ระเบียนใหม่ใน healthmetrics”) 3\ ตัวอย่าง เมื่อใดก็ตามที่ผู้ใช้เพิ่มรายการ dailysteps ใหม่ ช่อง slack ของคุณจะได้รับการแจ้งเตือน คุณยังสามารถกำหนดตรรกะที่ซับซ้อนมากขึ้นใน cloud code เพื่อส่ง payload ที่กำหนดเองไปยังบริการภายนอกของคุณได้ ขั้นตอนที่ 10 – สำรวจแผงผู้ดูแล back4app 1\ จะหามันได้ที่ไหน แผงผู้ดูแลสามารถเข้าถึงได้ผ่านคอนโซล back4app ของคุณภายใต้ เพิ่มเติม → แอปผู้ดูแล เปิดใช้งานและสร้างผู้ดูแลสำหรับการจัดการข้อมูลผ่านเว็บหากคุณต้องการอินเทอร์เฟซที่ตรงไปตรงมาสำหรับผู้มีส่วนได้ส่วนเสียที่ไม่ใช่ทางเทคนิค 2\ ฟีเจอร์ ดูและแก้ไขข้อมูล จัดการบันทึกและงานคลาวด์ ติดตามการวิเคราะห์หรือการแจ้งเตือน นี่เป็นวิธีที่ง่ายในการทำงานร่วมกันเกี่ยวกับข้อมูลโดยไม่ต้องเข้าถึงฐานข้อมูลหรือโค้ดโดยตรง บทสรุป ตลอดคู่มือนี้ คุณได้เรียนรู้ วิธีสร้างแบ็กเอนด์สำหรับ watchos โดยใช้ฟีเจอร์ที่ทรงพลังของ back4app คุณได้ตั้งค่ารูปแบบฐานข้อมูลที่ปลอดภัย เขียนโค้ดคลาวด์ จัดการการค้นหาแบบเรียลไทม์ และดำเนินการตรวจสอบสิทธิ์ผู้ใช้ ตอนนี้แอป watchkit ของคุณสามารถจัดเก็บและซิงค์ข้อมูลได้อย่างง่ายดาย ขั้นตอนถัดไป ปรับปรุงแอปนาฬิกาของคุณ โดยการรวมฟังก์ชันคลาวด์ขั้นสูงสำหรับการแจ้งเตือนส่วนบุคคลหรือการแปลงข้อมูล สำรวจ ฟังก์ชันการทำงานเพิ่มเติมของ แอป ios เช่น การซิงค์ในพื้นหลังและกลยุทธ์การแคชสำหรับ apple watch ของคุณ อ่าน เอกสารทางการของ back4app https //www back4app com/docs/ เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับความปลอดภัยขั้นสูง การวิเคราะห์ และประสิทธิภาพ ปรับแต่งสำหรับ app store เพื่อแจกจ่ายส่วนขยาย watchos หรือแอปนาฬิกาแบบสแตนด์อโลนของคุณ โดยการขยายแบ็กเอนด์ของคุณ คุณสามารถส่งมอบ แอป watchos ที่มีความแข็งแกร่งซึ่งทำงานได้อย่างราบรื่นแม้ในขณะที่มี การเชื่อมต่ออินเทอร์เน็ตที่จำกัด สร้างต่อไปและเพลิดเพลินกับพลังของ back4app สำหรับประสบการณ์ apple watch ของคุณ!