Mac: 2008年2月アーカイブ

 Cocoaプログラミングには長い歴史がありますが,その歴史を支えてきたツールというものがあります。それがProject BuilderとInterface Builderという開発ツールです。そして現在,Project BuilderはXcodeと名前を変えて依然歴史を支えています。

 XcodeとInterface Builder(以下 IB)は,Windowsの世界でいうところのVisual Studioにようなものです。とにかく,ソフトウェアの開発に必要な機能などが統合されたものなのです。C言語を使う人,Javaを使う人,Rubyを使う人,そしてもちろんObjective-Cを使う人でも,MacOS Xでプログラム開発するのであればXcodeを使うことになります。こういうものを開発環境といいます。

 昔はプログラミング言語毎に異なるツールやコンパイラが用意されて,開発環境も別々だったのですが,いまやXcodeとかVisual Studioといった開発環境のツールにまとめられたというわけです。


 さて,前置き長くなりましたが,本書はそんなXcodeの紹介本です。Xcodeで何ができるのかを紹介していると考えた方がよいでしょう。ゆえに残念ながら「プログラミングの入門書ではありません」。


 プログラミングの入門的なことはやって見せてくれているのですが,そもそもXcodeの紹介なので,こういう風にXcodeでプログラミングしていくんですよという雰囲気を伝えるので終わってしまいます。プログラミングそのものを学習したくても,それに関する情報は,ほとんどありません。

 またXcode自体にしても,なにゆえそのようなものがあるのかといった解説はされません。とりあえずこういう機能がありますよ的に使って見せてくれるだけなのです。


 対象読者は,Xcodeという開発ツールとはどんな感じのものかを知りたい人向けです。プログラミングが初めての人にとっては,「へぇ〜そういうツールでこんな感じでつくっていくんだ,実際,簡単なのかな難しいのかな」程度でしょう。プログラミングに長けている人には,「Xcodeってこんな顔つきのツールなんだ。ああ,そうやって選択するのね」的な感想を持たせる程度かも知れません。


 Xcodeの紹介本で,解説書ではありません。そのため,Xcodeの機能を知るためのリファレンスには利用できません。また知らなかった機能を知って得するということも,ほとんどないと思います。

 そしてご承知のようにXcodeは10.5でめでたく3.0になりました。本書はもともとXcode1.0の紹介をした初版があり,Xcode2.0が登場して刊行されたものでした。その理屈からいけば,Xcode3.0が登場した今,新しい版が準備されているのではないかと思われますが,同じような調子なら,わざわざ購入するほどのものではないと思います。


 ただし,iPhone OSとiPhone SDKが正式リリース予定されている現在,Xcodeも3.1へとアップし,iPhoneとiPod Touch上で動くCocoa Touchソフトの開発にも使用することが見えてきました。
 そうなると歴史を支えてきたXcodeが,さらに新しい歴史を紡いでいくことになり。注目度は断然高まるというものです。Cocoaプログラミングの世界に多くの新しい仲間や興味を持つ人たちが集まってくることになります。そういう意味で,Xcodeの紹介本にも,今までとは違う意味での必要性が出てくるかも知れません。


 Cocoaプログラミングの中核を担うXcodeとIBは,CocoaプログラミングがNextコンピュータからMac OS X,そしてiPhoneへと広がっていく中で,様々なプログラミング言語に対応しつつもObjective-Cを軸にしっかりとその開発基盤を支えています。Intel-MacとMacOS X 10.5によってMacが元気になり,iPhoneとiPod Touchというデバイスに対する世間の関心が高まっている今日,XcodeとIBをあらためて紹介し直してみることも大事なことなのだと思います。

 そういう意味で,次の版に期待しましょう。

 

入門Cocoa

user-pic
   

 この本は米アップル社のエンジニアが書いた本です。OSX初期の頃のものですので,やはり図版が古いのですが,他の本と同じで基本理念はずっと変わらないので,内容は今でも通用します。

 ただし,入門書として勧めるべきかどうかは悩みます。原書は"Learning Cocoa with Objective-C"という書名です。Cocoaに関する基本的な解説を心掛けているのは確かですが,少々堅苦しいのです。さらに概念的な説明の後は,Objective-Cを使ったサンプルプログラムの演習をしながら解説していくスタイルです。読者のニーズに合わないと少しきついかなと思います。

 似たような金額でヒレガス本という定番があります。そちらも古さという点では本書と五十歩百歩。そう考えた上で,購入後の有用性を考えると,本書よりはヒレガス本をお薦めするのが良心のようにも思えます。


 対象読者は,Cocoaにおけるオブジェクト指向に関する考え方を学びたいという人と,Objective-Cを使ったサンプルを真似してつくってみたいという人です。そのためにはやはりC言語へのある程度の理解があったほうがよいと思います。しかし,C言語への理解がある程度ある人にとって,本書が十分満足できるものなのかどうか,またサンプルプログラムの課題が魅力的かどうかは,実際に本人が中身を読んでみて判断する他ないと思います。


 本書はMacOS Xが登場する際,Cocoaという新しいプログラミング環境についての情報が少なかった時期に提供されたドキュメントです。Cocoaに関する情報が乏しかったときには,貴重な情報源だったわけですが,今日ではアップル社から提供される情報も充実し,より好ましい基本情報が増えました。そのような状況では,本書が担っていた期待や役目も減ってしまったというのが正直なところだと思います。

 本書の姉妹書には『入門Carbon』があります。こちらも同じような状況の中でCarbonプログラミング環境の情報源として提供されたものです。出版社の息の長いサポートで,どちらも書店で見かけることがありますが,ある意味で古典ではあるけれども,それは一つの時代の痕跡として見るのが妥当といった感じです。


 書名の通り,これは「Objective-C」というプログラミング言語についての本です。この言語はMacのCocoaプログラミングで使われることが主なので,必然的にMac OS Xプログラミングの本になりますが,基本的に言語解説の本です。

 そして,この本には「C」言語の解説にあたる部分はありません。よって,本当にObjective-Cに関しての本です。さらにいえば,Cocoaに関する解説も言語に関わるであろう部分のところまでで,やっぱりObjective-Cに関しての本です。

 Objective-Cの表面上の姿は,非常にシンプルです。ところがそれを実現するための基礎となる考え方や,それにまつわる様々な細かい規則部分を積み重ねていくと,一冊の本になってしまいます。本書はそうした解説の部分と,メソッドを紹介するリファレンス的な部分の両方を持ちます。Objective-Cという言語で作業を進めていく中で,この言語と真正面から向き合ったとき,必要な情報を得られる強い味方の本だと思います。

 この本をすべて消化しないとObjective-C,ひいてはCocoaプログラミングができないかというと,そうではありません。この本は,どちらかといえば冠婚葬祭事典と同じように,何かあったときに引けたら役立つという風に考えてよいと思います。あれば強い味方,なくても,まあナントカ人に聞いて済ますこともできるかも知れません。


 対象となる読者は,C言語を習得済みである人です。さらに簡単なObjective-Cの知識や簡単なCocoaプログラムをすでに他の書物で勉強して組んでみたことがあるという人であれば,本書を読むのに適しているといえます。
 残念ながら,本書を最初に読んでC言語部分を含んだObjective-Cの全体を学ぼうとすることはできません。C言語は別途参考書を利用するなどして学習しておく必要があります。オブジェクト指向に関する知識も事前にあれば心強いです。


 繰り返しの確認になりますが,本書はObjective-Cに関しての本です。Cocoaプログラミングも扱ってはいますが,Interface Builderを使ったグラフィカルなプログラミングなどは解説していません。それゆえに,10.5環境になってもObjective-Cの範囲内であれば,本書の内容は立派に通用します。


 ちなみに本書は,Objective-C (1.0)を対象として書かれています。10.5とともに登場したObjective-C 2.0の内容は含まれていません。しかしあくまで,2.0は1.0を改良したものであり,1.0によるプログラミングは今後も可能です。また,10.5環境がもっと普及すれば,2.0も当たり前のように使われるようになってくると思われます。
 2.0についてはアップルから以下のようなドキュメントが提供されていますので,参考にするとよいでしょう。

Objective-C 2.0プログラミング言語
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/

 

 

 Mac OS Xのプログラミング本を精力的に執筆している木下誠さんの主著ともいえる2冊。同名のWebサイトを運営されており,そこでノウハウを蓄積されていたものを経て上梓されたのが本書です。

 本書はファーストエディション(10.2に対応されていた白本)から出発し,次に10.3の新機能に対応したセカンドエディション(黒本)でそれが置き換えられました。さらに10.4が登場して加わった新機能の部分のみ追加して取り上げたサードエディション(赤本)が刊行されたという風になっています。

 というわけで,この本は現在,セカンドとサード(黒と赤)のエディションによって構成されたMacプログラミング本ということになります。とりあえず基本的な部分ではセカンド(黒本)に取組むことになると思います。サード(赤本)はPDFやXML,CoreDataなどといった拡張的な部分に関して扱っているので,必要に応じて入手することになると思います。

 同じ木下さんによる入門書『たのしいCocoaプログラミング』とは,まったくベクトルの違う本です。(宣伝文句がどう言おうと)入門書ではありませんので,必要な情報を簡潔に盛り込むことに専念していて,解説は適度にシンプルです。リファレンス的に使われることを意図しているともいえるかも知れません。「それが何であるか」という説明調ではなく,「これこれがあります」という提示調です。サンプルプログラムも掲載されているのは部分的なので,慣れないとちんぷんかんぷんかも知れません。


 対象の読者は,MacやC言語について知っていて,プログラミングやオブジェクト指向などに関する記述が理解できる程度の前提知識を有している人になります。ヒレガス本も入門者には高いハードルですが,この本はなお入門者にとってきついハードルです。飛ぼうとしない方が身のためです。

 しかし,中級もしくはCocoaプログラミングの要領がわかり始めた人にとっては,大変便利に使える書籍です。余計な説明が無く,シンプルに機能やメソッドを紹介しているので,リファレンス的に使うのに都合がよいのです。また,サード(赤本)のように新機能を取り上げているので,その情報が得たいとか学びたいという人には,貴重な情報源です。


 品揃えのよい書店であれば,この本が書棚に並ぶことが多いです。大変立派な紙を使っているので,セカンド(黒本)は大変厚く重たいのが特徴で,サード(赤本)もそこそこの厚さといえます。その反省からか別途上梓した入門書は大変軽くつくられました。いずれにしても,本書は生半可な状態で手を出せるほどお気楽Happyな本ではないということだけでも事前に了解しておくことは有用だと思います。


 なお,本書も入門書『はじめてのCocoaプログラミング』も木下さんの著作ですが,それゆえサンプルのチョイスや説明などは共通性もあります。同じく木下さんが講師を担当されているアップルのCocoaセミナーの最新資料は,そのような共通性で学ぶことができそうです。是非参考にしてください。

Cocoaセミナー資料
http://developer.apple.com/jp/documentation/japanese.html#CocoaSeminar1

本書サポートサイト
2nd(黒本)
http://hmdt.jp/books/hmdtSecond/index.html
3rd(赤本)
http://hmdt.jp/books/hmdtThird/index.html
おまけ
1st(白本)
http://homepage.mac.com/mkino2/books/hmdt.html
 

 日本語のCocoaプログラミング本を精力的に執筆しているのは木下誠さんです。そうした活動から,現在ではアップルが主催するプログラミングセミナーの講師もされています。そしてセミナー講師の経験を踏まえて上梓されたのが,この『たのしいCocoaプログラミング』という入門書です。

 Cocoaプログラミング入門書としては,素晴らしい出来だと思います。すべてを網羅していないのは当然ですが,Cocoaプログラミングを取組み始めるにあたって気になる事柄を上手に盛り込んでいます。独特な文体を採用して気楽さを演出しているのも,何気ない情報を盛り込む工夫の一つともいえます。逆にあっさりと解説されてしまって通り過ぎてたということもありますが,おおむね工夫は成功していると思います。C言語に関する基本解説も盛り込み,復習組にも役立ちます。

 ただし,読者には学習に対する柔軟さを求められる部分もあります。リファレンス的要素も適度に織り交ぜられているため,具体的な使い方を読者自身で想像しなくてはなりません。サンプルであるRSSリーダーは,大変興味をそそられる例題であるにもかかわらず,RSS0.9や2.0などのRSS規格やその関係に対する理解がないと,複雑に見えてしまう結果を招き得ます。

 とはいえ,本に対するフィーリングの問題さえ無かったり,避けられるのであれば,入門書として読み解く価値のある情報の詰まった本であると断言できます。


 本書の対象は,プログラミングが気になっていて始めたいという人です。Macに対する知識や理解は期待したいところですが,それはおぼろげとしてもプログラミングに是非挑戦したいんだという意欲のある方なら本書は役に立つと思います。
 前提知識があればあるだけ,本書を読むのも楽になりますし,詰められた情報への理解も深まります。しかし,とりあえず本の通りに操作して,サンプルプログラムを製作することから学ぶこともできます。


 さて,この本は入門書として十分な価値があることは,上に紹介したとおりですが,残念なお知らせもあります。本書の対象としている環境が,10.4上のXcode2.4もしくは2.5までだということです。

 10.5とXcode3.0以降については,操作の説明がそのままでは通用しなくなっています。また図版面でも,画面デザインの変更で雰囲気が変わっているため,この本を手にして10.5上で演習するのは,かなりの読み替えを必要とする面倒があります。
 10.5対応の本書新版が登場する可能性やタイミングはわかりませんが,非常に魅力的な入門書なだけに,その可能性を期待したいと思います。私自身も復習やリファレンスに重宝しています。


 冒頭ご紹介したように,本書は木下さんのセミナー講師経験から執筆されたわけですが,そのセミナーの資料や内容がアップル社によって提供されています。そして,2008年に入り,10.5とXcode3.0対応でセミナーを開催されたので,そこで公開されている資料も10.5対応となりました。『たのしいCocoaプログラミング』は10.4対応ですが,10.5対応を期待されている皆さんは,一足先にアップルのセミナー資料で勉強されるのが一番だと思います。

Cocoaセミナー資料
http://developer.apple.com/jp/documentation/japanese.html#CocoaSeminar1

本書サポートサイト
http://hmdt.jp/books/enjoyCocoa/index.html
 

 


 Mac OS Xのプログラミングを本腰で取組むつもりがあるなら,この本を避けるのは得策ではないし,たぶん無理だと思います。Cocoaプログラミング書籍としては定番であり,基本ともいえます。

 ただし,翻訳のもととなったのは原著の第1版。すでに原著は第3版の上梓が予定されており,おそらく10.5対応が施されるのではないかなと思います。そのため,図版は10.2時代のもので,Xcodeの前の名前であるProject Builderという言葉が使われていたりします。また新しい情報(たとえばObjective-C2.0等)は含まれていません。

 それでは,本書が古くて役に立たないのかというと,そんなことはありません。解説されている内容は現在でも通用します。このように基本的な知識が長く通用するのもCocoaプログラミングの地盤の堅さを証明しています。


 本書の対象読者は,ある程度プログラミングとは何をすることなのかを知っている人です。Macについても,それなりにどんなコンピュータであるかを知っていた方がよいです(もっともこれはMacでプログラミングをする上ではどんなレベルの人にも知っておいて欲しいことですが...)。C言語に関する知識があるなら,その他諸々について知識があると期待できそうですから,まずはC言語の世界に馴染んでおくことが,この辺への近道です。


 出版社の地道な努力で,この本は意外にもあちこちで置かれています。そして最近,増刷されたようで,新しい状態のものが売られています。値は張りますが,定番本ですので,本腰で取組むなら入手しましょう。

 また原著の方は第2版が売られています。10.3とXcodeに対応した形です。第3版は近々刊行予定となっています。