タイトル【小池邦人のプログラミング日記】2000/11/22<ProjectBuilderを使ってみる その1>カテゴリー開発情報, Carbon/CF, 小池邦人のプログラミング日記
作成日2000/11/22 14:24:30作成者小池邦人
「MOSA湘南セミナー 2000」で、Mac OS Xパブリックβ版の「Developer Tools」の内容をオープンな場所で議論してもOKという「許可」をAppleから得ることができました。このDeveloper Toolsには、Apple社がMac OS Xの開発環境として開発を進めている「InterfaceBuilder」や「ProjectBuilder」も含まれています。Developer ToolsはCD-ROMだけでなくAppleのFTPサイトでもADCメンバーに無償で配布されています。まあ、今まで自由な情報交換が許可されていなかった事自体が異常なのですが...。とりあえず、こうした場所でもInterfaceBuilderやProjectBuilderの話しができるようになったのは朗報です。

さっそく、Mac OS Xのテスト用として開発してきた自作アプリケーションのソースコードをProjectBuilderに移植して、Mach-OベースのCarbonアプリケーションへと変身させてみることにします。残念ながら、現在のProjectBuilderではCFMベースのCarbonアプリケーションを開発することはできません。(将来的にもダメのような気がします。)ですから、C言語を使う限り、Mac OS 8/9でも起動するCarbonアプリケーションはProjectBuilderでは作れません。こちらは、今まで通り「Metrowerks CodeWarrior 6」などの商用開発環境を利用する必要があります。ProjectBuilderは「Developer」フォルダの「Applications」フォルダの中にあります。Mac OS X上でProjectBuilderを起動したら、新規プロジェクトを作成するために、まずはFileメニューから「New Project...」を選択してください。

すると、どんなタイプのアプリケーションを作成するのかを選択するためのダイアログがオープンします。
 

今回はその中から「Carbon Application」をダブルクリックして選びます。作成できるアプリケーションの中には「Carbon Application (Nib Based)」という実に興味深いタイプもあるのですが(笑)こちらは次の機会にチャレンジしてみることにします。続いて、プロジェクトの名称を入力し「Finish」ボタンをマウスクリックすれば、Mach-OベースのCarbonアプリケーションを作成するためのテンプレート(雛形)プロジェクトがオープンします。
 

新規作成プロジェクトに利用されているデータやファイル類は、すべて入力した名称と同じ名前のフォルダ内に保存されています。
 

ProjectBuilderのドキュメントは、そのフォルダ内でプロジェクト名に「.pbproj」と拡張子が付いたファイルです。次回からはこちらをダブルクリックすることで作業をすばやく再開することができます。さっそくDockに登録しましょう(笑)。新規プロジェクト作成時の注意点は、プロジェクト名に半角スペースを使わないことです。(日本語表記もマズイ?)たとえば名称が「ViewJPEG_X」ならばOKですが、「ViewJPEG X」だと、アプリケーションのBuild(コンパイル&リンク)時にエラーが発生するようです。ひょっとすると、ソースファイル名に半角スペースを使うのもマズイかもしれません。まあ、UNIX的に考えると当然なのですが(笑)ただし、現在はMac OS XもToolsもβ版ですから、私の環境だけで起こる現象かもしれません。みなさんも時間があったら確認してみてください。

ProjectBuilder自体は残念ながらまだ日本語化されていません。(日本語化の予定があるかどうかも分からない。)Pure Javaを利用したアプリケーションの開発では、開発環境側の日本語対応だけでなく、出来上がったアプリケーション側の日本語対応にも問題があるよです。ただし、C言語によるCarbonアプリケーション開発に関しては、日本語リソースを利用できるために、日本語処理に関してはこれといった問題に遭遇しませんでした。それより困ったのは、文字入力モードが日本語(ことえりアイコンがトップメニューに表示されている状態)だと、ソース編集用のウィンドウを閉じる度に、かならずProjectBuilderが「落ちる」という現象です。最初は何故こうも頻繁に落ちるのか理解できずに苦労したのですが(Mac OS X自体は落ちないので回復は迅速なんですが)この現象に気づいてからは落ちる回数が随分と減りました。

テンプレート用のプロジェクトがオープンされたら、とりあえず、その中身がどうなっているのかを調べてみると良いでしょう。「Source」グループに登録されている「main.c」には、FileとEditメニューを表示し、"Hello"とタイトルが付いたウィンドウをオープンする簡単なアプリケーションが記述されています。「Resources」グループには、このアプリケーションのリソースを保存した「main.r」が登録されています。興味深いのは、このファイルではリソースフォークでなくデータフォークにリソースが保存されていることです。ただし、main.cのソース内容を見てみると、一般的なリソースアクセスAPIが使われていますので、ソースコード側でそうした状況を気にする必要はないようです。また、テンプレートに最初から登録されているフレームワークとライブラリは「Carbon.frameWork」と「libstdc++.a」の2つであることが分かります。

まずは試しに、このままBuild(左上のハンマーのアイコンをクリック)を行い、その後Run(モニターのアイコン)させてみます。プロジェクトフォルダ内の「build 」フォルダ内に、ディフォルトのアイコン(AppleWorksのマークの親戚のようなやつ)が付いたアプリケーションが作成され、すぐに起動されます。
 

このアプリケーションは、実は「.app」という拡張子がついたフォルダでして、Mac OS XのFinderによりバンドル化されています。このフォルダ内がどんな構造になっているのかを知りたい場合には、このアプリケーションをそのままMac OS 9の環境にコピーしてくるのが近道です。
 

「Contents」フォルダ内の「Mac OS」内に保存されているのがMach-Oベースの実行コード部です。また「Resources」フォルダー内のすべてのリソースファイルは、リソースフォークではなくデータフォークにリソースが保存されています。

ところで、Mac OS Xが正式に発表された場合、InterfaceBuilderやProjectBuilderはどういう具合に配布されるのでしょうか?ちょっと気になるところです。今回同様、デベロッパーとしてADCに登録されている人のみを対象として無料配布するのでしょうか?それとも開発キットとして別売し、一般の人でも入手できるようにするのでしょうか?とにかく、我々ユーザにとって開発環境の選択肢が増えることは大歓迎なので、Appleには、なるべく多くの人が容易に入手できる仕組みを提供してほしいと思います。

次回はこのテンプレート用プロジェクトに自作のソースコードや新たなフレームワークを加え、実際にBuildしてうまくアプリケーションが起動するかどうかを確認してみたいと思います。
[小池邦人/オッティモ]
関連リンクオッティモ