その後のその後

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

第3回 #potatotips で勉強になったことのまとめ

だいぶ乗り遅れましたが、『第3回 potatotips』の資料を一通り拝見しました。

どのTipsも勉強になったのですが、とくにメモっておきたいと思ったことをメモっておきます。

Provisioning Profileファイルを活用してみる!Tips

  • Provisioning Profileは、暗号化されたプロパティリスト
  • application-identifierとか、ProvisionedDevicesといったプロパティが入ってる
  • コマンドラインで復号できる
$security cms -D -i [PROVISIONING_PROFILE]

iOS 7 なMessage Appの作り方

「もにょもにょ動く」というのが最初よくわからなかったのですが、iOS7のメッセージアプリを改めて見てみると、確かにもにょもにょしてました。


で、UIDynamicAnimator がもともと UICollectionView のレイアウトをどうのこうのできるようにつくられていて、それを使って実現できるようです。


詳細な実装方法については、参考ページとして挙げられている、 "UICollectionView + UIKit Dynamics" が詳しくてわかりやすそうです。


# これ、知らずに実装するとなると、いろいろ自前でやることになって大変そうなので、知っておいてよかったです。

やはりお前らのiOS7対応は間違っている

「NavigationBarへself.viewがもぐりこむ」問題、ネット上にはいろんな玉石混淆の話が上がりすぎてて、いつしか情報を追わなくなってしまいました。


一方このスライドは諸々整理して解説されているので、本質的解決になりそう。今度この問題にあたったらこれを見ることにします。


死んだオブジェクトの生まれ故郷を探す

  • "Malloc Stack" と "Enable Zombie Objects" にチェック *1
    • -> malloc/freeのログが残るようになる
  • ログを見るコマンド
$ malloc_history [PID]
  • Instruments の "Zombies" 使えばコマンドたたかなくても同じことができる

Secrets of launch arguments

別記事で後日勉強させていただきます。


*1:これ読んでふと気付いたけど、最近あまりZombieオブジェクトとか意識することがなくなった(もうずっとEnable Zombie Objectsにチェック入れてない)。メモリ管理が楽になったからか、デバッグの勘が以前より働くようになったからか。。今度EXC_BAD_ACCESS出たら自分がどういう風にデバッグしてるのか意識してみる。