お待たせしました。鶴薗さんの連載を開始します。今回はとりあえずは導入という感じですが、励ましあるいは要望などがありましたら、ぜひともメールなどで伝えてあげて下さい。鶴薗さんのページにメールアドレスがありますが、こちらにメールをいただいて転送してもかまいません。
さて、先週の後半に秋葉原にメモリを買いに行きました。Windowsのデスクトップ用なんで、まあ、なんでもいいんですが、256MBのメモリが、なんと3500円前後にまで値下がりしています(168pin, PC100, CL2)。会社の同僚に聞けば、先週あたりは4500円くらいだったとかで、悔しがっていましたが(笑)、しかし、あまりにすごいメモリの値下がり状況ですね。いったいどうなってしまったんでしょうか。うちで妻が使っているマシンは、一昨年の年末くらいに組み立てたやつなんで、気がついたら64KBのメモリしか入っていない状態だったのです。それでも、全然普通には使えていたのですけど、Office XPを入れるとなんかすごく不安定になり、また、インストールできないコンポーネントも出てくるやらで、とりあえずメモリを足してみようという方針です。それでもだめだったら、Windows Meをやめて、Windows 2000を入れようかと思っていますけど、どうなることやら…。それでまあ、自分のPowerBook G4ですが、最初から256MBあるので、そんなにメモリ不足になっているという雰囲気でもないのですけど、なんかこんなに安いのならもう256MB! といきたくなりますね(笑)。Webサイトをちらほら見ると、7800円かぁ〜、汎用品の倍はするんですねぇ〜。
(新居雅行 msyk@mdonline.jp)
■ あいさつ
どうもはじめまして。今回より月に一度Cocoaに関する連載を書くことになりました鶴薗賢吾と申します。Cocoaに関しては、「興味はあるんだけど情報が少なくどう手を付けてよいのやら…」と思っていらっしゃる方も多いのではないでしょうか。この連載では、多少なりでもそういった方の手助けになればと思っています。
かくいう私自身も勉強中の身でして、この連載を通じてさらに勉強してきたいと思っていますし、色々と読者のみなさんよりの情報やフィードバック等も期待しているところです。よろしくお願いいたします。では、早速始めたいと思います。
■ Cocoaとは何か
Mac OS Xの構成図を見ると分かりますが、Mac OS Xで動作するアプリケーションには、「Classic、Carbon、Cocoa」の3種類の形式があります(Javaを含めている図もありますので、この場合は4種類となります)。
◇図1. Mac OS Xの構成図
Classicは、従来のMac OS 9までで使用されてきた形式です。Mac OS Xに備わっているClassic環境によって動作します。ただし、Mac OS Xに備わっている新しい機能(プリエンプティブマルチタスク、メモリ保護、Quartzによる高機能なグラフィック等々)をフルに利用することはできません。
Carbonは、Mac OS Xの新しい機能を利用するためにClassicから発展して作られた、Mac OS Xネイティブの新しい形式です。CarbonからはMac OS Xに備わっている新しい機能を利用することが出来ます。また、開発者の視点から見ると、CarbonのAPIはClassicのAPIと似ているため、既存のClassicアプリをゼロから作りなおすことなく、Mac OS X対応させることが可能です。
Cocoaは、Carbonと同様にMac OS Xの新しい機能が使える新しいアプリケーションの形式ですが、ベースになっているのはNeXT Computerで生まれた「OPENSTEP(旧NeXTSTEP)」です。そのため開発方法が今までとは全く異なります。Carbonがあるにもかかわらず、Cocoaというものが用意された理由は、なんといっても「開発が容易である」ことです。Mac OSは(つまりClassic APIは)、長年の建て増しの繰り返しによって継ぎはぎの目立つものになってきました。CarbonもClassicをベースにしているため、整理はされているものの同様の性質を持っています。
Cocoaは、非常にエレガントな作りになっていて、「10倍簡単に開発ができる」というような表現を見掛けることがあります。OPENSTEP自体は随分昔に開発されたものですが、基本設計のよさもあり、それを引き継いだCocoaは今でも十分新しく、Mac OSの開発環境としては最も優れたものといえます。これから新規にMac OS X対応のアプリケーションを作る、もしくは、これからMac OS Xのプログラミングの勉強を始めるという方には、CarbonよりもCocoaの方が非常に魅力的な解になるでしょう。
■ 開発ツール
Cocoaの開発を容易にしている1つ目の理由は、開発用ツールにあります。Project BuilderとInterface Builderが2大開発ツールで、以下のようなものです。
関連リンク:Cocoaはやっぱり!
カテゴリ:Cocoa, 鶴薗賢吾のCocoaはやっぱり!出張版
■ 開発環境の入手方法
もしかすると、Cocoaで開発をする最大のメリットは、開発環境が安価に手に入ることかもしれません。14,800円のMac OS Xのパッケージには、開発ツールが標準でついています。Macでは、こんなに安価な開発環境は他にはありません。
また、Appleの開発者向けのサービスである「Apple Developer Connection(ADC)」に入会することで、Appleのサイトより無料でダウンロードすることができます(ファイルは巨大ですので常時接続環境がないと辛いですが)。ADCのにはいくつかのコースがありますが、「Onlineプログラム」は無料ですので入会して損は無いでしょう。
◇Apple Developer Connection プログラム
http://developer.apple.com/ja/membership/index.html
■ Cocoaの欠点
いいこと尽くめのようなCocoaにも欠点はあります。ここでは、その欠点についても触れておきましょう。
〈CocoaアプリはMac OS X専用〉
Cocoaで開発する最大のデメリットは「CocoaアプリがMac OS X専用であること」でしょうか。Carbonアプリは、Mac OS 8.6以降で動くように開発が出来ますが、Cocoaではそれはできません。古いマシンや古いOSでも動くようにという要求がある場合は、Cocoaでの開発はマッチしないといえます。
〈大規模なClassicアプリからの移行は大変〉
Classic/CarbonとCocoaの間にはAPIの互換性がありませんので、既存のClassicアプリをCocoaへ移植する場合、Carbon化するよりも一般に工数がかかります。小規模なものであれば、開発の容易さもありますので、ゼロから作りなおすという手もあるかもしれませんが、大規模なものには向かないといえます。
〈Cocoaは発展途上〉
Mac OS X自体が発展途上であるともいえるのですが、CocoaはOPENSTEPから発展してきたために、従来のMac OSの作法を完全には身に付けていないところがいくつか見受けられます。例えば、
カテゴリ:
Bigi.netは、Webアプリケーション開発に関するカンファレンス「Web Developers Conference 2001」を、2001年7月24日(火)11:00〜16:30に開催する。アップルコンピュータは、プラチナスポンサーとなっている。場所は、東京・水道橋近くの東京コンファレンスセンターで、定員は240名、参加費は10,000円となっている。セミナーは並行して行われる「エンタープライズトラック」「テクノロジートラック」の2つのプログラムに別れており、合計、8つのセッションが開催される。エンタープライズトラックは、スポンサーからのプレゼンテーションが並んでおり、アップルコンピュータからは13:00〜14:00に「次世代の開発運用環境「WebObjects 5」」として、同社マーケティング本部プロダクトマーケティング マネージャ鷲滝薫氏による講演が開催される。エンタープライズトラックでは、他に日本アイ・ビー・エムによるWebSphere、オラクル社によるOracle 9i、NECソフトによるLutris Enhydraをテーマにした講演が開かれる。一方のテクノロジートラックでは、京大学情報基盤センター助手の安東孝二氏による「Apacheのパフォーマンスチューニングポイント解説」、メディアフロントの小松誠氏による「PHPで作るXML-DBシステム」、エア・ロジックの羽生章洋氏による「今、Web開発でJavaをはじめる理由」、テューンビズの早川仁氏による「WebDAVによるWebコンテンツの分散オーサリング」といった講演が行われる。Web開発についての初歩的な講演ではなく、実務者にとって知りたい一歩進んだ内容がテーマに挙げられている点は注目できるだろう。
関連リンク:Web Developers Conference 2001
カテゴリ:WebObjects, サーバー製品, イベント
「Inside Mac OS X: Aqua Human Interface Guidelines」が書籍として、FatBrain.comより入手可能となっている。価格は$46で、256ページとなっている。出版時期は2001年5月と記載されている。Mac OS XのAquaを利用したソフトウエアを開発する上で、ユーザインタフェースの設計をどのように行うのかを記載した文書であり、その意味では、Mac OS Xでのソフトウエア開発者は必携のドキュメントであると言えるだろう。
◇ADC Developer Library
http://www1.fatbrain.com/documentation/apple/
なお、同じドキュメントのPDF版がAppleのサイトよりフリーでダウンロードはできる。以下がそのアドレスである。ダウンロードのリンクではPreliminary版との記述がある者の、ダウンロードできるのは2001年5月という日付けが記載されており、おおむね上記のドキュメントと同じである模様だ(ページ数も同一である)。ペーパードキュメントを入手するか、PDFで済ませるかを検討するということになるだろう。
◇Aqua Human Interface Guidelines (Preliminary)
http://devworld.apple.com/techpubs/macosx/SystemOverview/AquaHIGuidelines/AquaHIGuidelines.pdf
カテゴリ:雑誌、書籍, ユーザインタフェース
Stephane Sudre氏は、Mac OS Xでのアシスタントアプリケーションを作るためのフレームワークである「Assistant Kit 0.8」をフリーウエアとしてリリースしている。作成するのは、Objective-CベースのCocoaアプリケーションとして稼動するアシスタントである。ダウンロードしてProject Builderの関連フォルダにインストールを行うと、新規プロジェクトを作成する時に、アシスタント向けのプロジェクトのテンプレートを選択できるようになる。また、新規ファイルのテンプレートとして、最終的な処理を行うクラスを生成することができるようになる。まだ、ドキュメンテーションが不完全であるが、アシスタントアプリケーションを手軽に作ろうと考えているのなら、ダウンロードしてチェックする価値はあるだろう。サンプルプログラムとして、SimpleAssistantというプロジェクトがソース付きで含まれている。これと、テンプレートで作られたプロジェクトを並行して調べれば、独自の設定項目を付け加える方法などはおおむね理解できると思われる。アシスタントのページごとにnibファイルを用意し、そこではNSCustomViewでアシスタントのページを設計する。その各ページをコントロールするクラスとしてAKPaneControllerのサブクラスを定義する。また、全体的なコントールを行うために、PaneList.plistというファイルの記述を変更すると言ったところがポイントになる模様だ。なお、ダウンロードしたファイルをStuffIt Expanderで解凍すると、ファイル名が短くなって途切れてしまうフォルダも出てくるため、解凍はtarコマンドを使うなどするのが良さそうだ。
関連リンク:White Box: What’s New
カテゴリ:Cocoa, 開発情報