さて、さっそく開発を始めましょう(ワクワクしますね!)。と言っても、まずはCocoaに関する情報収集を行い、開発に最低限必要な技術を習得しておきます。まず最初に調べるべきは、米国と日本のApple社デベロッパーサイトでしょう。Cocoaに関するすべての情報(リソース)には、以下のページを入り口としてアクセスすることが可能です。
・AppleデベロッパーサイトCocoa関連入り口
http://developer.apple.com/cocoa/
初心者がこのページで最初にチェックするのは「Fundamentals」と「API Reference」の2カ所だと思います。そのうちCocoa API(クラスとメソッド)の状況を大まかに把握するために、まずはAPI Referenceの方を参照してみましょう。
・AppleでデベロッパーサイトCocoa API Referenceページ
http://developer.apple.com/referencelibrary/API_Fundamentals/Cocoa-api-date.html
すると、ページタイトルは「Cocoa Frameworks」となっています。Cocoaで最大かつ最も利用されるFrameworkは「Application Kit」と「Foundation」の2つですので、まずそれらのドキュメントをダウンロードしてみます。
「Application Kit Framework Reference」
http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/index.html
「Foundation Framework Reference」
http://developer.apple.com/documentation/Cocoa/Reference/Foundation/ObjC_classic/index.html
「Application Kit」とはCarbonの「HIToolBox」に相当し、ユーザインターフェース構築に関わるクラス(Carbonで言うところのマネージャ)が集められています。つまり、「もう64Bit化しない」とAppleが宣言した部分がHIToolBoxであり、「変わりに使いなさい」と推奨されたのがApplication Kitと言うわけです。もう片方の「Foundation」は、Carbonの「CoreFoundation」に準じるFrameworkです。つまり、もしCarbonアプリケーション開発時にCoreFoundation APIに慣れ親しんでいたとしたら、Cocoaの半分のクラスやメソッドの習得については、それほど労力を必要としないかもしれません(希望的観測)。
また、OpneGL、CoreGraphics、CoreAudio、QuickTimeといったCarbonでもお馴染みのFrameworkはCocoaとCarbonの両方から利用できますので、これらで習得した技術はそのままCocoaでも生かすことができます。ただし現状のQuickTimeについては、HIToolBoxと同じく「64Bit化しない」と宣言されていますので、これから使用する場合には注意が必要です。QuickTimeは、そのうち「CoreQuickTime」とかに名称変更されて(笑)リニューアル再登場するかもしれませんね。でないと、「QTKit」(CocoaのQT関連Framwork)に存在しない機能は64Bitアプリケーションで利用不可となり、メディア関連の開発では問題が噴出しそうな気がします...。
さて、話をApplication KitとFoundationのドキュメントに戻します。両者の内容を調べてみると、両Frameworkのクラス数はそれぞれが150以上、「Application Kit Framework Reference」が約3000ページで「Foundation Framework Reference」が約2000ページの内容となっています。最低限の説明しか記載されていないリファレンスでさえこのページ数です! とてもじゃないですがメソッド数は数える気にもなりません(笑)。加えて、内容は英語ですから、技術習得の効率を考えれば、日本のデベロッパーサイトに和訳があることを期待してしまいます。それでは、日本のデベロッパーサイトを調べてみましょう。
・Appleデベロッパーサイト(日本)翻訳ドキュメントサイト
http://developer.apple.com/jp/documentation/japanese.html
Cocoa関連で翻訳されているドキュメントは以下のみです(それも半分はMOSAサイトにあります)。
・Cocoa基礎ガイド(Fundamentals) (PDF 7.8MB)
・アプリケーションアーキテクチャ入門 (PDF 1.1MB)
・Objective-C プログラミング言語
・Cocoa バインディング入門
・キー値コーディング(Key Value Coding)
・キー値監視について(Key Value Observing)
・Core Data プログラミングガイド
・Document-Based Applications Overview抄訳(MOSAサイト)
・Cocoa Drawing ガイド抄訳(MOSAサイト)
・Cocoaテキストシステム抄訳(MOSAサイト)
・Text System オーバービュー
・Text System Storage Layer オーバービュー
・String プログラミングガイド
・Attributed Strings プログラミングガイド
残念ながら両Frameworkのリファレンスの和訳は存在しません。それにしても、最低限この2つの和訳ぐらいは存在していてもバチは当たらないと思うのですが...。上記の一覧のうち、バインディング、キー値コーディング、キー値監視、Core Dataに関するドキュメントは、割と最近Cocoaに導入された新技術の解説です。ですから、これからCocoaに取り組もうという人には、まだあまり必要ないと思われます。それより、MOSAで行った抄訳ドキュメントの方が即戦力として役に立つでしょう。ちなみに、MOSAのドキュメントサイトから貼られているリンクはもう古くなっており(涙)正しくは以下の場所にあります。
「MOSAテクニカルドキュメント要約ライブラリ」
http://www.mosa.gr.jp/?page_id=19
また、MOSA伝でも記事を書いていただいた木下誠氏の「Cocoa入門ビデオ」(初級編、中級編、上級編)がムービーとして登録されていますので、こちらを最初から通しで見れば、Cocoaの全体像や開発手順を把握することが容易になると思われます。
さて、Apple社のCocoa関連の日本語ドキュメントがここまで貧弱だと、外部から出版されているCocoaプログラミングに関する書籍に頼るしかありません。今回、筆者が連載中に参考にしようと考えているのは以下の3冊です。
「Objectve-C Mac OS X プログラミング」萩原剛志著
「Mac OS X Cocoa プログラミング」アーロン・ヒレガス著 村上雅章訳
「Happy Macintosh Developing Time」木下誠著
Objective-Cの習得には萩原氏の「Objectve-C Mac OS X プログラミング」が最適です。Cocoaプログラミング技術の習得にはアーロン・ヒレガス氏の「Mac OS X Cocoa プログラミング」を、Cocoaの最新技術のチェックには先ほどの入門ビデオでも紹介した木下氏の「Happy Macintosh Developing Time」を参考にします。ちなみに、木下氏の「Happy Macintosh Developing Time」はエディションにより内容がまったく異なりますので(表紙が赤と黒)、購入時には注意してください(赤い方が最新)。
これらの書籍と日本語翻訳ドキュメントでカバーしきれない箇所は、その都度適切な英語ドキュメントを探して紹介したいと思います。さて、これで資料の準備は完了。次回からは、いよいよXcodeとInterface Builderを起動しCocoaプログラミング・ワールドの探求へと突入します。