ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド

読了
ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド
ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド
百瀬 健太 古渡 晋也 プロモバイル株式会社

前回読んだサンプルプログラムから学ぶ iPhone SDK プログラミングガイドとはまた別の項目についてサンプルアプリを通して学習できるのだが、こちらの方がiOS特有の国際化の方法やOpenGLの説明がなかった分楽だったかもしれない。

だからと言ってこの手の本全部に言えることなのだが、プログラミング初心者にとって本書はやはりきびしいものであることは否定できない。

いきなりObjective-Cの説明をされてもやっぱりわからないと思うのです。
言語自体も他と比べて難しいと思うし、iOS特有のフレームワークも理解しないといけないし、InterfaceBuilderの使い方もわからないといけない。

詳解 Objective-C 2.0」から入るというのも手としてはありだが、分厚すぎて、読了する前に興味が燃え尽きてしまう可能性がある。

果たしてプログラム初心者にInterfaceBuilderを使わずにかつ楽しく飽きることなくObjective-C学べる教材はないのだろうか?

ちなみに本書を読んで、一歩進んだカメラアプリを実装したい場合は、
iPhoneデジカメプログラミング
を読むといいと思います。マイクアプリを通して音楽(or 音声)アプリに興味を持った場合は、
iPhone Core Audioプログラミング
にさらに詳しいことが書かれているのできっと勉強になると思います。

iPhoneデジカメプログラミング

読了

iPhoneデジカメプログラミング
細谷 日出海
ソフトバンククリエイティブ
売り上げランキング: 813,427


カメラアプリを作るときは、まず入門として、UIImagePickerControllerで実装するが、例えばInstagramのように矩形で撮影をしたり、ARを実現したり、エフェクタをかけたい場合は、もっと深い部分のフレームワークを使う必要があり、本書でその部分を深くえぐっている
見事な一冊。

カメラアプリの特性上、外部ライブラリが多発するため、Objective-Cをまったく知らずにいきなりこの本はやっぱり厳しいので、まったく初の場合は詳解 Objective-C 2.0iPhoneプログラミングUIKit詳解リファレンスを一読することをお勧めします。

本書では、iOS4.x以降を対象にしているので、JSONを使う際には、外部ライブラリを使ってパースしているが、iOS5以降を対象する場合は、NSJSONSerializationクラスが使えるので、もう少し簡単に書くことができたりします。

FlickrAPIを使ったカメラアプリのところで、multipart/form-dataを使ったバイナリデータの送信方法を知ることができるが、それ以前に、Flickrって、今使われているの?と素朴な疑問。

ちょうどカメラを使ったアプリを作っていたのでこのタイミングで本書にめぐりあえてよかった。

サンプルプログラムから学ぶ iPhone SDK プログラミングガイド

読了

サンプルプログラムから学ぶ iPhone SDK プログラミングガイド
酒井 裕司
インプレス
売り上げランキング: 1,849,461


amazonでは酷評されていたが、サンプルコードがほぼなくて、XcodeとInterface Builderの説明に重点が置かれていたので、むしろよかったかも。
まーサンプルプログラムから学ぶという趣旨からはだいぶずれてしまったが。

少なくとも、

#pragma mark

は、貴重な資料となった。

ただ、対象OSが、iOS2.2時代だし、Xcodeのバージョンもいまや3ではなく4になってしまったので、今から新しくiOSのアプリを作る方には、まったく向かないと思われる。

本書を読んで気になったのが、どうしてフレームワークに、OpenGL ESを採用したのかということ。
Quartzの方が導入が楽な気がするのだが。

iOSのアプリを作りたくて、本書を一番最初に手に取った方は大変だろうなーっと思いながら最後まで読んだ次第です。

iOSデバッグ&最適化技法for iPad/iPhone

そっこーで読了

iOSデバッグ&最適化技法for iPad/iPhone
國居貴浩
秀和システム
売り上げランキング: 951,942


本書はアプリを作る方法というよりも、それをサポートする「デバッグ」や「Instruments」などに焦点を合わせた内容で、その点に注目すると他のHow to本よりも読み手を選んでしまう本と言える。

しかし、驚いたことに、ページを捲ってみると、まるで初心者に合わせたようiPhoneアプリの作り方も平衡して書かれており、C、Objective-Cを少しでも齧っていない人には難しい内容だと感じずにはいられなかった。

さらに、実機でテストを行う方法についても書かれていたが、ぶちゃっけこの内容だと正直つらいものがあり、もう少し順序立てて説明した方がいいと思った。

誤字もひどいものがあった、いたるところで、「leak」ではなく、「leark」と書かれており、最初は、気にならなかったが、徐々にイライラしてきた。

プログラムの記述に関してもひどいものがあり、例えば、
p70

intmain(intargc,char* argv[]){

}

と型と関数名を繋げて、さらに、型と引数名を繋げて書いてしまっているケースがあった。
(ぱっと今読み返して2カ所発見。)

これだと、intmain関数と解釈してしまうC言語初心者がいるのではないのだろうか?

IT書籍を多数発行している、あの秀和システムからの書籍だっただけに、この点でもショック。

最大のショックは、Xcode4ベースで内容が進んじゃったこと。

現在、Xcode4はベータ版で提供されており、ほとんどの開発者の方は、3.XXを使っているはず。
この理由としては、Xcodeに付属しているiOSもベータなので、安定版である3.XXで使った方がが安心してアプリを作ることができるからだ。

そんな中、本書を読んでよかったと思ったのは、やはり最大の売りである「Instruments」の使い方とNSAutoReleasePoolクラスが把握できたことかな。

これで今後の開発においてメモリ管理のデバッグがやりやすくなったかと思うと、1890円だした価値はあったのかなーっと。

JavaScriptクイックリファレンス第五版

JavaScriptクイックリファレンス
David Flanagan
オライリージャパン
売り上げランキング: 915,609

気合いで読了

本書は、JavaScript 第5版のリファレンス部分なのですが、目次を読めば一目瞭然、ボリュームがものすごくて大変充実していました。

が、が、が。。。

目次が若干、わかりにくい。

JavaScript ポケットリファレンス改訂第4版のように目的別に一覧で掲載されている方がよりリファレンスでよかったのかなーっと。

次の第6版で改善されることを望む。

入門Subversion Windows/Linux対応

入門Subversion Windows/Linux対応
上平 哲
秀和システム
売り上げランキング: 372,905

これ、すご

SVNの勉強をしようかなーっと思って、本書を手に取ったのですが、とても感動してしまった。

なぜならば、本書の対象者は、プログラマーだけではなく、エクセルやワードなど、一般的に使われるファイルもバージョン管理できるようにしているというところ。

おかげで、本書を手放すことができなくなってしまった。
かつ、本書のおかげで何度も救われた。

それを根拠に、本書は、あますところなく、図をふんだんにしりばめられているので、迷うことなく前進することができる。

是非、多くの方に手にとって欲しい一冊であります。

ColdFusion MX プロフェッショナルガイド

縦続きにこちらも読了

ColdFusion MX プロフェッショナルガイド
奥川 博司 須賀 正明
毎日コミュニケーションズ
売り上げランキング: 1,389,667


この本、スゴ。
今まで、読んだ中で一番、内容の恋(失礼、濃い)内容でした。

本書の優れているところは、サンプルソースを紹介しているだけではなくて、administrator画面上の操作方法について、細かく説明しているところ。

他にも、FLASHのコラボや、セキュリティ、Java、JSP、サーブレットの設定など、盛りだくさん。
おそらく他の書籍には決定的にない部分。

なので、本書は、初心者向きではなく、管理者向け、中級者以上の人が対象です。
(本書でも言及されていましたが。)

もし、初めてという場合は、ColdFusion入門-Webアプリケーションサーバの新標準にあたってほしいと思います。

唯一というか、こればかりはしょうがないのですが、もうすでに、CFは9もむかえ、ますます無駄な機能が増えていく一方なので、そこも解説した本が今後でてほしいなーっと思う今日このごろ。

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
Douglas Crockford
オライリージャパン
売り上げランキング: 133,710

さきほど、読了しました。

前回、JavaScript 第5版を紹介したのですが、それよりも、もっと実用的で、実践的な内容になっているのですが、確実に、初心者向きではありません。

無名関数かJavscriptでのオブジェクト指向の実現方法を少しでもかじったことがないと厳しいかもしれません。

本書は、さすが、JSONの提唱者だけあって、鉄道ダイアグラムによるJavaScriptの表現が多発しています。
(特にいい悪いとかではありませんが、他の本と比較して特徴的だったので。)

ブログ等などでもちょくちょく話題になるカレー化やapplyメソッドを使ったオブジェクトの継承などより一歩突っ込んだ内容を勉強することができます。さらに素晴らしいのは、良いパーツだけではなく、付録として、「悪いパーツ」、「ひどいパーツ」なども取り上げているところがグッド。

しかし、弾さんもおっしゃっていますが、

確かに本書では、上の2つを悪いパーツとして紹介しているんですね。

特に、「new」に関しては、Javaエンジニアや、PHPエンジニアにとって、newでインスタンス変数を宣言をした方が直感的にわかる上に、一般的なオブジェクト指向の慣例からすれば、決して悪くはないじゃないのかなーと。

皆さんは、どうでしょうか?

さらに、本書のカリー化の部分で、下記のような記述が登場します。

//著作権の都合上、本書を一部変更して書いています。
Array.prototype.slice.apply(arguments)

なぜ、第二引き数がないのに、わざわざ、sliceメソッドを実行しているのかに悩んだ方は、
javascript – Array.prototype.slice.apply(arguments) // 引数一発配列化
を参考にしてください。
きっと理由がわかると思いますよ。

読んでいた当初、ものすごく悩みに悩んで3日くらい先に進むことができなかったのですが、弾さんの記事を読んで、すっきりしました。

やはり、本を読んでわからなくなったところは、調べるにつきますね。
と同時に、オライリー本としては、ちょっと異論が残る内容でした。

これ辞書だよ、辞書、JavaScript 第5版

一度、JavaScriptを体系的に勉強したいと思いいい機会だったので、こちらの本を読みました。

JavaScript 第5版
JavaScript 第5版

posted with amazlet at 19.01.28
David Flanagan
オライリー・ジャパン
売り上げランキング: 443,337


オライリーのサイトを見るとはじめにや索引を含めて704ページを超える大作なのだが、中身も濃厚でした。
体系的にJavaScriptを学びたいならば、本書一冊あれば十分なんじゃーないのかなーっと思いました。

というわけで、

に関しては禿同で、タイトル通りまさにDefinitive Guideと同時に、本書は、初めてJavaScriptを触る人には正直きつい内容と思いました。

さらに本書を読んで思ったのは、IEが特殊仕様のために他のブラウザとは違う対応を取らざるを得ず、そのため、余分にページを割かなくてはいけないことが多々ありました。
仕様が統一されてれば、もっと、ページ数少なくてすんだんじゃーないのかなーっと思ってしまった。
(別にこの件に関しては著者の責任では決してありません。)

また、2007年に出版されたので、当然、まだGoogle chromeも存在していないので、IEと(firefox|NetScape)に焦点が置かれていて、webkitの話がなかったのでちょっと物足りなさを感じてしまった。
と同時に、今後は、html version 5も普及してくると思うので、新タグをJavaScriptからどうイジるのかの解説も今後の版改定時に追加してほしいなーっと。

今度の第6版は、すでに洋書でamazonでは予約が始まっています。

JavaScript: The Definitive Guide: Activate Your Web Pages (Definitive Guides)
David Flanagan
O’Reilly Media
売り上げランキング: 19,052

最後に読んでいて素朴に思った疑問
BtoC向けのサイトでJava Appletってまだ使われているのか???

は、別冊のJavaScriptクイックリファレンス第5版に収録されています。

JavaScriptクイックリファレンス
David Flanagan
オライリージャパン
売り上げランキング: 915,609

iPhone Core Audioプログラミング

超大作を読了

iPhone Core Audioプログラミング
永野 哲久
ソフトバンククリエイティブ
売り上げランキング: 349,098


CoreAudioを専用に扱ったサンプルアプリの紹介なのですが、内容が濃すぎて正直な話、すべて消化しきれたとはいいきれない。

実は、本書を手に取ったのは、iPhoneの開発というよりも、むしろ、iPadの音楽用アプリケーションを作りたいと考え購入しました。
twitterで何回も言っていますが、今後、音楽業界(特に楽器業界)は、iPad用のアプリケーションを作ってくるのは、間違いなく、実際、KORGに先を越されてしまった。
(非常に悔しい。。。orz)

誤解してほしくないので、きちんと書きますが、すべての楽器が、iPadに置き換えられるというわけではないので、あしからず。
おもに、DTMの揺り戻しが発生すると考えています。

で、話は横にされましたが、本書は、iPhoneアプリケーションの初心者にはまったくむかない本である。
しかも、アプリケーションをXcodeで作っただけではなく、リリースした人が対象と思われる。
というのもiPad音楽ライブラリーにアクセスする方法は、エミュレータだとできず、実機でないと動作しないので、実機にアプリを転送した経験がないと厳しいかなと。
(これは、本書のせいではなく、フレームワークはこのような仕様になっているため、仕方がない。)

また、InterfaceBuilderも使ったことがないと本書は厳しいんじゃないかなと。
サンプルアプリでは、説明抜きでIBoutletが普通に登場するので。

さらに、高校数学、具体的に、sinθ、cosθの計算、一次関数それもy切片を使う関数、大学数学も少し必要で、フーリエ変換、三角関数の逆関数も登場するので、理系である必要もあります。

これだけでも、かなり対象者は限られているのにもかかわらず、さらに、フレームワークの都合上、ポインタが多発するので、C言語にも慣れていないと本書を読むことができない。

こう書いていくと、一体誰が買うんだー?という疑問がわき起こるが、今、iPhoneアプリの開発ラッシュを考えると需要はあると思います。

CoreAudioの完全解説版が本書登場以前にはなかったので、本書がバイブル的な存在になるのは、明らか。
かなり細かく網羅されているので、リファレンスと併用して使っていきたい。

しかし、唯一残念だったのは、サンプルコードをビルドしてもエラーが発生してしまい、どうしても動作確認をすることができなかった。
具体的には、最終章のFMDrumをXcodeのver 3.2.2で、iPhone OS 3.0で普通にコンパイルを行ったが、どうしてもエラーをはずすことができなかった。(他にも結構、コンパイルエラーがあった。)
本書の冒頭には、iPhone OS 3.0で動作確認できたとあったので、じゃー、コンパイルできるだろーっと思っていたのだが。

ただでさえ、本書のサンプルコードには省略されている部分が多く、前後関係を把握したい意味で、サンプルコードを実行しながら、確認していきたいと思っていたのに、こうもいきなりコンパイルエラーをかまされると、すごく萎えてくる。

なので、本書は、ページ数がものすごく多くなるが、サンプルコードの全コードの掲載をしてほしいなーという要望が一つありました。
今度、出版されるJavaScript第6版並になるかもしれない。
(amazonでみると、1000ページを超えている!!)

JavaScript: The Definitive Guide: Activate Your Web Pages (Definitive Guides)
David Flanagan
O’Reilly Media
売り上げランキング: 22,726

後、本書、執筆時点で、最新のXcodeで動作確認をしてほしかった。。。

こうして書いてみると、今後、新しいCoreAudioだけに特化し、またサンプルコードのコンパイルのエラーが起きないような本が登場した場合、バイブルの地位を奪われるのだろうなーっと思ってしまった。

まだ、上記のような問題点があったため、すべてのサンプルコードを理解できていないため、今後、何回か再度、読んでいきたいと思いました。

これをきっかけに、CoreAudioをマスターしていきたいし、そのスタートとして最適に一冊である。