iOS
การติดตั้ง Apollo iOS Client ในโปรเจกต์ Swift ด้วย CocoaPods
20 นาที
บทนำ ในส่วนนี้คุณจะได้เรียนรู้วิธีการติดตั้ง apollo ios client ในโปรเจกต์ swift ของคุณและทำการสอบถามข้อมูลจาก back4app โดยใช้มัน ข้อกำหนดเบื้องต้น ในการทำให้การเริ่มต้นนี้เสร็จสมบูรณ์ คุณต้องการ xcode แอปที่สร้างขึ้นที่ back4app ติดตาม https //www back4app com/docs/get started/new parse app เพื่อเรียนรู้วิธีการสร้างแอป parse ที่ back4app คลาสที่มีข้อมูลบางอย่างเก็บไว้ (เพื่อให้คุณสามารถเรียกคืนได้) 1 การนำ apollo client เข้าสู่โปรเจกต์ xcode ของคุณ วิธีที่ง่ายที่สุดในการรวม apollo ios client คือการใช้ https //cocoapods org/ เพื่อรวมมันเข้าด้วยกัน ให้ทำตามขั้นตอนเหล่านี้ สร้างโปรเจกต์ xcode ของคุณและในโฟลเดอร์เดียวกันกับไฟล์ xcodeproj ของคุณ สร้างไฟล์ใหม่ชื่อ podfile แก้ไขไฟล์ podfile และเพิ่มโค้ดต่อไปนี้ โดยเปลี่ยนสตริง yourprojectnamehere เป็นชื่อโปรเจกต์ของคุณ \# uncomment the next line to define a global platform for your project platform \ ios, '12 0' target 'yourprojectnamehere' do \# comment the next line if you're not using swift and don't want to use dynamic frameworks use frameworks! \# pods for conferenceplanner pod 'apollo' end บันทึกไฟล์และเปิดเทอร์มินัล ไปที่โฟลเดอร์นั้นและพิมพ์ pod install เมื่อการติดตั้งเสร็จสิ้น คุณควรมีไฟล์ใหม่ที่มีรูปแบบ xcworkspace เปิดไฟล์นั้นด้วย xcode 2 ดึง schema ของคุณ คุณต้องมีไฟล์ชื่อ schema json ที่มี schema สำหรับ graphql endpoint ของคุณ มีสองวิธีในการดึง schema ทั้งหมดของคุณ การใช้ back4app graphql console การใช้ apollo เราจะพูดคุยเกี่ยวกับทั้งสองอย่าง เลือกอันที่คุณชอบที่สุด 2 1 ดึง schema ของคุณด้วย back4app graphql console ไปที่ graphql console ของแอปที่คุณต้องการดึง schema และที่ด้านขวาใต้แท็บ schema คลิกที่ปุ่มดาวน์โหลด 2 2 ดึง schema ของคุณด้วย apollo หากคุณต้องการใช้ apollo ก่อนอื่นคุณต้องติดตั้งเวอร์ชัน desktop โดยพิมพ์ npm install g apollo จากนั้น รันคำสั่งต่อไปนี้โดยแทนที่ค่าของ headers ด้วย appid และ masterkey ของคุณ apollo client endpoint= https //parseapi back4app com/graphql header="x parse application id yourappidhere" header="x parse master key yourmasterkeyhere" สิ่งนี้จะสร้างไฟล์ aschema json เป็นผลลัพธ์ 3 เพิ่มไฟล์ schema json ของคุณลงในโปรเจกต์ เพิ่มไฟล์ schema json ที่คุณดาวน์โหลดหรือดึงมาไว้ในโปรเจกต์ของคุณในไดเรกทอรีหลัก นี่คือโฟลเดอร์เดียวกับที่ไฟล์ appdelegate swift ของคุณอยู่ 4 สร้างไฟล์ graphql ของคุณ ตอนนี้คุณสามารถสร้างไฟล์ graphql ของคุณด้วยไฟล์และการเปลี่ยนแปลงของคุณได้ ไฟล์เหล่านี้ต้องมีนามสกุล graphql และต้องมีอย่างน้อยหนึ่งคำถามหรือการเปลี่ยนแปลงเพื่อให้ apollo สร้างโค้ด swift จากมัน แนวทางที่มีประโยชน์คือการจัดกลุ่มคำถาม การเปลี่ยนแปลง หรือส่วนที่ใช้ร่วมกับโค้ด swift ที่ใช้พวกเขาโดยการสร้าง \<name> graphql ข้างๆ \<name> swift หากคุณไม่มีไฟล์ graphql ที่มีอยู่ในโครงสร้างไฟล์ของคุณ ให้สร้างคำถามที่ง่ายมากและเพิ่มมันลงในไฟล์ graphql ในโครงสร้างไฟล์ของคุณเพื่อให้เมื่อคุณรันขั้นตอนการสร้างโค้ด มันจะพบอะไรบางอย่าง หากไม่เช่นนั้น คุณจะได้รับข้อผิดพลาดว่าไม่พบการดำเนินการหรือส่วนที่สร้างโค้ด นี่คือตัวอย่างคำถามง่ายๆ ที่ส่งคืนผู้ใช้ parse 1 query findallusers{ 2 objects{ 3 find user{ 4 count 5 results{ 6 username 7 } 8 } 9 } 10 } เพิ่มไฟล์นั้นไปยังไดเรกทอรี target ของคุณที่ระดับเดียวกับไฟล์ schema json ของคุณ 5 เพิ่มขั้นตอนการสร้างโค้ด คุณสามารถเรียกใช้ apollo เป็นส่วนหนึ่งของกระบวนการสร้าง xcode ซึ่งจะดึงและอัปเดตไฟล์ schema json โดยอัตโนมัติ ดังนั้นคลาสของคุณจะสะท้อนการเปลี่ยนแปลงใดๆ ที่คุณทำโดยการเรียกใช้สคริปต์ห่อ check and run apollo cli sh ห่อจะตรวจสอบว่ารุ่นของ apollo ที่ติดตั้งในระบบของคุณเข้ากันได้กับรุ่นของเฟรมเวิร์กในโปรเจกต์ของคุณหรือไม่ หากคุณไม่ตรวจสอบสิ่งนั้น คุณอาจสร้างโค้ดที่ไม่เข้ากันกับโค้ดรันไทม์ในเฟรมเวิร์ก ขั้นตอนมีดังนี้ ในแท็บการตั้งค่าของ build phases ของเป้าหมายแอปพลิเคชันของคุณ ให้คลิกที่ไอคอน + และเลือก new run script phase ใน run script ที่สร้างขึ้น ให้เปลี่ยนชื่อเป็น generate apollo graphql api ลากสคริปต์รันใหม่นี้ขึ้นไปเหนือ compile sources ในรายการ build phases ของคุณเพื่อให้มันทำงานก่อนที่โค้ดของคุณจะถูกคอมไพล์ เพิ่มสิ่งต่อไปนี้ใน run script script path="${pods root}/apollo/scripts" cd "${srcroot}/${target name}" "${script path}"/check and run apollo cli sh codegen target=swift includes= / / graphql localschemafile="schema json" api swift หากคุณกำลังใช้ xcode 11 beta ให้เพิ่มสคริปต์นี้แทน \# ไปที่ root ของการสร้างและกลับขึ้นไปที่ที่ spm เก็บเฟรมเวิร์ก apollo ios ที่ถูกตรวจสอบแล้ว cd "${build root}" cd " / /sourcepackages/checkouts/apollo ios/scripts" apollo script path="$(pwd)" if \[ z "${apollo script path}" ]; then echo "error ไม่สามารถหาสคริปต์ cli ในแพ็คเกจ spm ที่คุณตรวจสอบแล้ว; โปรดตรวจสอบให้แน่ใจว่าได้เพิ่มเฟรมเวิร์กลงในโปรเจกต์ของคุณแล้ว " exit 1 fi cd "${srcroot}/${target name}" "${apollo script path}"/check and run apollo cli sh codegen target=swift includes= / / graphql localschemafile="schema json" api swift 6 สร้างและเพิ่มไฟล์ api ของคุณไปยังเป้าหมาย สร้างโปรเจกต์ของคุณและไฟล์ที่ชื่อว่า api swift ควรจะถูกสร้างในไดเรกทอรีของ target ของคุณ ลากไฟล์ api swift ที่สร้างขึ้นไปยังเป้าหมายของคุณและตรวจสอบให้แน่ใจว่าได้ยกเลิกการเลือกช่อง “copy files if needed” ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบทุกเป้าหมายที่ไฟล์ api ต้องรวมอยู่ด้วย 7 ตั้งค่าลูกค้า ตอนนี้ใน viewcontroller swift ของคุณ สร้างการกำหนดค่า apollo ของคุณและเปลี่ยนค่า appid และ clientkey ของคุณ 1 let apollo apolloclient = { 2 let configuration = urlsessionconfiguration default 3 configuration httpadditionalheaders = \[ 4 "x parse application id" "yourappidhere", 5 "x parse client key" "yourclientkeyhere" 6 ] 7 8 let url = url(string "https //parseapi back4app com/graphql")! 9 10 return apolloclient( 11 networktransport httpnetworktransport( 12 url url, 13 configuration configuration 14 ) 15 ) 16 }() 8 ตั้งค่าลูกค้า ใน viewdidload ของคุณ เรียกใช้คำถาม graphql ของคุณจาก apollo client 1 apollo fetch(query findallusersquery()) { result in 2 guard let data = try? result get() data else { return } 3 print(data objects? finduser results\[0] username) 4 } หากคุณมีผู้ใช้ใด ๆ ในคลาสผู้ใช้ของคุณ ผู้ใช้คนแรก (ดัชนี 0) ควรจะถูกดึงมา ขั้นตอนที่เลือก รับการเน้นไวยากรณ์ คุณสามารถมีการเน้นไวยากรณ์ graphql บน xcode หากคุณต้องการ เพื่อให้บรรลุสิ่งนั้น โคลน https //github com/apollostack/xcode apollo ลงในคอมพิวเตอร์ของคุณ ปิด xcode หากมันกำลังทำงานอยู่ คุณอาจต้องสร้างโฟลเดอร์เหล่านี้ภายใน /library/developer/xcode mkdir /library/developer/xcode/plug ins /library/developer/xcode/specifications 4\ คัดลอก graphql ideplugin ไปยัง /library/developer/xcode/plug ins cp r graphql ideplugin /library/developer/xcode/plug ins 5\ คัดลอก graphql xclangspec ไปยัง /library/developer/xcode/specifications cp r graphql xclangspec /library/developer/xcode/specifications คุณอาจได้รับคำเตือนครั้งแรกเมื่อคุณเริ่ม xcode หลังจากติดตั้งส่วนเสริมเหล่านี้ เมื่อคุณยอมรับที่จะโหลดปลั๊กอิน คุณจะไม่เห็นคำเตือนนี้อีกต่อไป