Introduction to Xcode
Last updated
Last updated
หลังจากที่เราสร้างโปรเจคเสร็จ สิ่งแรกที่เราจะเห็นคือ หน้า Setting ค่าต่าง ๆ ในโปรเจคของเรา โดยในส่วนแรกตรงกลางจอ คือค่าต่าง ๆ ที่เราใส่ตอนสร้างโปรเจคในบทก่อนหน้า
ในส่วนของ Deployment Info จะเป็นส่วนที่กำหนดเพิ่มเติม โดยทั่วไปเราจะดูส่วน
Deployment Target ระบุว่า iOS version ขั้นต่ำที่เราจะรองรับ Devices เราสามารถเลือกซัพพอร์ต iPhone, iPad, Mac Catalyst Main Interface ระบุว่า Storyboard แรกที่จะใช้งานคืออันไหน กรณีนี้คือ Main.storyboard Device Orientation ระบุว่าเรารองรับหน้าจอแนวไหน แนวตั้งหรือแนวนอน
ด้านซ้ายมือจะเป็น Navigator ไปยังส่วนต่าง ๆ ที่เรามักจะใช้บ่อยคือ
Project Navigator ใช้ในการดูและเข้าถึงไฟล์ต่าง ๆ ในโปรเจคของเรา Source Control ใช้ในการดู Git changes และ repositories Symbol ใช้ในการดู structure ของ Type ต่าง ๆ ที่เราใช้ในโค้ดของเรา Search ใช้ในการค้นหา Issue ใช้แสดง warning และ error ต่าง ๆ ที่เกิดขึ้นในแอปของเรา Test ส่วนที่แสดงรายการเทสเคส และผลลัพธ์ทั้งหมดของโปรเจคเรา Debug ใช้ในการ monitor แอปของเราเมื่อเรารันใน Debug mode Breakpoint แสดง breakpoint ทั้งหมดที่เราใส่ไว้ Report ส่วนที่แสดง log การทำงานต่าง ๆ เช่น Build log, Test log
เมื่อเราสร้างเป็น App เสร็จแล้ว Xcode จะสร้างไฟล์ต่าง ๆ ให้ดังนี้
AppDelegate.swift จะเป็นไฟล์ที่ใช้จัดการ event หรือสถานะต่าง ๆ ที่แชร์กันระดับทั้งแอป เช่น การจัดการเมื่อได้รับ Notification
SceneDelegate.swift จะเป็นไฟล์ที่ทำหน้าที่จัดการหน้าต่างหรือหน้าจอของแอป จะกล่าวอีกทีใน Scene-Based Life-Cycle
ViewController.swift เป็น controller แรกที่ Xcode สร้างมาให้ผูกกับหน้าจอแรกใน storyboard
Main.storyboard ใช้ในการสร้างหน้าจอและจัดการการเชื่อมโยงหน้าจอต่าง ๆ แบบแผนภาพ
Assets.xcassets ใช้ในการเก็บรูปต่าง ๆ เช่น รูป icon ของ แอป
LaunchScreen.storyboard ใช้ออกแบบหน้าจอในขณะที่โหลดเปิดแอป
Info.plist ใช้ในการคอนฟิกค่าต่าง ๆ ของแอป
TodoAppTests เป็นที่เก็บไฟล์ Unit test ของเรา
TodoAppUITests เป็นที่เก็บ UI test ของเรา
ก่อน iOS 13 การจัดการ Life cycle ของแอปทั้งหมดจะอยู่ที่ AppDelegate เพียงตัวเดียว แต่ใน iOS 13 เป็นต้นมา ใน iPad จะสามารถแสดงหน้าจอได้หลายหน้าจอ จึงมีการแยกหน้าที่ความรับผิดชอบในการจัดการส่วนของหน้าจอออกมาจาก AppDelegate เป็น SceneDelegate ขึ้นมาอีกตัวนึง
เราสามารถกด cmd + 1, cmd + 2, +3, +4, ... ในการสลับ navigator ต่าง ๆ ได้