วิธีสร้างแบ็กเอนด์สำหรับแอป iOS? คู่มือทีละขั้นตอน
แอป iOS เช่นเดียวกับแอปพลิเคชันบนเว็บ จำเป็นต้องมีวิธีการเก็บและติดตามข้อมูล ไม่ว่าข้อมูลนั้นจะถูกจัดเก็บไว้บนบริการคลาวด์แบ็คเอนด์หรือเซิร์ฟเวอร์ที่สร้างขึ้นเองและรันในเครื่องส่วนตัว แบ็คเอนด์ถือเป็นสิ่งจำเป็นสำหรับการจัดการข้อมูลผู้ใช้
อย่างไรก็ตาม การสร้างแบ็คเอนด์สำหรับแอป iOS ของคุณตั้งแต่เริ่มต้นอาจเป็นงานที่ท้าทาย โดยเฉพาะอย่างยิ่งหากคุณยังใหม่กับการพัฒนา iOS และการพัฒนาแบ็คเอนด์โดยทั่วไป
ในบทแนะนำนี้ คุณจะได้เรียนรู้วิธีการสร้างแบ็คเอนด์สำหรับแอป iOS ของคุณ ก่อนอื่นเราจะให้ภาพรวมเกี่ยวกับการพัฒนา iOS พร้อมทั้งพูดคุยถึงข้อดีและข้อจำกัดของมัน
จากนั้นคุณจะได้สำรวจตัวเลือกแบ็คเอนด์ที่มีอยู่ให้เลือก สุดท้ายคุณจะได้เรียนรู้วิธีใช้ Back4App ซึ่งเป็น Backend as a Service (BaaS) เป็นแบ็คเอนด์สำหรับแอป iOS ของคุณ
Contents
ภาพรวมของ iOS
Apple ได้พัฒนา iOS ให้เป็นระบบปฏิบัติการหลักสำหรับการขับเคลื่อนแอปพลิเคชันมือถือที่สร้างบน iPhone, iPad และอุปกรณ์ iPod Touch ของตน
การสร้างแอปเหล่านี้และปรับแต่งให้ทำงานบนแพลตฟอร์ม iOS ตามที่ Apple ออกแบบนั้นเรียกว่า iOS development แอป iOS ถูกเขียนโดยใช้ภาษาโปรแกรมสองภาษา ได้แก่ Objective-C และ Swift ซึ่งใหม่กว่า
Objective-C เคยเป็นภาษาหลักที่ใช้ในการพัฒนาแอป iOS ก่อนที่ Swift จะถูกนำเสนอในปี 2014 Swift ถูกออกแบบให้เป็นภาษาที่ทันสมัยและใช้งานง่ายยิ่งขึ้น โดยมีคุณสมบัติต่าง ๆ เช่น การอนุมานชนิดข้อมูล และ optionals ที่ช่วยให้อ่านและเขียนโค้ดได้ง่ายขึ้น
ทั้งสองภาษาสามารถใช้ร่วมกันในโปรเจ็กต์เดียวกันได้ เนื่องจาก Swift ตามที่ระบุไว้ใน เอกสาร Swift ถูกออกแบบให้เข้ากันได้กับ Objective-C และสามารถใช้ในการโต้ตอบกับโค้ดดั้งเดิมของ Objective-C ที่มีอยู่ได้
เพื่อสร้างแอป iOS ของคุณ Apple ได้จัดเตรียม Xcode ซึ่งเป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) ที่ช่วยให้คุณเขียนโค้ด สร้าง และพัฒนาแอป iOS ได้อย่างสะดวก
ข้อดีของการพัฒนาแอป iOS
ในฐานะนักพัฒนา การสร้างแอป iOS มีข้อดีในหลายแง่มุมดังนี้:
ประสบการณ์ผู้ใช้คุณภาพสูง
แอป iOS มีชื่อเสียงในเรื่องประสบการณ์ผู้ใช้ที่ยอดเยี่ยม ด้วยการออกแบบที่ใช้งานง่ายและประณีต ทำให้ผู้ใช้รู้สึกว่าดึงดูดและใช้งานง่าย
แอปเหล่านี้มีแนวทางการออกแบบแอปเฉพาะที่สร้างขึ้นเพื่อประสบการณ์ผู้ใช้ที่ดีที่สุด โดยเน้นความเรียบง่าย ความชัดเจน และความสม่ำเสมอ ส่งผลให้แอปมีการออกแบบที่สวยงาม พร้อมคอนโทรลและเลย์เอาต์ที่ช่วยให้ผู้ใช้ค้นหาสิ่งที่ต้องการและทำงานได้อย่างรวดเร็ว
นอกจากนี้ Apple ยังมีเครื่องมือและทรัพยากรออกแบบที่ครอบคลุมสำหรับนักพัฒนา เพื่อช่วยให้แน่ใจว่าแอปของพวกเขาตรงตามมาตรฐานคุณภาพสูงสุด
แอป iOS ยังได้รับการปรับแต่งให้เหมาะสมกับฮาร์ดแวร์และซอฟต์แวร์เฉพาะของอุปกรณ์ Apple ส่งผลให้ประสิทธิภาพรวดเร็ว การเคลื่อนไหวที่ราบรื่น และกราฟิกคุณภาพสูง
ความปลอดภัยที่ดีกว่า
ข้อดีที่สำคัญอีกประการของแอป iOS คือระดับความปลอดภัยที่มีให้ ซึ่งเป็นผลมาจากหลายปัจจัย โดยเฉพาะอย่างยิ่งกระบวนการตรวจสอบแอปใน App Store ที่เข้มงวด การเข้ารหัสที่แข็งแกร่ง และคุณสมบัติที่มุ่งเน้นความเป็นส่วนตัว
กระบวนการตรวจสอบใน App Store ได้รับการออกแบบเพื่อให้แน่ใจว่าแอปทั้งหมดใน App Store ตรงตามแนวทางด้านเนื้อหาและความปลอดภัยอย่างเข้มงวด ซึ่งรวมถึงการตรวจสอบโค้ดอันตราย มัลแวร์ และภัยคุกคามด้านความปลอดภัยอื่น ๆ
ผลลัพธ์คือ แอป iOS มีแนวโน้มที่จะไม่มีโค้ดที่เป็นอันตรายหรือถูกใช้ในการโจมตีแบบฟิชชิ่งหรือกิจกรรมที่เป็นอันตรายอื่น ๆ
ความสม่ำเสมอระหว่างอุปกรณ์
แอป iOS ถูกออกแบบให้มีลักษณะและฟังก์ชันเดียวกันบนอุปกรณ์ Apple ทุกชนิด รวมถึง iPhone, iPad และ iPod Touch
ความสม่ำเสมอนี้ทำให้ผู้ใช้สามารถเปลี่ยนอุปกรณ์ได้อย่างราบรื่นโดยไม่ต้องเรียนรู้อินเทอร์เฟซหรือระบบนำทางใหม่ นอกจากนี้ยังช่วยให้นักพัฒนาสามารถออกแบบและสร้างแอปที่ทำงานได้อย่างไร้รอยต่อบนทุกอุปกรณ์ โดยไม่ต้องกังวลเกี่ยวกับปัญหาความเข้ากันได้หรือคุณสมบัติเฉพาะของอุปกรณ์
เครื่องมือสำหรับนักพัฒนา
Apple มีเครื่องมือที่ทรงพลังสำหรับนักพัฒนา iOS ที่ทำให้การพัฒนา การทดสอบ และการดีบักแอป iOS ง่ายขึ้น
เครื่องมือเหล่านี้รวมถึง iOS SDK, Xcode และเครื่องมือและทรัพยากรอื่น ๆ อีกมากมายที่ช่วยเพิ่มประสิทธิภาพประสบการณ์การพัฒนาและคุณภาพของแอปที่สร้างขึ้น
ข้อจำกัดของการพัฒนาแอป iOS
ประสบการณ์การพัฒนา iOS นั้นไม่ไร้ที่ติ คุณจะพบกับข้อจำกัดบางประการในระหว่างการพัฒนาแอป iOS ซึ่งรวมถึงสิ่งต่อไปนี้
ความเข้ากันได้กับอุปกรณ์ที่จำกัด
หนึ่งในความท้าทายหลักในการพัฒนาแอป iOS คือช่วงความเข้ากันได้กับอุปกรณ์ที่จำกัด ในโลกปัจจุบันมีผู้ผลิตอุปกรณ์มือถือมากมายและมีผู้ใช้ที่หลากหลาย
อย่างไรก็ตาม แอป iOS สามารถทำงานได้เฉพาะบนฮาร์ดแวร์ของ Apple เท่านั้น นั่นหมายความว่าแอปเหล่านี้สามารถใช้งานได้เฉพาะใน iPhone, iPad และ iPod Touch เท่านั้น ซึ่งจำกัดกลุ่มเป้าหมายของแอปที่คุณสร้างและจำกัดให้อยู่ในระบบนิเวศของ Apple
แม้ว่า Apple จะมีฐานผู้ใช้ขนาดใหญ่ แต่ความเข้ากันได้กับอุปกรณ์ที่จำกัดของแอป iOS อาจเป็นข้อเสียหากคุณต้องการเข้าถึงกลุ่มผู้ใช้ที่กว้างขึ้นนอกเหนือจาก Apple
กระบวนการอนุมัติ App Store
กระบวนการตรวจสอบแอปของ App Store ของ Apple เป็นที่รู้จักว่ามีความเข้มงวดและอาจใช้เวลานานกว่าร้านแอปอื่น ๆ เช่น Google Play
กระบวนการตรวจสอบถูกออกแบบมาเพื่อให้แน่ใจว่าแอปทั้งหมดใน App Store ตรงตามแนวทางของ Apple ในด้านคุณภาพ ความปลอดภัย และเนื้อหา อย่างไรก็ตาม อาจเป็นความท้าทายเนื่องจากเวลารอที่ยาวนาน ทำให้การเปิดตัวแอปของคุณล่าช้า
ระบบนิเวศแบบปิด
Apple ควบคุมฮาร์ดแวร์และซอฟต์แวร์ของอุปกรณ์ของตนอย่างเข้มงวด ซึ่งหมายความว่าเฉพาะซอฟต์แวร์และฮาร์ดแวร์ที่ได้รับการอนุมัติจาก Apple เท่านั้นที่สามารถใช้งานร่วมกับอุปกรณ์ iOS ระบบนิเวศแบบปิดของพวกเขายังจำกัดความสามารถในการปรับแต่งและอาจสร้างอุปสรรคหากคุณต้องการให้ความยืดหยุ่นกับผู้ใช้แอปของคุณมากขึ้น
ระบบปิดนี้จะทำให้การรวมเข้ากับบริการหรือ API ของบุคคลที่สามทำได้ยากขึ้นสำหรับนักพัฒนา
ตัวเลือกแบ็คเอนด์สำหรับแอป 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 ผู้ให้บริการจะเสนอทรัพยากรคอมพิวเตอร์แบบเสมือน เช่น เซิร์ฟเวอร์และพื้นที่เก็บข้อมูลผ่านอินเทอร์เน็ต ในขณะที่คุณมีการควบคุมสภาพแวดล้อมเสมือนได้อย่างเต็มที่ ซึ่งรวมถึงระบบปฏิบัติการ ซอฟต์แวร์กลาง และแอปพลิเคชัน
ในทางกลับกัน ด้วย 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 คุณจะสามารถสร้างและตั้งค่าแบ็คเอนด์สำหรับแอป iOS ของคุณและจัดการกระบวนการที่เกี่ยวข้องกับข้อมูลทั้งหมดจากแอปแบ็คเอนด์นั้น
ในการสมัครบัญชีฟรี ให้ไปที่ เว็บไซต์ Back4App และสมัครบัญชีโดยใช้บัญชี Google, GitHub หรือที่อยู่อีเมล
ขั้นตอนที่ 2: สร้างแอปใหม่
เมื่อคุณมีบัญชี Back4App แล้ว ให้เข้าสู่ระบบและดำเนินการสร้าง APP ใหม่ ปุ่มสำหรับการทำเช่นนี้จะอยู่ที่มุมบนขวาของหน้าบัญชีของคุณ คุณควรเลือกตัวเลือก Backend as a Service สำหรับแอปของคุณ
ดำเนินการตั้งชื่อแอปใหม่ของคุณให้เหมาะสมและกดปุ่ม Create
Back4App จะสร้างแอปของคุณและนำทางคุณไปยังแดชบอร์ดของแอปนั้น
ขั้นตอนที่ 3: เชื่อมต่อแอป iOS ของคุณกับ Back4app
ขั้นตอนต่อไปคือการเชื่อมต่อแอป iOS ของคุณกับแบ็คเอนด์ของ Back4App คุณจะต้องติดตั้ง Parse SDK ลงในแอป iOS ของคุณ แอปของคุณจะใช้ SDK นี้เพื่อเชื่อมต่อกับแบ็คเอนด์โดยตรง
ก่อนที่จะตั้งค่าการเชื่อมต่อ คุณจะต้องมีแอป iOS ที่ทำงานได้อยู่ก่อน ตามที่กล่าวไว้แล้วว่าแอป iOS ถูกสร้างขึ้นโดยใช้ Xcode ซึ่งเป็น IDE ของ Apple สำหรับพัฒนาแอปพลิเคชันของ Apple
คุณจะต้องมี Xcode เวอร์ชันล่าสุด (เวอร์ชัน 13.0.0 หรือใหม่กว่า) ติดตั้งอยู่บนคอมพิวเตอร์ Mac ของคุณเพื่อให้สามารถทำตามคู่มือนี้ได้ เครื่องมือและคุณสมบัติบางอย่างในคู่มือนี้มีให้ใช้เฉพาะในเวอร์ชันเหล่านี้ของ 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 แล้ว คุณจะติดตั้ง SDK นี้โดยใช้ CocoaPods ซึ่งเป็นตัวจัดการ dependency แบบโอเพ่นซอร์สสำหรับโปรเจ็กต์ 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 ให้กับโปรเจ็กต์ของคุณโดยระบุ dependency สำหรับ Parse ใน Podfile
รันคำสั่งต่อไปนี้ในเทอร์มินัล:
pod install
หลังจากติดตั้ง pods แล้ว โปรเจ็กต์ของคุณจะถูกสร้างใหม่ในรูปแบบไฟล์ workspace ที่มีนามสกุล .xcworkspace
จากนี้ไปคุณจะทำงานกับ workspace ที่สร้างใหม่นี้
คุณได้ติดตั้ง Parse SDK ลงในโปรเจ็กต์ของคุณเรียบร้อยแล้ว
คุณอาจพบกับข้อผิดพลาดด้านความเข้ากันได้ของ simulator เวอร์ชัน 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
ส่วนโค้ดนี้เป็น post-install hook สำหรับ Podfile ของคุณ ซึ่งช่วยให้คุณแก้ไขการตั้งค่าการ build ของโปรเจ็กต์ Xcode หลังจาก CocoaPods ติดตั้ง pods เสร็จสิ้น
post-installer นี้ตั้งค่าเวอร์ชัน target ขั้นต่ำสำหรับ iOS ให้เป็น 12.0 คุณสามารถเปลี่ยนแปลงได้ทุกเมื่อโดยกำหนดเวอร์ชันใหม่ให้กับ ['IPHONEOS_DEPLOYMENT_TARGET']
จากนั้นให้ติดตั้ง pods อีกครั้ง:
pod install
เพื่อเชื่อมต่อแอป iOS ของคุณให้เสร็จสมบูรณ์ คุณจำเป็นต้องเชื่อมโยง App ID และ Client Key ของแอป Back4App ของคุณ ในการทำเช่นนี้ ให้ไปที่ การตั้งค่าแอป ที่อยู่บนแดชบอร์ดและไปที่ การตั้งค่าเซิร์ฟเวอร์ > การตั้งค่าหลัก
ภายใน การตั้งค่าหลัก คุณจะพบกับ 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 = “<https://parseapi.back4app.com>”
}
Parse.initialize(with: configuration))
return true
}
คัดลอก App id
และ Client Key
ที่คุณบันทึกไว้ไปวางในช่องที่ระบุไว้
จากนั้นให้ import Parse SDK ในไฟล์นี้เพื่อแก้ไขข้อผิดพลาด ‘module not found'
:
import Parse
ตอนนี้แอปของคุณได้เชื่อมต่อกับ Back4App เรียบร้อยแล้ว!
ขั้นตอนที่ 4: ทดสอบแบ็คเอนด์ของคุณ
ในส่วนนี้ คุณจะทำการทดสอบแอป iOS ของคุณเพื่อยืนยันว่าคุณสามารถโต้ตอบกับเซิร์ฟเวอร์ Back4App และแอปที่คุณสร้างขึ้นได้
คุณจะทำการทดสอบการดำเนินการ CRUD และการจัดเก็บข้อมูลโดยใช้ Parse SDK
เมื่อจบการทดสอบ คุณจะสามารถยืนยันได้ว่าข้อมูลที่สร้างขึ้นได้รับการบันทึกและอ่านจากแอปแบ็คเอนด์ของคุณเรียบร้อยแล้ว
ในการจัดเก็บข้อมูลบนแบ็คเอนด์ คุณจะสร้างอ็อบเจ็กต์คลาสภายใน Back4app โดยค่าเริ่มต้น คลาสใหม่จะมีสคีมาที่มีฟิลด์สามฟิลด์ ได้แก่ “objectId”, “createdAt” และ “updatedAt” คุณสามารถเพิ่มฟิลด์ใหม่และแถวข้อมูลได้
คุณจะสร้างฟิลด์ใหม่จากแอป iOS ของคุณและอ่านข้อมูลที่ถูกจัดเก็บในคลาสที่คุณสร้างขึ้น
ขั้นแรก ภายใน ContentView.swift
ให้ import Parse SDK ทันทีหลังจาก SwiftUI:
import SwiftUI import Parse
เพื่อทดสอบว่าแอปของคุณสามารถโต้ตอบกับแบ็คเอนด์ได้ คุณจะสร้าง UI สำหรับให้ผู้ใช้กรอกคะแนนและบันทึกคะแนนนั้นไว้บนแบ็คเอนด์ แอปจะสามารถเข้าไปดึงข้อมูลจากแบ็คเอนด์ ทำการ query ข้อมูลจากคลาสที่คุณสร้าง และแสดงคะแนนที่บันทึกไว้
ที่ส่วนบนของโครงสร้าง View ใน ContentView.swift
ให้สร้าง state property ที่สามารถเปลี่ยนแปลงได้ดังนี้:
@State private var newScore: Int = "" @State private var scores: [PFObject] = []
state property ตัวแรกประกาศตัวแปรชื่อ newScore
ชนิด String
แทนค่าที่ผู้ใช้กรอกคะแนนใหม่ เริ่มต้นด้วยสตริงว่าง ""
state property ตัวที่สองประกาศตัวแปรชื่อ 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() }
คุณมี TextField
ให้ผู้ใช้กรอกคะแนน โดยพารามิเตอร์ text
ถูกผูกกับตัวแปร state newScore
ซึ่งหมายความว่าการเปลี่ยนแปลงใน text field จะสะท้อนไปในตัวแปร newScore
ต่อมา มีปุ่ม “Save Scores” ที่เรียกฟังก์ชัน saveScore()
เมื่อถูกกด
คอมโพเนนต์ List
จะแสดงคะแนนที่ดึงมาจากแบ็คเอนด์ โดยใช้ตัวแปรอาเรย์ scores
เพื่อสร้างรายการ และพารามิเตอร์ id
ระบุรหัสประจำตัวที่ไม่ซ้ำกันสำหรับแต่ละรายการ คะแนนจะแสดงผ่านวิว Text
ในแต่ละรายการ
คุณใช้ optional chaining และ nil-coalescing operator (??
) เพื่อจัดการกับกรณีที่คะแนนไม่มีหรือมีชนิดข้อมูลที่ไม่ตรงกัน
สุดท้าย modifier 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
จะเริ่มกระบวนการบันทึกแบบอะซิงโครนัสใน background queue ภายใน closure สำหรับการเสร็จสิ้นคุณจะตรวจสอบว่ามีข้อผิดพลาดเกิดขึ้นระหว่างการบันทึกหรือไม่ และจัดการข้อผิดพลาดนั้น
หลังจากบันทึกคะแนนสำเร็จ คุณจะรีเซ็ตตัวแปร state newScore
ให้เป็นสตริงว่างเพื่อเคลียร์ค่าใน text field จากนั้นเรียกฟังก์ชัน fetchScores()
เพื่ออัปเดตรายการคะแนน
ภายในฟังก์ชัน fetchScores()
คุณจะใช้ PFQuery
ของ Parse เพื่อทำการ query ข้อมูลในแบ็คเอนด์และดึงอ็อบเจ็กต์จากคลาสที่กำหนด ในกรณีนี้คลาสนั้นคือ 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
บนอ็อบเจ็กต์ query เพื่อเริ่มกระบวนการดึงข้อมูลแบบอะซิงโครนัส ภายใน closure สำหรับการเสร็จสิ้น คุณสามารถจัดการกับผลลัพธ์ของ query นั้นได้
หากเกิดข้อผิดพลาดระหว่างการดึงข้อมูล คุณจะแสดงข้อความข้อผิดพลาดออกมา แต่ถ้าการดึงข้อมูลสำเร็จและมีอ็อบเจ็กต์ถูกส่งกลับ คุณจะอัปเดตตัวแปร state scores
ด้วยอ็อบเจ็กต์ที่ดึงมา ซึ่งอ็อบเจ็กต์เหล่านี้แทนค่าคะแนนที่ถูกดึงจากแบ็คเอนด์
เมื่อคุณรันแอป กรอกคะแนนใหม่ และกดปุ่ม Save Scores แอปจะส่งและบันทึกค่าคะแนนใหม่ไปยังแบ็คเอนด์และดึงคะแนนทั้งหมดที่ถูกบันทึกไว้มาแสดง ซึ่งควรจะแสดงรายการคะแนนเหมือนภาพด้านล่าง
สังเกตว่าคะแนนที่แสดงตรงกับค่าคะแนนในแบ็คเอนด์ของคุณ
สิ่งนี้ยืนยันว่าการทดสอบผ่านแล้วและคุณได้เขียนและอ่านข้อมูลจากแบ็คเอนด์ Back4App ได้สำเร็จ
ตอนนี้คุณก็รู้วิธีสร้างแบ็คเอนด์สำหรับแอปมือถือ iOS โดยใช้ Back4App และภาษาโปรแกรม Swift แล้ว