書籍: 2009年11月アーカイブ

 長らく表示ばかり表示されて予約受付状態だった本が刊行されました。執筆の修正段階が長かったらしく,結果的に米国amazon.com上の原稿を読んだ人々の評価が高いようです。

 広範なトピックスについてそこそこバランスよく,ある程度の深さも確保しつつといった感じになっています。中級から上の人々にとっては各トピックスでもう一踏み込みして欲しいといった物足りなさがあるかも知れませんが,全体をまとめて学びたい場合には,よい出来上がりの本です。

 CoreData等に関する記述も一通り扱われており,SDK3.0開発の新しい定本の候補ではないでしょうか。


 ネットワークとGPSに焦点を当て,Wordpresなどを組み合わせながらARっぽいアプリの開発を例にしながら解説しています。そちら方面の情報が欲しいというときには良さそうですよ。

Apressの開発本

user-pic
   

 例のApressが味をしめたのか,開発本をずらっとラインアップしてますよね。ちょっと並べてみます。

予約受付中
 
 

発売済み
 
     


 発売されています。まだ手に入れてないです。いま開発中のものは,あんまり音の活躍の場が無いので,次回以降ですね。関心の有る方は是非!

 ちなみに洋書ではこんなものが出るみたい...
 

 

 Mac Cocoaプログラミングの定番書である「ヒレガス本」。原著は第3版まで出ていますが,日本語翻訳本は長らく初版のままでした。そしてとうとう待望の翻訳最新版が登場しました。

 訳者の村上さんのご努力によって,原著にはないSnowLeopardへの対応や日本語環境への対応,最新状況に合わせた修正など施された上で発刊です。本当にお疲れさまでした。そしておめでとうございます。

 iPhoneによって注目を集めているCocoaプログラミングですが,iPhoneアプリ開発の激戦に疲れた皆様は是非Macプログラミングで心を癒してください。今回の「緑のヒレガス本」も定番という地位は変わりありませんね。

 Core Dataを使ってアプリを開発しています。Macソフトを開発したときにかじったことがあるので,今回も3.0でCore Dataが採用されたことをいいことに(2.0ごめんなさい)データ管理はCore Dataに頼ってしまおうという魂胆。

 『iPhone SDK3プログラミング大全』や『サンプルプログラムでマスターするiPhone SDK』の解説を記憶呼び戻しに使いながら,通称「HMDTの赤本」(『Happy Macintosh Developing Time -Third Edition-』)のCore Dataページでおさらいをしていたのですが,やはりどうしてもスッキリしない。

 いや,実際アプリ自体は正しく動いているので,それでいいんだろうとは思うのだけど,どうしても言質が取りたいという気持ちがあって,公式ドキュメントもひっくり返してみたものの,こちらも状況証拠ばかり...。

--

 スッキリしていなかったのは,Core Dataのエンティティに基づく管理オブジェクト同士のリレーションを結びつける方法。リレーション関係にするつもりの管理オブジェクトを別個に生成したら,この関連をどうすれば登録できるのかについて,真正面から書いてくれているものがほとんど無かったのです。

 確かに公式ドキュメント「Core Data Programming Guide」の77-78頁には,「anEmployee.department = newDepartment;」というコードと後は全自動ですとかなんとか説明があります。あとはプログラミングやってりゃ分かるでしょ...的な空気が充満していて,「まぁ,そりゃそうだけど...」と流されてプログラミングはしているわけですが,う〜ん。

 日本語の解説書はほとんど一つのエンティティモデルの例だけを扱っていて,最も詳しいはずの赤本もMac開発だとIB中心の記述に留まってしまうため,モヤッと感は消えないままなのでした。

--

 最近ようやく「Core Data」の本が登場した模様。さっそく手に入れて読んでみました。副題に「Mac OS X」としか書いていませんが,実際にはiPhoneに関する記述も1章分載っています。

 さて,丸ごと一冊Core Dataの本ですから,私をスッキリさせてくれるのかどうか,気になりますが,その結果は。
 
 わ〜い!スッキリ!スッキリ!


 To-OneリレーションとTo-Manyリレーションに関する解説で,ハッキリと例示してくれました。To-Oneの場合では,

 NSManagedObject *foo = ...;
 NSManagedObject *wow = ...;
 [foo setValue:wow forKey:@"..."];

 ってな感じ(名前は改変してます)でインスタンスをセットすればいいのだと示してくれてました。To-Manyの場合はNSSet絡みでさらに納得のいく解説(それは本をお買いください...)。

 これで自信を持ってコーディングできます。この本,CoreDataの入門としては良さそうなので,誰か翻訳するといいのに...。