タイトルBrowsing Mac OS X》開発ツールが標準装備されたMac OS X、ツールの位置付けは?カテゴリーProjectBuilder/Interface Builder, Browsing Mac OS X
作成日2001/3/27 13:6:48作成者新居雅行
Mac OS Xの製品版には、開発ツールのCDも含んでいる。こうした開発ツールは、大昔のパソコンでは標準添付が当たり前だった。なぜかというと、パッケージソフトが発達してないために、自分が必要なソフトウエアを自分で作成しなければならなかったからだ。しかし、そうした伝統をやぶったのはある意味では初期のMacintoshでもあった。その後、ソフトを作る側と使う側は違う世界の人たちで形成されたのである。自給自足から分業社会へと移行したようなものだ。しかし、2001年、Mac OS Xは開発ツールを含んで出荷された。それは、初期のパソコンと同じような理由、つまり、Mac OS X対応ソフトウエアが不足しているという状況を打開するために他ならない。しかしながら、大昔と違うのは、使う人みんなが開発をしましょうというのではなく、これまでMac OSに感心を示さなかった人たちにも開発ツールを手に取ってもらおうという意図が大きいようだ。特に、UNIX系の開発者が積極的にMac OS X向けの開発をしてもらいたいというということである。
すでに、Mac OSで開発を続けている方で、ADC(Apple Developers Connection)に参加されている方は、早くからアップルのツールを利用されているだろうが、ここでは、始めて使うという方も含めて基本的なことを紹介した。開発というものについては、ある程度知っていると想定するが、いずれにしても、ある特定のOSで稼動させるソフトウエアを作るソフトを、一般に開発ツールと称している。基本は、C言語だとか、Javaとかでの言語でプログラムを記述し、それを特定のOSで稼動できる形にするのが開発ツールだ。
Appleの開発ツールはたくさんのアプリケーションから成り立っているが、主役は統合開発環境のProject Builderと、ユーザインタフェースを構築するInterface Builderだ。実は、これらのツールは、NeXT社のOSの初期の頃から搭載されていたものである。NeXT社の買収とともにMac OS Xへの道のりは始まり、OSはともかく「Mac」と名前がついたのだが、開発ツールはNeXT社の名残りを強く残している。なお、Mac OS時代にはAppleはMPWとして開発ツールを作っていたが、これはMac OS X向けにはとうとうならなかった。
Project Builderは、プログラムのファイルを作るというまず基本的な作業ができる。テキストエディタ機能によって、JavaやCなどの言語のプログラムを作り、保存できる。単にエディタというだけでなく、キーワードをカラー表示したり、あるいは複数のファイルに対する置換処理ができるなど、プログラミングに向けた機能がある。ただ、JBuilder(ボーランド)やVisual Basic(マイクロソフト)にあるようなキーワードを自動的に呼び出して選択するような機能はない。Project Builderはさらに、開発で使うさまざまなソフトを統合的に処理し、それらをまとめてMac OS Xで実行できる形式にするというビルドの機能を備えている。また、作成するアプリケーションに対する設定も可能だ。さらに、ソースレベルのデバッグの機能も備えている。
基本的には、Project Builderは、Mac OS Xで稼動するすべての形態のソフトウエアを構築できると言えるだろう(もっとも、Classicは作成できないが)。まず、Mac OS XとMac OSで共通に利用できるCarbonフレームワークのアプリケーションなどが作成できる。言語はCないしはC++を使うことになる。ただし、Project Builderでは実行バイナリとしてMach-O形式しか作成できないため、Project Builderでビルドしたものは、Mac OS 8/9では実行できないのである。Mac OS 8/9で実行できるバイナリ形式であるCFMのアプリケーションを作成するには、CodeWarrior(メトロワークス)を使う必要がある。なお、CFMはMac OS Xでも実行可能である。
そして、Mac OS XネイティブなフレームワークであるCocoa対応のプログラムも作成できる。Cocoaは本来はObjective-Cで開発を行うフレームワークであったが、現在はJavaでも開発できるようになっている。従って、基本的にはどちらの言語を使うのかを選んで開発にかかることになる。Cocoaの開発では、Interface Builderとは切っても切れない関係にある。Interface BuilderとProject Builderはしっかり統合されていて、連動して動作する。Interface Builderはその名前とおり、ウインドウやダイアログボックス、メニューといったユーザインタフェースを構築する。その構築結果はnibファイルと呼ばれる設定ファイルに保存される。その設定ファイルは、実行時にも利用され、Cocoaのフレームワークが定義とおりにダイアログボックスなどを表示するわけだ。しかし、Interface Builderは単なるデザインツールではない。ダイアログボックスの中のさまざまなコンポーネントが、プログラムとどのようにかかわりあいを持つかという点も含めて定義する。つまり、プログラムとのつなぎの部分も定義してしまうのである。そして、そのつながりを手がかりにして、ダイアログボックス内のコンポーネントの変化などをプログラムで感知して、処理を組み立てることができる。
こうした、Interface Builderの設計結果がタイトに利用できるのはCocoaなのであるが、一方Carbon向けのアプリケーションもnibファイルを利用できる。統合度はCocoaほどにはないにしても、Interface BuilderをGUI構築ツールとして利用できるのである。

一方、Javaという点も見逃せない。CocoaのアプリケーションをJavaで開発できるだけでなく、純粋なJavaのライブラリ機能を使っても、Mac OS Xのアプリケーションを作成できる。しかも、Swingのルック&フィールに、Aquaのデザインを適用したものを使えるため、純粋なJavaで作られたアプリケーションでも、みかけの違いはほとんどないと言えるだろう。また、Javaの標準機能だと、JARファイルをjavaコマンドなどで起動するということになるが、Project Builderを使えば、純粋JavaでもMac OS XのFinderからダブルクリックして起動できるアプリケーションも作成でき、アイコンなども簡単に追加できる。つまり、Mac OS Xのアプリケーションの代表的な形態であるパッケージを作成することもできるのである。
ただ、純粋Javaに対応したGUI作成ツールはない。相当以前には、Interface BuilderでSwingのGUIを定義できるようなこともあったようなのだが、実現はしていない。ただ、JBuilderやForte for JavaのMac OS X対応が行われれば、そうしたツールもやはり恐らくはフリーで入手できるのではないかと思われる。

Project Builderでは、さらに、カーネル機能拡張や、フレームワークの作成もできる。また、Toolsとして、コマンドラインから呼び出して使う形式のソフトウエアも作成可能だ。テンプレートとしては、C++でのツールやJavaのツールなどの選択肢がある。だから、UNIXコマンドのように使うようなソフトウエアも開発できるのである。
こうした、さまざまな形態の開発ができるのは、実はコンパイルやビルドなどは外部のコマンドやスクリプトを利用するようになっている。たとえば、ccコマンドやjavacコマンドなどを呼び出すのである。もちろん、そうしたスクリプトなどを用意すれば、開発のバリエーションは増えることになるとは思われるが、作成に関する情報は少ない。もっとも、インストールした結果を解析するとある程度は判断ができると思われる。
デバッグに関しては、ソースコードレベルのデバッグが可能な場合とそうではない場合がある。プロジェクトの形式によっては、gdbを使ったデバッグになる。

なお、Developer Toolsのインストールは、Mac OS Xの起動ディスクにインストールする必要がある。起動していないディスクにインストールすると、Project Builderはまったく起動しなくなっているので注意しよう。また、インストールの最初の段階で、システムに登録されているユーザのパスワードを入力する必要がある。Mac OS Xではちゃんとアカウント管理されていることは忘れないようにしてほしい。
では、Projcect Builderを立ち上げれば、ばんばんとプログラミングできるかといえば、御存じの通り、フレームワークの解説文書が必要だ。とりあえずは、/Developer/Documentationというパスをさぐってみよう。たくさんの文書がある。一部は、Project BuilderのHelpメニューからも参照できる。また、Examplesとして、サンプルコードなどもある。Appleのサイトにも日々情報は掲載されている。情報は十分…とはいいがたいが、もはや必要な情報はどこかにあるという状況にまで充実しては来ている。たくさんのドキュメントを相手にするのは骨が折れることではあるが、検索機能などを活用して、とにかく疑問点はドキュメントを洗うことから始めたい。もちろん、MDOnlineでもさまざまな開発に関連する情報をお届けしている。
関連リンク