netfox — A lightweight, one line setup, iOS / OSX network debugging library! 🦊
ทำ iOS มาได้เกือบสองปีละ แต่ก่อนเวลาจะดู request, response ก็ต้องใช้ Charles ซึ่งต้องต่อ Wi-Fi เดียวกัน, ตั้ง proxy, trust certificate วุ่นวายพอสมควร
ตอนนี้ Charles ก็มีให้ใช้ใน iOS แล้วนะ ให้สิทธิ์แก้ไขการตั้งค่าของเครื่องไม่ต้องตั้งค่าอะไรวุ่นวาย แต่ต้องซื้อแยก
พอดี Chinwat ไปเจอ tools มาตัวนึง ชื่อว่า netfox ทางสว่างก็เกิดขึ้น เลยมาบอกต่อ สามารถใช้ได้ทั้ง iOS และ macOS application นะครับ
ซึ่ง tool ตัวนี้ผมว่าดีในมุมของการ debug เอง และลดงานระหว่าง dev และ tester ไป เช่น tester สามารถดูได้เลยว่า request, response ถูกต้องหรือไม่ ก่อนที่จะมาหา iOS dev และถูกไล่ให้ไปหา API dev (ฮา) และไม่ต้องเสียบสายดู Logcat (นั่นมัน Android ตะลึงตึงโป๊ะ)
จากตรงนี้ไปก็ข้ามไปดูใน Github https://github.com/kasketis/netfox ได้เลย หรือจะอ่านต่อก็ได้
วิธีการติดตั้ง
cocoapods
ง่ายมากถ้าใครใช้ cocoapods
อยู่แล้ว ก็เพิ่ม Pod เข้าไปตัวนึงที่ Podfile
ได้เลย อย่าลืม user_framworks!
ด้วย
use_frameworks!
pod 'netfox'
ทำการ pod install
ให้เรียบร้อย
Carthage
หรือถ้าใครใช้ Carthage ก็ใส่ลงไปใน Cartfile
ว่า
github "kasketis/netfox"
เสร็จแล้วก็ carthage update --platform iOS --cache-builds
ได้เลย (อย่าลืมปรับ command ดูได้ที่ https://medium.com/@phai/84cf004cb35c)
วิธีการใช้งาน
ให้เอา code ชุดนี้ไปใส่ใน AppDelegate
ในส่วนของ didFinishLaunchingWithOptions
Swift
อย่าลืม import netfox
NFX.sharedInstance().start()
Objective-C
[[NFX sharedInstance] start];
ซึ่งทั้งคู่ถ้าต้องการให้ทำงานแค่บาง build configuration ก็ให้ครอบด้วย preprocessor directive เช่น
#if DEBUG
import netfox
#endif
...#if DEBUG
NFX.sharedInstance().start()
#endif
เท่านี้ก็จะไม่ทำงานบน build configuration Release
แล้ว
แต่เดียวก่อน!
cocoapods
ยังสามารถรองรับการใส่ dependencies ตาม build configuration ได้โดยการใส่ parameters เพิ่มเข้าไปเช่น
pod ‘netfox’, :configurations => [‘Debug’, ‘Test’]
แล้วทำการ pod install
อีกครั้งหนึ่ง ก็จะไม่หลุดเข้า Release
ไปอีกชั้นหนึ่ง
ส่วน carthage ก็ทำได้นะ แต่จะวุ่นวายหน่อย ๆ เช่น ไม่ต้องใส่เข้าไปใน Library Seach Path อะไรทำนองนั้น
การเรียกใช้
สำหรับ default จะทำการเรียก และซ่อนโดยการเขย่าเครื่อง iPhone ก็จะออกมา ซึ่งจะไป override
พฤติกรรมของ textField
ที่เขย่าเพื่อ Undo Typing
นั่นเอง
สำหรับคนที่ต้องการ custom วิธีการเองให้ไปอ่านใน Github ของ netfox นะครับผม
ปล. tool แบบเดียวกันบน Android ก็มีนะ รอให้ WeRockStar มาเขียนดีกว่า
สวัสดีครับ
reference: