sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

「iPhone/iPad アプリケーション開発の教科書」後編

プロの力を身につける iPhone/iPadアプリケーション開発の教科書

プロの力を身につける iPhone/iPadアプリケーション開発の教科書

前回の続き

4章 応用編

なんとなく「プロの力を身につける」というのは、この章とAppendixのことなのかなって気もします。

iOSアプリの構造

まずはアプリの構造というか、アプリを構成する主要なクラスの関係がクラス図っぽいので解説されています。こーゆーまとめ的なものはあまり見た記憶がないのでとても好印象です。

マルチスレッドプログラミング

NSOperationQueueとNSOperationを使った並列実行のやり方の解説。

マルチスレッドはGCDだけでいいよねと思っている人なので、NSOperationQueueにはあまり興味はなかったのですが、先日のCocoa勉強会関西でも話にも出ましたし、真面目に目を通してみました。結局、KVOだってownershipに気をつけりゃなんとかなるんじゃないの?ということで、あまり心は動かず終い。そのうち天啓が下り、はっと目が覚めるのかもしれません。 あと、マルチスレッドなら「iOS4プログラミングブック」と「Concurrency Programming Guide」だけで充分わかりやすく書かれていると思うので、ここでOperationだけ解説するより他の章にページを割いて貰った方が…という思いも強かったり。

ユニットテスト入門

SenTestingKit.frameworkを利用したUnitTestの解説。

  • STAssertTrue - 第一引数に判定用のBOOL(YESなら成功)、第二引数にテスト失敗時のdescription
  • STAssertNotNil - 第一引数にid(nilでなければ成功)、第二引数に失敗時のdescription
  • STAssertEquals - 第一引数と第二引数に比較する値(等しければ成功)、第三引数に失敗時のdescription
  • STAssertEqualObjects - 第一引数と第二引数に比較するオブジェクト(等しければ成功)、第三引数に失敗時のdescription
  • STFail - 強制的にテスト失敗させる。第一引数にdescription

非同期処理のテストを行う時は、テスト終了判定用のフラグをテストクラスに追加し、tearDownにスレッドの待ち合わせ処理を追加するとよい

もっと詳しく知りたい人は、公式ドキュメントの"XCode Unit Testing Guide"を読めとのこと。

具体的なユニットテストのやり方が示されていて、テストの書き方がよくわからないという人でも、ひとつやってみようかというきっかけになると思うので、こういった解説はとても役に立つと思います。最近グリーンバンド(TDDの誓いみたいなもんらしいです)もしてなくて、テストも手抜きしがちなのだけれど、ちゃんと書かないとなと思い直しました。

In-App Purchaseを使ったアイテム課金プログラミング

幸か不幸か、課金系の案件をうけたことがなく、個人的にも特に知りたい事もないので詳しくは見ていませんが、異常系の処理や、テストの仕方等ひととおり解説されているみたいだし、有用なセクションな気がします。

Appendix

メモリ管理詳細

メモリ管理で注意することがあげられている。ARC環境下ではそれほど意識することはないけれど、immutableとmutableなオブジェクトのcopyの動作等、知っていると地雷を踏まずに済む事がちらほら書かれている印象。

InstrumentsのLeaksや、Clang Static Analyzerの紹介が、ほんの申し訳程度にされているが、検索の手がかり程度のもの。

アドレス帳アプリ

この本で解説に使われたアプリの全ソースの解説。コメントでページ番号が書いてあるため、 ソースを読んでいる最中にわからなくなったらすぐに該当の箇所に戻れてとても親切。


かなりはしょって読みましたが、経験者向けの入門書としてはとても良い本だと思います。

私が最初に読んだiOSの本は↓で、写経しながら全て読み終えるのにほぼ1ヶ月かかりました。書いてあることは確かに役に立つことが多く、今でもひっぱりだして参考にしているのですが、先にこの本がでていたら、もっと楽にiOSアプリの開発を始められたんじゃないかと思います。

初めてのiOSプログラミング 第2版

初めてのiOSプログラミング 第2版

さて、iOSにも、技術書を読むのにも飽きてきましたし、そろそろコードも書かないと ということで、ぼちぼちAndroidの世界に戻る事にします。