さて,いよいよiPhone関連本の紹介です。
木下さんの最初の「iPhoneプログラミング大全」が登場して以降,翻訳本や日本の著者によるものなど,あっという間に数が増えてきました。
ただ,それぞれの本には特徴があり,扱っている範囲や得意不得意など様々。iPhone OS 3.0が登場した前後に出版されたものが多いため,多くの本が3.0未対応です。
もちろん,プログラミングの基本知識は2.0も3.0も同じなのですが,たとえばテーブルビューに関連するところで多少の変更が必要な部分があったりしますので,本の通り打ち込んで学習する派の皆さんは3.0対応の本を待った方がよいです。
現時点で,評判が良いのは『はじめてのiPhoneプログラミング』のようです。かなり丁寧に,iPhoneプログラミング全般を解説しています。本腰入れて学びたい人は,選んでもよいでしょう。ただ,丁寧すぎて回りくどい部分もあります。
もう少し高度なところも射程に入れたいという人は『iPhoneアプリケーションプログラミング』が良いようです。ネットから情報をとってきて表示するプログラムなども紹介されています。
大変キレイでまとまりがよく,その名の通り教科書的な本が『iPhone SDKの教科書』です。独学するには,本自体の内容がすっきり過ぎるのかも知れませんが,誰かから学ぶ,その教科書・参考書としては最適じゃないかと思います。
そういう意味では『基礎からのiPhone SDK』の方は,そのような用途にも使えるし,独学にも使えるといった感じの位置づけかなと思います。ちょっと主観的ですが...。
ぞくぞく新しい本も登場しています。
==
『ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド』
百瀬 健太 (著), 古渡 晋也 (著), プロモバイル株式会社 (著)
【2.0:?/3.0:○】【サンプルコード】
様々な先行アプリを参考にしながら,swimmingゲーム,地図アプリ,RSSリーダーといった実例アプリのサンプルをもとに実装方法を学ぶ形式です。
本紙に掲載されているサンプルコードは一部だけで,ダウンロードサイトから全部をとってくる必要があります。そのためソートコード全体と向き合ってという形ではありません。
開発のための登録作業から開発環境,Objective-Cの解説と簡単なアプリケーションの作成など,レイアウトデザインも工夫して重たくないように構成しています。
ただ,実例アプリをもとに解説する部分は,こういったアプリが出来るんだという期待感を抱かせることには成功していますが,プログラムの重要箇所や美味しい部分をピックアップして解説するため,初学者には荷が重いかも知れません。
扱っている範囲は,
開発者登録過程
Xcode/Interface Builder
グラフィカルなMyHelloWorld
Objective-C
Foundation/UIKitフレームワーク/MVC
ゲームアプリ(加速度センサー,タッチイベント,データ保存,アニメーション)
地図アプリ(GPS,Google Mapとの連携)
カメラアプリ
RSSリーダー(XML解析)
マイク使用アプリ(録音,サウンド)
といった感じです。
『ユメ見るiPhone』ほどには突き抜けられなかった,でもクリエイティブな感じを出したいというところで,プログラミング本を手がける翔泳社らしい落とし所に落ちている本だと思います。
込み入ったアプリを手がけ始めたいが,他のアプリはどんな風に開発しているのかという裏側を知りたくなったときには良い本ではないでしょうか。
-----
『iPhone SDK 3 プログラミング大全 実践プログラミング』
木下 誠
【2.0:?/3.0:○/3.1:×】
日本における元祖iPhoneプログラミング解説本の新版がいよいよ登場です。今回もiPhone SDK3.0によって追加(正式公開)されたAPIを早速内容に取り込んで解説してくれています。
本書は,誤解を恐れずいえばリファレンスブックのようなものです。確かにObjective-Cの基礎講座部分もありますし,開発を始めるための解説もついていますが,やはり本書の真骨頂は膨大なAPIリソースから適切にピックアップして整理し,解説している点にあります。
そのため初学者が始める本としてはハードルが高い本です。他の本でiPhoneプログラミングを始めてからしばらくして,奥深くへと分け入るときのガイドブックとして手に取るのがよいと思われます。
今回の新版で注目すべきは,やはり「CoreData」の解説でしょう。さらに有料アプリをつくる人には「Store Kit」の紹介も興味あるところです。この他にも扱っている範囲は多岐にわたります。
-----
『Beginning iPhone 3 Development: Exploring the iPhone SDK』
Dave Mark (著), Jeff LaMarche (著)
【2.0:?/3.0:○】【ソースコード】
これは『はじめてのiPhoneプログラミング』という邦訳本がある原著のiPhone OS 3.0対応版になる本です。いち早く対応したという感じのようですが,初版の内容を見直した上で,部分的には新しい機能の解説も加わりました(CoreDataとか)。
テーブルビューやナビゲーションコントローラーの解説部分などで,3.0対応に書き換えたり,よりスマートな方法が判明したのか,ソースが改良されたりしています。ただし,原著の方も慌てて編集発行したのか,私が購入した刷りでは本文の解説部分のコードが古いまんまになっていたりします。やっぱり原著の方もその文量を持て余しているのかも知れませんね。
このシリーズは,さらに別の角度から解説する別冊が登場予定のようです。出来ればこの新版とともに他のものも日本語訳が出てくるといいなと思います。
-----
『iPhone SDK アプリケーション開発ガイド』
Jonathan Zdziarski (著), 近藤 誠 (訳) (監修), 武舎 広幸 (訳), 武舎 るみ (訳)
【2.0:○/3.0:○/3.1:×】【翻訳者によるサポートサイト】
コンピュータ関連出版社として有名なオライリー社の本です。原著者は,あの『iPhone Open Application Development』の著者です。そういう意味でも技術的な質の高さは折り紙付きといえるかも知れません。
-----
『iPhoneアプリケーションプログラミング』
新居 雅行
【2.0:○/3.0:△(オンライン版は対応)/3.1:?】【サポートサイト】
古くからMac関連のプログラミング本を執筆されてきており,技術力にも定評のある新居さんのiPhone開発本です。個人的な印象としては,いろんな意味で「渋い」iPhoneプログラミング本だと思います。良い意味で渋いのですよ。
本書もiPhoneプラットフォームとC言語及びObjective-C言語に関する解説が含まれています。Cocoaプログラミングにおけ
るメモリ管理や基本概念に関して曖昧になりやすい部分を詳しく解説しようとしています。
Cocoaプログラミングの道に迷うのは,ほとんどの場合Interface Builderの内部が理解できておらず,グラフィカルよろしくあちこちをつないで混乱してしまうことに原因があったりします。IBで手軽にプログラムが組めると評されるCocoaプログラミングですが,事実はそんなに甘くありません。
硬派なプログラミング本は「IBでお手軽〜」を避けますが,本書はその辺をあえて真正面から受けて立ち,リファレンスも充実させながら濃口で解説していきます。どちらかといえば初学者よりも中級者の知識確認のためといった感じです。
後半には,ナビゲーションを使ったプログラミングの解説が始まり,この辺から密度の高いサンプルで,コードや概念を解説していきます。その他,アニメーション,多言語化,OpenGL ESといった事項を扱います。
あまりキャッチーな機能やAPIを扱っていないという点でも「渋い」本ですが,ある意味,基礎固めや復習をする際の資料として用いるのならば,噛みごたえがあるといえるでしょう。
オンライン版の購入は,AppStoreにある有料の登録アプリを購入したり,本についているクーポーンを送るなど,少々手続きが面倒なのですが,新しい情報にも対応してくれている点は評価できると思います。
-----
『iPhoneアプリで週末起業』
山崎 潤一郎 (著)
この本は,プログラミング関連の本ではありません。著者の山崎さんが,自分でiPhoneアプリを開発して配信した経験をもとに,iPhoneアプリ市場がどういうものであるのか,またその市場でスタートするにはどうしたらよいのかを手ほどきしてくれている本です。
他の人がどのようにアプリを開発したり,配信するにあたってどんなことをしているのか,気になりますよね。そういう要望に応えてくれる一冊といえます。
ただし,この手のビジネス書は新鮮さが命というところがあり,変化の激しい市場の情報はすぐに古くなってしまうところが玉に瑕。そろそろこの本も書いてある内容が古くなってきています。
たとえば,「第4章 アプリ準備から公開までの「勘どころ」を押さえる」という章で,有料アプリを公開するために必要な手続きが紹介されています。実は,iPhoneアプリを販売するということは,米国で商売するということになり,米国の税務関係の手続きが必要になってくるのです。
この本には,米国での税務関係の手続きについてあれこれ紹介していますが,実は,2009年9月現在で,ここに紹介されている米国の役所とのやり取りは不要になっています。Apple側がパソコンの画面上だけで処理するように手続きを変更したようなのです。
というわけで,いくらか情報が古くなっており,誤解をして,先に米国の手続きをしてしまう人も出てくるかも知れません。いま,それは必要ありませんのでご注意ください。
それでも,iPhoneアプリが登場してきた事情などについて知りたいという人は,いくらかその辺を知る材料になると思います。初心者向けに書くために若干の解釈ずらしもありますが,これからiPhoneアプリに挑戦する気持ちを高めるにはよい本です。
ちなみに,Appleと取引するために自分の銀行口座を知らせる際,「Zengin Code」(全銀コード)の入力を求められますが,このとき,入力の形式は「銀行コード(ハイフン)支店コード」の組み合わせにする必要があります。
正しい全銀コード(銀行コード)だけ入れても受け付けてくれない場合があったら,そのようにしてください。
-----
『はじめてのiPhoneプログラミング』
デイヴ・マーク (著), ジェフ・ラマーチ (著), マーク・ダルリンプル (監修)
鮎川 不二雄 (訳)
【2.0:○/3.0:×/3.1:×】【ダウンロード/正誤情報】
原著はオレンジ(?!)の断面が印象的な開発本シリーズの一冊。その待望の日本語訳がこの本です。分厚さもそうですが,何より文章の量が半端じゃない。ソースコードを順に眺めるように解説していくため,ある意味で丁寧ですが,ある意味ではまどろっこしい本です。
原著がシリーズの一冊ということもあり,Objective-Cなどの部分は他に任せた形になっています。そのため初心者が言語から学ぶためよりも,すでに他でプログラミングの経験があるがiPhoneは初めてという人向けです。
それでも,本の通りに進めながら成果を確認していくという構成のため,歯を食いしばってついていこうとすれば,それなりにいろいろ得られる本だと思います。この本と他の本を組み合わせるのが良いようです。
扱っている範囲は
Xcode / Interface BuilderといったiPhone単独で出来る範囲(v2.0段階)の事柄を扱っています。原著では応用編も別冊で出てくる感じです。
ユーザーインターフェイス
オートローテーション
マルチビュー
タブ/ピッカー
テーブルビュー/ナビゲーションビュー
設定/データ保存
画像描画
タッチ処理
加速度センサー
カメラ
ローカライゼーション
さて,いろんな意味で充実したテキストですが,まず日本語版はiPhone OS 2.0段階のものなので,新しいiPhone OS 3.0向けの開発環境では,紙面の通り入力すると,エラー表示が出る場合があります。原著は上に紹介する通り,すでに3.0向けの新版が出ましたので,そちらを参考にするとよいです。サンプルソースコードは無料公開されています。
それにしても図版よりも文章が多いため,分からなくて疲れるよりも,読み疲れるという感じもあります。(訳者の方の苦労をお察しします。翻訳疲れで文意が曖昧になってる部分もあったりして,本当に翻訳って難しい...。)ポイントはどこなのかを解説してくれる人が欲しいといった気分になる本です。でも基本的には良い本です。原著の新版も翻訳されるといいなと思います。
-----
『基礎からのiPhone SDK』
鶴薗 賢吾
【2.0:○/3.0:×/3.1:×】【サンプルデータ】
Cocoaプログラミング関連のサイト「Cocoaはやっぱり!」と(ここではご紹介しそびれましたが)それを書籍化した『Cocoaはやっぱり!』の著者である鶴園さんによるiPhoneプログラミングの本です。
名前の通り,ご紹介しているiPhoneプログラミング本の中では最も入門書にふさわしい内容になっています。鶴園さんの著書は,決して慌てずじっくりと内容が進むという独自のテンポを持っているのですが,本書でもその特徴は堅持されています。
特にメモリ管理(インスタンスの生成)の部分は,Cocoaプログラミングに取り組む人たちにとって一つの難関といわれますが,プログラムが動作する流れを丁寧に図で表現し,メモリ解放のタイミングなどがイメージでわかるように工夫をされています。
初学者がどんな手順で操作をすればよいのか,迷わないように手順番号を明記しているのも本書の特徴です。他の関連書籍のように派手な課題アプリはないため,全体の印象も地味ですが,しっかり取り組む一冊としては勧められます。
ただし,本書は本当にじっくりと学ぶように構成されているため,最後の最後まで学習すべき事柄が満載です。分厚さでNo.1の『はじめてのiPhoneプログラミング』も疲れますが,こちらも持久力を求められる本かも知れません。
-----
『ユメみるiPhone ―クリエイターのためのiPhone SDKプログラミング』
徳井 直生 (著), Mehdi Hercberg (画)
【2.0:○/3.0:×/3.1:×】【サポートサイト】
この本が書店に置かれていたときは,本当にビックリしました。その奇抜なレイアウトセンスもそうですが,「え,もうこんな本が出てしまうの?」というタイミングに驚きました。
メディア系クリエータの人たちがiPhoneというデバイスに関心を持っており,早くからこのデバイスを使った表現や作品を生み出したいと動いていたことも,よく知られていました。iPhoneのようなセンサーがいっぱい付いている機械は,Wiiリモコンみたいに現実世界の動きを電子の情報に変えることで,楽しいことがいろいろ出来るからです。
そんな明るいクリエータ系の人たちのノリから生み出されたのがこの本なのかなと思います。他の書籍がほとんどモノクロである中で,この本はほぼフルカラーですから,眺めているだけでも楽しいです。
扱っている範囲は
Hello Worldアプリを通してXcode / InterfaceBuilderといった感じで,いかにも「つくりたい!」という気持ちに寄り添ってます。
サウンド関連
マルチタッチ
アニメーション
加速度センサー
ネットワーク
GPS
iPhoneアプリ開発クリエータの人たちの座談会やインタビューも収録され,読み物としても楽しむことが出来ます。しかし,iPhoneプログラミングを学習する本としては,ぶっ飛びすぎて使えません...。ネットワーク関連ではiPhoneの公式ドキュメントにない技も披露するなど,極めて実践的です。
iPhoneアプリの作り方は一通り分かったけれど,さて,何をつくればいいのかアイデアが浮かばないという人が,刺激を受けるために読むのが一番いい本だと思います。みんなでセッションしたら「なんかできちゃった」みたいな本です。クリエータの皆さんのポートフォリオですね,これは。
-----
『iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩』
赤松 正行
【2.0:○/3.0:○/3.1:×】【サポートサイト】
赤松さんはメディア作家であり,大学の先生で,早くからiPhoneプログラミングに取り掛かり作品を出されています。その方の著書が出たという意味で大変興味深いです。書店で見たとき,表紙が隠れるほどの書籍帯にはビックリしました。
前半では,開発環境に関して手際よくポイントを押さえながら序盤で解説し,むしろプログラミングの考え方をiPhoneで開発する場合に則して(つまりCocoaプログラミングについて)解説するようにしています。その後も例題アプリの設計部分を大事にしながら実際のプログラミングについて説明が展開します。最後に「iPhoneグラフィック解説」というコラムがついているのはメディア作家さんらしい配慮です。
扱っている範囲は
Xcode / Interface Builderといった感じです。全般的に(書籍自身も課題アプリも)デザイン性が高く印象がよいです。
Objective-C/オブジェクト指向プログラミング
アニメーション
加速度センサー
タッチ処理
多言語対応
カメラ/画像処理
私がiPhoneアプリ開発の授業を受け持つとしたら,この本を教科書に選ぶと思います。書名に込めたねらいは達成されていると感じました。ただ,それは授業で口頭の解説も合わせることが前提で,独学で学ぶ場合には,副読本やその他の参考書が必要だと思います。その点でも「教科書」という名前の通りの本です。
-----
『サンプルプログラムから学ぶ iPhone SDK プログラミングガイド』
酒井 裕司
【2.0:○/3.0:×/3.1:×】【正誤とダウンロード】
私個人の印象では,特段の予告もなく発売後の評判もあまり聞こえてこない,「ひょっこり」と出版され「ひっそり」と書店に並んだ感じのする本です。
iPhoneとiPod touchのハードに関する仕様を詳細に記録してあったり,XcodeやInterface Builderをたくさんのスクリーンショットで解説したり,アプリの国際化といった章を設けるなど,それなりに工夫をしている点に特徴があります。文章が長くならないように気をつけているという編集方針も伝わってきます。
Obj-CやMVCなどへの言及もありますが,じっくり解説しているとは言えず,本の通りに操作して「なんかよくわからないけど,そんなもんか」と思いながら進める感じです。書名に「サンプルプログラムから」とありますが,数多いわけではなく,後半でゲームプログラムを例題に解説するようになっています。
扱っている範囲は
iPhone仕様といったところ。基本的にはIBで料理したところにコードを加えるという範疇となります。
Xcode
InterfaceBuilder (IB)
Objective-C / MVC
タッチイベント処理
加速度センサー
国際化(多言語対応)
初心者というよりも,少し学習を進めてきた人がその他の題材で確認や練習をしたいときに向いていると思います。可もなく不可もなくといったところです。
-----
『iPhone デベロッパーズ クックブック』
Erica Sadun (著), 株式会社クイープ (訳)
【2.0:○/3.0:×/3.1:×】【書籍情報】
原著はiPhone SDK (2.0)が登場する前後にいち早く登場し,iPhoneでプログラミングしたいという人たちに好評を博したようです。その邦訳が出るということで,日本でも「いよいよ!」って言う感じが漂っていました。東京のジュンク堂で先行販売と銘打ってずらっと並んでいたことが印象深いです。
クックブックということで,様々なアプリ例題が用意されており,その開発の仕方が開発されているという感じです。整理された内容ですが,入門者学習用というわけではないので,初心者の皆さんがこの本から始めるのは難しいと思います。逆に少し慣れてきて,情報整理とサンプルを知りたいという頃にはよい情報を提供してくれると思います。
ちにみに,英語書籍の世界では,iPhone SDKが登場する以前のものとして『iPhone Open Application Development』という書籍もありました。初代iPhoneを解析した成果をまとめたもので,アップル社が正式に開発を許していない時期のものとなります。Interface Builderが正式な開発環境に加わった今日とかなり条件が異なりますが,新しいプラットフォームに挑戦してやろうという空気を感じたいときは覗いてみてもいいかも知れません。
コメント共に情報がまとめてあって、分かりやすかったです。冒頭の2冊以外は全部持っているのですが(買いすぎですね)、オススメも同じような感じです。
色々と読んでみたのですが、自分にとっては実際に手を動かし、その書いたコードがどういう意味かを本で学ぶ、という流れが一番理解が進みました。ですので駄目な本の特徴は、
・サンプルコードが全部載っていない(残りはWebからダウンロード形式)
・コードの説明が少ない
・1つのサンプルで複数の機能を説明しようとしている(→説明が浅くなる)
といった感じでしたね(どれかは特定しませんが)。ただしこれは「入門書」としての視点であって、レファレンスとしてはクラスの継承図が書いてあったり、主要なメソッドが表にまとめてあったりする本が有益でした。
私もiPhoneアプリ開発にオススメの本だけをピックアップしたページを作っていますので、良かったら見てみてください(Amazonインスタントストアで恐縮ですが・・・)。
http://astore.amazon.co.jp/ktkt02-22
KatokichiSoftさん,コメントありがとうございます。
本当は一覧表にして各本の内容精査した方が良いと思いつつ,なかなか心構えをつくれずにいたので(私,心構えが整わないと取り組めない質なのです…),著者の皆さんに申し訳ないままに大雑把に記録した次第です。
私も最近の数冊を除けば,買って手元に置いてしまってます。少し気持ちは似てるかも知れません。ははは。
駄目な本の特徴もありがとうございました。読み手としては,お金を出して学ぼうとしてますから,その気持ちに応えてくれる本であることが大事ですよね。
特にIB上で部品を組み合わせて出来上がりという事始め部分とコードの荒波を突き進んでいかねばならない部分との垣根をどう越えるかが大きな課題だと思います。ご指摘は,そこを突いたものだと思います。
KatokichiSoftさんのオススメ本紹介のページの方が断然キレイですね。amazonのストアって,こんなにキレイにつくれるようになってたんだ。心構え出来たら挑戦してみます!ありがとうございました。