愛と勇気と缶ビール

ふしぎとぼくらはなにをしたらよいか

2012年度 個人的iOS開発系・Android開発系のお勧め書籍まとめ

今年は、iOS開発/Android開発の両方について曲がりなりにも学んだ年だったので、他の人の参考のために僕が読んで有益だった書籍をまとめます。厳選しているので数は少ないです。
全体として、ある程度のプログラミング経験がある人向けです。各プラットフォームに関してXcode, Eclipseなどの開発環境を整えて、サンプルプログラムを自分で動かすことくらいは簡単に出来るレベルを想定しています。

iOS開発

詳解 Objective-C 2.0 第3版

いきなりアプリ開発系の本を読んでもいいのですが、何でも基礎の部分(この場合はObjective-C)を理解せずに突き進むのは結果として時間の無駄になることが多いので、まずはObjective-Cに関する勉強をこの本でガツッとやってしまうといいのではないでしょうか。

Objective-Cは、誤解を受けることが多い言語です。メソッド呼び出しなどの構文の見た目がよくあるオブジェクト指向言語と異なるため、なんとなく「Objective-Cキモいわー。ありえないわー」と思っている方も多いと思います。僕もそうでした。

だいたいどんな言語でもそうですが、勉強する前にイメージとして持っていたキモさは勉強した後では払拭されることが多いです。そりゃお前がキモさに慣れてしまっただけだろうと思われる方もいるかも知れませんが、大抵の言語は何かしらキモいのでまあそんなもんだと思って諦めましょう。ある程度真面目に時間を使ってこの本に取り組んでみれば、キモいかどうかは別にしてObjective-Cが色々おもしろい側面を持った言語であることが分かると思います。具体的な根拠はありませんが、Rubyが好きな人はObjective-Cも好きになれるんじゃないかと思っています。

現状、個人で開発するならiOS4系は無視した上でiOS5系から使えるARCを利用してメモリ管理を簡略化するとよいと思います。この本では、その辺の比較的新しい言語事情(ARCが言語事情かは置いといて)もフォローされています。よりObjective-Cを楽しみたい方はDynamic Objective-Cも読んでみるといいと思います。最短距離を行きたいならば不必要かと思います。

iPhoneプログラミングUIKit詳解リファレンス

実際のアプリ開発ではUIKitというiOSGUIフレームワークに乗っかって開発することになるのですが、この本ではUIKitを使ってものを作る上で必要な基礎知識が広範にフォローされています。StoryBoardなどのGUIビルダーでUI作るぜ!という人には正直不要かもしれません。僕はこれ以上Appleに振り回されたくないため、今のところGUIビルダーは使わずUIKitで書いています。この辺は意見の分かれる所かとは思いますが、UIKitで作る人はリファレンスを兼ねて持っておいて損はない本です。

iPhoneアプリ設計の極意 ―思わずタップしたくなるアプリのデザイン

僕がいまさらお勧めするまでもない本ですが、アプリを何で作るか(iOS/Android/HTML5)に関わらず考え方のヒントになる本です。スマートフォン開発のプロデューサー等でこれをちゃんと読んでいないような奴はモグリだ、と言っても過言ではありません。しばきましょう。

Android開発

本格アプリを作ろう! Androidプログラミングレシピ

開発環境も整って、サンプルアプリも動かして、さあ自分の作りたいものを作ろう、と思った時に「でも、あれを実現するには具体的にどうしたらいいんだ?」と手が止まってしまう人は多いかと思います。これは、その段階から実際に動くものを作り出すまでの架け橋となる本です。一般にこういったレシピ本(あるいはQ&A形式の本)は内容が薄いことが多いですが、この本は例外です。特に、第1章のAndroidアプリケーションのアーキテクチャおよびActivity, Service等のライフサイクルについての概説は秀逸です。

Android Layout Cookbook アプリの価値を高める開発テクニック

AndroidiOSに比べるとデフォルトのUIパーツがぶっきらぼうなので(ICS以降はもそっと違うかもしれませんが)、そのままにしているとダサダサなアプリになってしまいがちです。この本にはAndroidにおける見た目の制御についてかなり詳細かつ正確な記述があるため、ネットで得た曖昧な情報に四苦八苦するくらいならこれを初めに買ってしまった方がよいです。著者のあんざいゆきさんはAndroid界ではかなり有名な方で、ICS以降のレイアウトに関しても本を出されています。(Android UI Cookbook for 4.0 ICS(Ice Cream Sandwich)アプリ開発術)こちらは僕はまだ持っていませんが、そのうち買う予定です。

プログラミングAndroid

レビューにもあるように訳にいささか難がありますが、Oreillyらしくガチな内容で良い本です。特に6.3の「Androidの並行処理」にあるAsyncTask, スレッド拘束, LooperとUIスレッドの関連性についての記述は有益です。AndroidにおけるMVC(と書くのが微妙ならデータソースとActivityの疎結合化)について、他の本にはないような展望が示されているのも素敵な所です。

その他

Androidについては、「インプレス・ジャパン以外の本は基本買わなくてよし!」と断言してしまいたいほどに、インプレス・ジャパンにいい本が揃っています。Android Security  安全なアプリケーションを作成するためにもそうですね。この本は敢えてオススメには挙げませんでしたが、企業で仕事としてAndroid開発に関わっている方には必携の書籍だと思います。

総括

あらゆる他の情報と同じくして、僕が紹介したこれらの本に載っている情報の断片はインターネットを駆使して手に入れることも可能です。が、総合的なコストを鑑みるとお金を出してまとめて知識を仕入れてしまった方が安上がりです。

人ごとに合う合わないがあるためここに載せた全ての本があらゆる人にとって最良だとは思いませんが、技術書というのはおおむね高額なので、出来るだけ無駄な本を買わずに前に進む際の一助になれば幸いです。