■木下誠 「たのしいCocoaプログラミング」
iPhoneのSDKが一般公開された頃から、自分でアプリ作ってみたいと思ってMac miniまで買いそろえたりしていたものの、昔から「C」と名のつく言語(というかポインタ?)が苦手だし、オブジェクト指向も概念はわかるもののいまいちとっつきにくくて、長らく放置していました。
が、MacBook Airを買ったり、ちょっと仕事絡みで相談を受けたりを機にようやく重い腰をあげてみたのがこの年末年始。でもやっぱりObjective-CもXcodeも敷居が高くてTwitterでプログラマの友人達に助言を請うたりしつつ、1月は本当に頭を悩ませていました。本を何冊も買っては、説明がスッキリしなかったりサンプルのビルドが通らなかったりで投げ出したりの繰り返し。
そんな中で急速にObjective-CやXcodeに関する理解が進んだ感があったのが、木下誠氏の「たのしいCocoaプログラミング」でした。この本は正確にはiOS開発について触れた書籍ではなく、MacOSXに関するものです。ただObjective-CやXcodeに関しては共通事項もおおいということで、随分前にTiger版を買ってあったのを手にとってパラパラと読み返してみたところ、その前に何冊か読んでいてイマイチすっきりしてなかったところが急激に納得いくようになりました。Xcode 2.xと現行の3.xでは随分作法もかわっているということなので改訂されたLeopard版を速攻で注文。
以前友人向けにVB.NETで作った簡単なWindowsアプリをOSXにさっくり移植できてしまいました。最初からこれ一冊で足りたかどうかは定かではありませんが、断片的だった知識をこの本が再構成してくれた感は高いです。特に他の書籍ではXcodeやInterface Builder上での操作が手順でしか示されていなかったのに対し、この本ではその意味についても触れてくれていたのが大きいような気がします。.hファイルと.mファイルがペアで1つのクラスを表している、といった極基本的な事も、この本でようやく気付いたというレベル(他の本は.hにこう書け、.mにこう書け、ほら動いたでしょ、というノリ)。Objective-Cについても、例えばimport文で宣言ファイルを指定するのに、<>で括るのと””で括る意味の違いまで触れていたのはこの本が初めてでした。そういうレベルの入門者には、(iOS開発を目的とした場合やや遠回りに思えるかも知れませんが)一読の価値があると思います。
■所友太「iPhoneプログラミング UIKit詳細リファレンス」
続けて重宝したのがこちら。「たのしい~」でObjective-CとXcodeの雰囲気がつかめたので、あとはiOS特有の部分を差分的に読めればいいやってことで。iOS 3.x世代の解説本ですが、入門レベルの要素は網羅されているので支障はない気がします。まぁ、もしかするとiOS4.xなら同じことをより簡単にできるようになったりはしてるかも知れませんが。
この本を参考にして、相談を受けた極簡単なアプリのデモ版を完成させることができました。データ保存もネット通信もしないごくごくプリミティブなアプリですが、何冊も投げてきたσ(^^)としては、格段の進歩という気がしています。詳しい人にソースを見せると、とてもオブジェクト指向的とは言えないような作りかも知れませんが、それは今までのVB.NETで作ってきたツールも同じだしw。
「あとは本でもネットでも公式リファレンスでも見ながら猿真似していけば(σ(^^)個人が作る規模のアプリなら)なんとかなるんじゃないか?」という気がVB並にしてきたのは(錯覚だったとしても)大きい。あとはそのドキュメントがVBに比べるとやはり少ないのが難点ですね。
■てことで逆引き本2冊
というワケで、やりたいことがサクっと調べられるよう、いわゆる逆引き本をObjective-CとiOSで1冊ずつ買って見ました。これらはまだ活用には至ってないので、(「原則として自分で使ってみたものをレビューする」という本ブログの主旨には反しますが)紹介まで。
1冊目はObjective-Cという言語に関するもの。「文字列を文字列で分割する」とかそういうレベルの調べもの用。おそらく現時点で日本語で読める逆引き本としては唯一なんじゃないかと。先日立ち寄った書店でも2010年のプログラミング関連書籍ランキングで3位になってました。
もう1冊はiOS特化の方で、「アプリ内から写真撮影をするには」とかいったAPIレベルのノウハウが数多く収録されているようです。世代的にもiOS4.x対応なので心強いです。
当面この後マスターしたいのはテーブルビュー(リスト画面)とCoreData(データの保存関係)ですね(フルグラフィックなアプリを作ることはないだろうし)。それを習得できれば簡単な実用アプリは書けるようになる気がします。なんか手頃なお題を物色中。