● Carbon視点でCocoa探求(2007/12/11)

  このニュースは、MOSAの会員にのみ配布されているデベロッパー向けの
  デジタルマガジンMOSADeNのに掲載された記事です。ほぼ一ヶ月遅れで
  ここに掲載されて行きます

 〜 Leopardの開発環境 〜


嬉しい事に、予定通りにLeopard(Mac OS X 10.5)が販売開始となりました。既にMac OS X 10.5.1アップデータも登場し、ユーザの間ではTigerからの切り替えが迅速に進んでいるようです。今回からは、実施にObjective-Cのソースコードを記述しようと考えていたのですが、 Mac OS X 10.5 の「Xcode Developer Tools」の変更点があまりにも多いので、 開発方針を決めるため 、まずはそれらをまとめてみる事にしました。

最新の開発環境「Xcode Developer Tools」をインストールすると、お馴染みのXcodeとInterface Builderに加え、WWDC2007ではXRayと呼ばれていたパフォーマンス解析ツールが「Instruments」と言う名称で保存されます。また、XcodeとInterface Builderもそれぞれ3.0へとバージョンアップがなされています。 Mac OS X 10.5の開発環境が以前からどう変更されたかについては、Developerフォルダに保存されている「About Xcode Tools.pdf」に詳細が記されています。

上記3つのアプリケーションがソフト開発での三本柱となるわけですが、とりあえず新顔のInstrumentsは横に置いておいて(必要時には解説する予定)、Interface Builder 3.0が、以前とはまったく違うアプリケーションに「変身」していることにビックリします。あまりにも違うので、今まで出版されてきたCocoa入門書のInterface Builderの操作箇所は、全面書き換えが必要になるのではないでしょうか?

以下に、Apple社のデベロッパーサイトに登録されている開発ツールに関係する最新ドキュメントを紹介しておきます(Mac OS X 10.5登場で更新)。 Xcode 3.0のユーザズガイドには日本語訳が用意されています。そして、やっとこさ(笑)Interface Builderのユーザズガイドが登場しました。 Mac OS X 10.5から利用できるようになったRubyCocoaに興味がある方は、「Ruby and Python Programming Topics for Mac OS X」を参照してください。

「Xcode User Guide」(日本語訳あり)

http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeUserGuide/Contents/Resources/en.lproj/index.html

http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeUserGuide/Contents/Resources/ja.lproj/index.html

「Interface Builder User Guide」

http://developer.apple.com/documentation/DeveloperTools/Conceptual/IB_UserGuide/index.html

「Introduction to Instruments User Guide」

http://developer.apple.com/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/index.html

「Ruby and Python Programming Topics for Mac OS X」

http://developer.apple.com/documentation/Cocoa/Conceptual/RubyPythonCocoa/index.html

「Debugging with GDB」

http://developer.apple.com/documentation/DeveloperTools/gdb/gdb/gdb_toc.html

それ以外にも、今回の連載に関係がありそうなCocoaやCarbonの変更箇所をピックアップしてみましょう。

・Objective-C 2.0が採用された(Cocoa)。
・Cocoaフレームワークが64Bitアプリケーション対応となった(Cocoa)。
・画像操作用としてImageKitが新しく搭載された(Cocoa)。
・QTKitが大幅に機能強化された(Cocoa)。
・アニメーション操作に用いるCore Animationが搭載された(Cocoa)。
・テキスト描画用APIとしてCore Textが搭載された(Carbon)。
・Finderなどで使われるQuick Look用Plug-inが作成可能になった(Carbon)。

最初の「Objective-C 2.0」ですが、待望のガベージコレクションをはじめ、インスタンス変数への簡易アクセスやFast Enumerationの搭載など、幾つか新機構が採用されています。それに伴い、Core Animation Frameworkでは2.0準拠のインスタンス変数へのアクセス方法が全面的に取り入れられています。以下は、Mac OS X 10.5用に改訂されたObjective-C 2.0や、それに関係するCocoaプログラミングについてのドキュメント一覧です。すべてPDFファイルも用意されています。皆さん、予習しておいてください(笑)

「The Objective-C 2.0 Programming Language」

http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html

「Cocoa Application Tutorial」

http://developer.apple.com/documentation/Cocoa/Conceptual/ObjCTutorial/index.html

「Garbage Collection Programming Guide」

http://developer.apple.com/documentation/Cocoa/Conceptual/GarbageCollection/index.html

「Memory Management Programming Guide for Cocoa」

http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/index.html

「Exception Programming Topics for Cocoa」

http://developer.apple.com/documentation/Cocoa/Conceptual/Exceptions/index.html

「Object-Oriented Programming with Objective-C」

http://developer.apple.com/documentation/Cocoa/Conceptual/OOP_ObjC/index.html

「Model Object Implementation Guide」

http://developer.apple.com/documentation/Cocoa/Conceptual/ModelObjects/index.html

「Cocoa Scripting Guide」

http://developer.apple.com/documentation/Cocoa/Conceptual/ScriptableCocoaApplications/index.html

本連載の開発でもObjective-C 2.0を全面採用することにします。ついでに64Bit化作業も行いましょう(こちらは簡単)。つまり、開発したアプリケーションはMac OS X 10.5以降でないと起動できなくなりますが、まあ完成品を一般ユーザに販売するわけではないので良しとしましょう(笑)。そうであれば、Mac OS X10.5以降でしか使えない、ImageKitやCore Animationなどの最新機能も心置きなく使えます。今のところ、Core Animationについては、それを活用できる状況に遭遇するかどうかは分かりませんが(無理矢理作るのもアリ)、ImageKitに関してはすぐさま活用できそうです。

ImageKitは、Quartz 2D、Core Image、Core Animation、OpenGL、ImageI/Oなどの能力を十二分に活用したハイエンドCocoaクラスです。これを活用することで、頻繁に画像を取り扱わなくてはいけない開発者の手間を大きく省いてくれます。以下に、ImageKitの機能一覧を示しておきましょう。

・画像イメージの表示と編集(IKImageView)
・画像イメージのカラーやガンマ、エフェクト編集用パネル表示(IKImageEditPanel)
・複数画像を表示するためのブラウザ表示( IKImageBrowserView)
・画像のスライドショー表示の実行(IKSlideshow)
・iSightやデジカメからの画像(サムネイル)の取り込み(IKPictureTaker)
・画像保存用のフォーマットとオプションの選択(IKSaveOptions)
・Core Image用「Filter Browser」と「Filter User Interface View」をサポート

次回からは、新しいXcodeとInterface Builderを起動して、テンプレートから作成した「Cocoa Application」や「Cocoa Document-based Application」を拡張していく開発作業に入りたいと思います。


copyright 2007 Ottimo, Inc. All rights reserved
無断転載・引用禁止