その後のその後

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

入門本から得たTipsなど

一番最初に買った入門本を「もうそろそろ必要ないかな」と思い処分する際に、
改めて読むと知らないことが沢山あって色々とツイートしたのが昨年5月。


それを改めて読んでみるとまだ知らない(忘れている)ことが
多々あったので以下に抜粋。

  • uiwebviewで表示するhtmlソースにはmetaタグのviewportで横幅を320に指定するとよい
  • UIViewAnimationTransitionの第三引数であるcacheをNOにすると、アニメーション実行中にビューの中身が書き換わったときにリアルタイムに反映される。YESにしておくと処理負荷が軽いのでトランジションは滑らかに。
  • UIResponderのtouchesXXXメソッドの第二引数、UIEventのallTouchesメソッドを呼ぶと、他のビューを含めた全タッチ情報を取得できる。
  • touch down repeatは繰り返しタッチの「2回目以降」で発生、touch drag exit/enterはドラッグ操作でビューの「枠を横切ったとき」に発生。touch drag inside/outsideはビューの内/外をドラッグ中に「指を動かす度」に発生
  • アプリ起動時のnibファイル読み込み処理シーケンス。
    1. nib内の全インスタンスに対してallocとinit
    2. IBで設定した属性の反映。アウトレットやアクションの接続もここ。
    3. 全インスタンスに対してawakeFromNibメソッドの呼び出し。
  • なので、initにはクラス自身の初期化を、awakeFromNibにはアウトレットに接続されているインスタンスの初期化を記述するとよい。
  • afconvertはUNIXのサウンドフォーマット変換コマンド
  • AAC/MP3/AppleLosslessはiphoneのハードがデコードするので再生時のCPU負荷が少ないが、複数の音声を再生できない。なのでBGMなど長いものはファイルサイズを考慮し圧縮フォーマットを、効果音的なものはCAF等を使うとよい。
  • NSDateは2001.1.1からの経過秒数で日時を扱うクラス、NSDateCompornentsはカレンダー上の値で日時を扱うクラス、NSCalenderは両者をカレンダーのルール(とタイムゾーン)に従って相互変換するクラス。なるほどすっきりした。
  • ビルド時にxibからnibが作られるので、アプリ実行時にはnibを扱うことになる。基本的にはnibとxibは同じものと思って差し支えない。


基礎からのiOS SDK
鶴薗 賢吾 松浦 健一郎 司 ゆき
ソフトバンククリエイティブ
売り上げランキング: 306,162