Wasith T. (Bai-Phai)
odds.team
Published in
2 min readMay 14, 2018

--

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 ตะลึงตึงโป๊ะ)

ตัวอย่างการเปิดดู request, response

จากตรงนี้ไปก็ข้ามไปดูใน 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:

--

--

Wasith T. (Bai-Phai)
odds.team

ตบมือเป็นกำลังใจให้ผมด้วยนะครับ 😘