How to use CocoaPods on iOS ?
CocoaPods เป็นศูนย์รวม Library ต่าง ๆ ของ iOS, macOS, watchOS, tvOS ทั้งภาษา Swift และ Objective-C ซึ่งมีนักพัฒนาต่าง ๆ พัฒนา Library ไว้มากมาย บน CocoaPods นั้นสามารถทำได้ทั้ง Public library และแบบ Private library
How to use Library on CocoaPods ?
- Install CocoaPods
เริ่มแรกเลยเราต้องลง CocoaPods สะก่อน ด้วยการเปิด Terminal ขึ้นมาและพิมพ์คำสั่งตามด้านล่างนี้
$ sudo gem install cocoapods
จากนั้นทดลองใช้งาน โดยพิมพ์ว่า
$ pod --version
**ถ้าก่อนหน้านี้เคยลง CocoaPods มาก่อนและต้องการลงใหม่ก็สามารถลบ CocoaPods ด้วยคำสั่ง
$ sudo gem uninstall cocoapods
**และเราสามารถเลือกลงเวอร์ชัน CocoaPods ได้ด้วยคำสั่ง
$ sudo gem install cocoapods –v1.2.1
2. Setup iOS Project with CocoaPods
สร้าง iOS Project ขึ้นมาเมื่อสร้างเสร็จแล้วกดปิด Project ไป จากนั้นเปิด Terminal ขึ้นมาแล้วเข้าไปยัง iOS Project ของเรา จากนั้นเราจะ Initial CocoaPods ด้วยคำสั่ง
$ pod init
เมื่อ Initial CocoaPods แล้วจะมี Podfile ขึ้นมาดังรูป
Podfile นี้จะเป็นตัวที่ระบุถึง Library ต่าง ๆ ที่เราจะเอาเข้ามาใช้บน Project ของเราพร้อมระบุ Library version ต่าง ๆ อีกด้วย
3. Install library from CocoaPods
โดยการหา Library ต่าง ๆ จาก https://cocoapods.org ตัวอย่างเช่น
พอเราเริ่มค้นหา Library ที่อยู่บน CocoaPods นั้น คำถามลำดับต้น ๆ ที่ผุดขึ้นมาเลยคือ เราจะเลือกใช้ Library ตัวไหนดีเพราะมันมีมากมายเหลือเกิน เราจึงขอแนะนำอย่างนี้
- ดูจากจำนวนที่ Download ไปใช้งาน
- ดูจากจำนวนคนที่ Install ไปใช้งาน
- ดูจากภาษาที่ใช้ในการพัฒนาและเวอร์ชันของภาษา
- ดูจากวันเวลาที่อัพเดตล่าสุด
จากนั้นเมื่อเราเลือกได้แล้วให้กดไปที่ Install Guide ที่อยู่ด้านขวาล่าง มันจะบอกวิธีลง Library พร้อมบอกเวอร์ชัน
จากนั้นให้เข้าไปที่ Podfile ที่อยู่ใน iOS Project ของเราจากนั้นปรับแต่งให้เหมาะสมกับ Project ของเราเช่น platform version target ที่เราต้องการใช้งาน, Target บน Project ของเราปกติ Project ทั่ว ๆ ไปจะมีอยู่ Target เดียวยกเว้นแต่ที่จะมีการแบ่ง Environment ของ Project เป็น Dev, Test, UAT, Prod ตัวอย่างการเขียนบน Podfile มีดังนี้
platform :ios, ‘10.0’use_frameworks!target ‘TestPod’ dopod ‘Alamofire’, ‘~> 4.6’end
**Library ต่าง ๆ ที่จะนำเข้ามาต้องอยู่ภายใต้ Target เท่านั้นและ Target name ต้องมีอยู่จริงบน iOS Project ของเราด้วยไปงั้นจะเกิด Error ขึ้น
เมื่อแก้ไข Podfile เสร็จแล้วก็ทำการพิมพ์คำสั่งบน Terminal ว่า
$ pod install
**และเวลาเปิด Project จากที่เราเคยเปิดผ่าน .xcodeproj ให้เปิดผ่าน .xcworkspace แทน เมื่อเปิดเข้าไปแล้วจะเห็นว่ามี Library ที่เรา Install เข้ามาแล้ว
เมื่อเข้า Xcode มาแล้วก่อนเขียนโปรแกรมก็ควร Clean and build project สักทีเพื่อให้ Project ได้รู้จัก Library ต่าง ๆ ที่เรานำเข้ามาใช้งาน
**บน Podfile เราจะเห็นถึงการระบุถึงเวอร์ชันของ Library และมีสัญลักษณ์ต่าง ๆ ที่เราอาจจะยังไม่เข้าใจอยู่เช่น ~>, >, >= ซึ่งสัญลักษณ์เหล่านี้มันคืออะไรกัน
- ‘> 0.1’ คือ เอาเวอร์ชั่นที่มากกว่า 0.1 ขึ้นไป
- ‘>= 0.1’ คือ เอาเวอร์ชั่น 0.1 และมากกว่า 0.1 ขึ้นไป
- ‘< 0.1’ คือ เอาเวอร์ชั่นที่น้อยกว่า 0.1 ลงไป
- ‘<= 0.1’ คือ เอาเวอร์ชั่น 0.1 และน้อยกว่า 0.1 ลงไป
- ‘~> 0.1.2’ คือ เอาเวอร์ชั่น 0.1.2 แต่ไม่ถึง 0.2
- ‘~> 0.1’ คือ เอาเวอร์ชั่น 0.1 แต่ไม่ถึง 1.0
- ‘~> 0’ คือ เอาเวอร์ชั่นล่าสุดตลอด
4. How to update library ?
เมื่อเราเคยลง Library ไปแล้วและอยากจะ Update library เพื่อให้เป็นเวอร์ชันใหม่ขึ้น ให้ใช้คำสั่ง
$ pod update
5. How to use the library ?
ให้ทำการ Import Library นั้น ๆ เข้ามาใช้งานก่อน แต่เด๋วนะปกติแล้วไฟล์บน Swift เราไม่จำเป็นต้อง Import ก่อนเข้าใช้งานเลย แล้วทำไม Library ต้อง Import เข้ามาด้วยล่ะ เหตุผลคือ Library นั้นเปรียบเสมือนอยู่คนละ Module กับ Project ทำให้ต้อง Import เข้ามาใช้งานก่อน ดังตัวอย่าง
import UIKitimport Alamofire
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() }
override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() }}
**ถ้า Import แล้วไม่ขึ้นชื่อ Library ให้เราทำการ Clean and build project อีกครั้งหนึ่งก่อน