[iOS] CocoaPods กับการใช้งาน 3rd-party library #2
ก่อนหน้านี้ได้พูดถึง CocoaPods ไปแล้วบางส่วน http://www.lordgift.in.th/2016/01/ios-cocoapods-3rd-party-library.html ครั้งนี้ เราจะสมมติสถานการณ์ดูว่า ถ้าเราต้องการหา library ซักอย่างมาใช้ เพื่อช่วยในงานบางอย่าง วิธีการเป็นอย่างไรบ้าง
เราสามารถค้นหา library ผ่านหน้าเว็บของ CocoaPods ได้เลย
https://cocoapods.org/
แน่นอนว่าเราจะพบกับผลการค้นหามากมาย ซึ่งเราก็ต้องเลือกใช้ โดยจะมีรายละเอียดบางส่วนสามารถดูได้ รวมถึง link ไปยังเว็บหลักของ library นั้นๆ
สำหรับโจทย์วันนี้คือ QR Code & Barcode
เราสามารถค้นหา library ผ่านหน้าเว็บของ CocoaPods ได้เลย
https://cocoapods.org/
แน่นอนว่าเราจะพบกับผลการค้นหามากมาย ซึ่งเราก็ต้องเลือกใช้ โดยจะมีรายละเอียดบางส่วนสามารถดูได้ รวมถึง link ไปยังเว็บหลักของ library นั้นๆ
สำหรับโจทย์วันนี้คือ QR Code & Barcode
ซึ่งหลังจากที่ผมได้ค้นหาและทดลองมาจบที่ PQScanner https://cocoapods.org/pods/PQScanner ซึ่งถ้าดูจากตัวอย่างจะเห็นว่าเป็น Objective-C เอามาจะเอามาใช้กับ Swift โพสก่อนหน้านี้ก็บอกว่าเราสามารถทำ Bridging Header ได้ (http://www.lordgift.in.th/2016/01/ios-bridging-header-swift-objective-c.html) ซึ่งในเคสของ CocoaPods จะต่างกันนิดหน่อย
- install library (PQScanner) ผ่าน cocoapods ให้เรียบร้อย
- เปิด View Controller ที่ต้องการใช้งาน
- import library *ถ้า bridging header จะไม่ต้อง import แบบ swift
import PQScanner
- จากนั้นเราสามารถใช้งาน library โดยเขียนแบบ swift ได้เลย *ถ้ามี skill ทั้ง objective-c และ swift ก็จะแปลงได้ราบรื่น (Swift แต่ละเวอร์ชั่นก็ต่างกันอีกนิดหน่อย) การมีตัวช่วยก็ทำให้ชีวิตดีขึ้นไม่น้อย :D http://iswift.org/try https://objectivec2swift.com/#/converter/code
self.scanner = PQScanner(targetView: self.view!, withDelegate: self) scanner.setupAVCapture() scanner.startScan{(encodeStr:String!, codeType:String!) -> Void in //block }
self.scanner.continueScan()
func scanner(scanner: PQScanner!, didOpenCaptureFaild error: NSError!) { print(error); }