その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

バッテリー消費量の計測方法など、iOSのデバッグに関するドキュメント

NSZombieEnabledをYESにするとか、そういう開発ノウハウの情報ソースはどこにあるんだろうと不思議だったのですが、iOS Dev Centerのドキュメントを漁っていて発見しました。


iOS Debugging Magic


たとえばNSZombieEnabledなどの話は、Table 10 Foundation environment variables にあります。


以下、使えそうだと思った情報。

UIView の階層構造を書き出してくれるメソッド

UIViewはdescription メソッド以外に recursiveDescription というメソッドを備えていて、これを使うとビューの階層構造を書き出してくれるようです。

<UIView: 0x6a107c0; frame = (0 20; 320 460); autoresize = W+H; layer = […]
Current language: auto; currently objective-c
(gdb) po [[self view] recursiveDescription]
<UIView: 0x6a107c0; frame = (0 20; 320 460); autoresize = W+H; layer = […]
   | <UIRoundedRectButton: 0x6a103e0; frame = (124 196; 72 37); opaque = NO; […]
   |    | <UIButtonLabel: 0x6a117b0; frame = (19 8; 34 21); text = 'Test'; […]

つい先週僕が作ったものはまさに車輪の再発明だったようです。。

パケット追跡

パケット追跡方法について書かれたQAへのリンク。

The most critical tool for debugging network code is the packet trace. Technical Q&A QA1176, 'Getting a Packet Trace' discusses how to get a packet trace on Mac OS X.

バッテリー消費量の計測方法

"Energy Diagnostics"というInstrumentsの機能でバッテリー使用量に関する計測が可能なようです。

The Energy Diagnostics instrument is a great way to understand how your application affects battery life. See Instruments User Guide for details.


そんなのあったっけ?と思ってInstruments立ち上げてみたらありました・・・



今度試してみます。

アプリのフレームレートを計測する

Instrumentsの"Core Animation"という機能でフレームレートを計測できるようです。

The Core Animation instrument lets you measure your application's frame rate and see various types of drawing. See Instruments User Guide for details.


そんなのあったっけ?と思ってInstruments立ち上(略)



InstrumentsはLeaks以外の機能も何ができるのかぐらいは調べてみようと思います。

その他

  • Push Notifications
  • Assembly-Level Objective-C Debugging
    • アセンブリレベルでのデバッグでの注意点。こういう方法もあるんだ、と頭の片隅に置いとく程度に。。

日本語版

最終更新日は2004-12-02でmac版ですが日本語版もあります。
http://developer.apple.com/jp/technotes/tn2124.html
情報ソース