32
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS Second StageAdvent Calendar 2015

Day 22

iOSのお手軽な通信デバッグライブラリnetfoxを使って見る

Posted at

image

少し前のiOS Dev Weeklyで紹介されていたnetfoxというiOS軽量ネットワークデバッグライブラリが少し気になっていたのでイジってみました

iOS開発における定番のネットワークキャプチャリングツール

Charles

  • Mac本体をプロキシサーバとして経由してキャプチャする
  • 設定が手間(iPhoneのプロキシの設定を戻すのを忘れるってあるある?)
  • コードを書く必要はない
  • よって他社サービスの通信もキャプチャできる

WireShark

  • RemoteVirtualInterface(RVI)を用いてキャプチャする
  • 設定が手間
  • コードを書く必要はない
  • よって他社サービスの通信もキャプチャできる

PonyDebugger

  • ローカルにゲートウェイとなるwebサーバをたててそこでキャプチャする
  • 設定が多少手間
  • 表示がChromeDevToolなのでそれに慣れてる人には見やすい
  • コードに書く必要あり
  • よって他社サービスの通信はキャプチャできない

上記3つの比較で気になるところ、また他のキャプチャリングツールで「これ忘れちゃダメでしょ」というのがあればコメントいただけると幸いです

netfoxとは

さきほどのCharlesなどと比較すると、以下のような特徴が挙げられると思います

  • アプリケーション内でnetfox専用のモーダルを表示して、そこでキャプチャリングの情報を確認する
  • よって設定は楽(なにかを経由してとかではないので)
  • コードに書く必要あり
  • よって他社サービスの通信はキャプチャできない

ということなので用途としては限られているかもしれませんが、「実機で(特に屋外で)動作検証・ドッグフーディングを行っているとき」に、

  • アプリケーション側の表示が正しくないので、レスポンスをみてみて問題を切り分ける
  • レスポンスタイムが気になったので、実際にかかっている時間をみてみる

などがあるかなと個人的には考えています。
(ログを転送する機能も提供されているのですが、手段としてはメールのみになります)

インストール(CocoaPods)

pod 'netfox'

pod install

Carthageでのインストール方法はここでは省略します)

使い方

AppDelegate.swift
import netfox

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

  NFX.sharedInstance().start()

}

これだけでOKです。あとはアプリケーションを起動して「シェイク」ジェスチャをすると、以下のようなビューが表示されます

写真 2015-12-22 22 21 39.png

他にも、

写真 2015-12-22 22 22 04.png 写真 2015-12-22 22 22 15.png

など、README.mdoverviewをみたほうがわかりやすいかもしれませんが、

  • 通信リスト
  • 通信詳細(Info, Request, Response
  • 設定
  • アプリ自体の情報
  • 通信の総スタッツ

といった内容を確認することができます

シェイクなんて使いたくない

「シェイクジェスチャでデバッグビューが表示されるってなんかイケてないなぁ」という人もいるかと思います。
そこは一応カスタマイズできて、

NFX.sharedInstance().start()
NFX.sharedInstance().setGesture(.custom)

としておいて、あとは任意のタイミングで以下の処理を実行すると、デバッグビューが表示されます

NFX.sharedInstance().show()

ただしデバッグビューからの戻り方がわからず(なにか使い方勘違いしているのかも?)、質問しているところです

まだつくられて日の浅いライブラリなので今後どのようになっていくかは気になるところですが、

のissueで次バージョンの要望など受け付けているようです。気になった方は是非!

参考

http://qiita.com/usagimaru/items/d340e87da98e62f99b60
http://wonderpla.net/blog/engineer/Wireshark_iPhone/
http://qiita.com/susieyy/items/5419068c52f4f4e21b8b

最後に

よいクリスマスを :santa:

32
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?