タイトルAppleScript Working》AppleScript Studioで作るMac OS X“ネイティブ”アプリケーション(1)カテゴリーProjectBuilder/Interface Builder, AppleScript, AppleScript Working
作成日2001/12/20 17:57:50作成者新居雅行
Developer ToolsのDecember 2001版は、単なる利ビジョンアップではなく、AppleScript Studioが初登場となり話題を集めている。すでにいろいろとアプリケーションを作っている人もいるかと思われるが、まずはAppleScript Studioを使ったアプリケーション作成のポイントとなる部分を紹介したい。AppleScriptでのプログラム作成経験や、Project Builder/Interface Builderについてのある程度の知識があると理解しやすいと思われるので、まったくの初歩からの解説はやや省略気味にさせていただく点は最初にお許しをいただきたい。
AppleScriptは開発言語であるが、ある意味では「緩い」オブジェクト指向言語である点が、独特の分かりやすさを出していると言っていいだろう。また、大きな特徴は別のアプリケーションのコントロールができるという点だ。その意味では、コントロールするアプリケーションの中のデータを処理できるということも言える。もちろん、Finderのコントロールもできるので、Mac OSそしてアプリケーションの自動化ということが可能となる。Mac OSの世界では、QuarkXPressがAppleScript対応していることもあって、DTP関連ではビジネスとなるソリューションがAppleScriptでそこそこ作られており、実績もたくさんある。もっとも、Mac OSではその実行速度が問題になっていたが、Mac OS 9ではかなり改善がされた。Mac OS Xでは処理速度という点では飛躍的に早くなったと言えるだろう。
Mac OS時代から「スクリプト編集プログラム」はあったものの、プログラム入力などはできるがデバッガやGUI開発ツールを持たない基本的なツールであった。もちろん、これだけでも複雑なプログラムを作る人もいたのであるが、GUIについてはAppleScript自体のサポートが弱いだけにFaceSpanなどのサードパーティが開発したツールを使うことになっていた。だが、Mac OS X時代、強力なツール「AppleScript Studio」をApple自身がリリースすることになる。大きな特徴は、Cocoaをベースに動くということだ。CocoaにはGUIを構築するさまざまなコントロールがある。これらを利用してGUIを設計し、その背後の動作をAppleScriptで作成できるというようになったことだ。しかも、Project Builderを利用でき、デバッグ環境もある。ユーザインタフェースはCocoaだからもちろん、Interface Builderで作成できる。Appleの統合開発環境で、AppleScriptのアプリケーションができてしまうのである。
見方を変えれば、Cocoaの開発言語としてAppleScriptがサポートされたとも言える。Cocoaフレームワークのネイティブ言語はObjective-Cであるが、Cocoaにちょっと衣を着せればJavaでも開発ができるようになる。それと同じ感覚だ。ちょっと衣を着せる程度ではなく新たなフレームワークも必要になるが、いずれにしても、CocoaのコンポーネントをAppleScriptでプログラミングできるというのが重要なポイントである。ただ、Cocoaについて知っていればそれはもちろん役に立つが、Cocoa-Javaに比べてCocoaのことはあまり知らなくてもAppleScript Studioではプログラム作成ができる。言い換えれば、AppleScriptのこれまでの雰囲気に近いので、そういう意味ではCocoaであることはあまり意識はしなくてもいいだろう。

そういうことで、いろいろ説明すべきことはあるのだが、実際にどうなるかを見て見よう。サンプルとして、さりげなくInDesign 2.0Jを使うが、未発売ソフトである点は申し訳ない。ただ、今後はInDesign向けユーティリティのようなものがAppleScript Studioで作られることになると思われるので、ちょっと先取りさせていただいた。以下、ダイアログボックスで行列数やサイズを指定すると、それに対応した表を、挿入ポイントの位置に作成するというアプリケーションを作成してみたい。
Project Builderで、「ファイル」メニューから「新規プロジェクト」(Command+shift+N)を選択すると、次のようなプロジェクトのテンプレートを選択するダイアログボックスが表示される。AppleScriptものが3つあるが、ドキュメントベースのものまである。

◇テンプレート「AppleScript Application」を選択する
 

続いて、作成するプロジェクト名と、フォルダを保存する場所を指定する。これは今まで通りである。

◇保存するフォルダとプロジェクト名を指定する
 

作成されたプロジェクトをまずは中身をチェックしよう。Application.applescriptというファイルがある。.applescriptという拡張子が、AppleScriptプログラムファイルの拡張子ということであるようだ。そして、MainManu.nibファイルがある点も大きな特徴だろう。つまり、Interface Builderで編集するnibファイルで、ユーザーインタフェースを定義できるのである。

◇作成されたプロジェクト
 

プロジェクトの中には、AppleScriptKit.asdictionaryというファイルもある。これは、AppleScript Studioで使う用語辞書である。いわばヘルプ機能ではあるのだが、ここでは.asdictionaryのファイルとして、辞書を追加できるということのようである(実際に作って試してはいないので勘違いかもしれないが…)。作ったアプリケーションのAppleScript対応というのはまた問題が別になるので、とりあえずこういうファイルもアリという点がチェックポイントだ。

◇AppleScriptの用語辞典ファイルもある
 

他には、main.mというファイルがあるが、これはObjective-Cでのソースであり、アプリケーションのインスタンス生成に必要なものである。これは別に修正する必要などはないので、気にすることはない。またフレームワークも組み込まれているが、ここでは2つのフレームワーク岳を使うという設定になっている。
さて、MainMenu.nibファイルは、アプリケーション設定によって指定されているため、このアプリケーションを起動すると自動的にロードされる。そこでインスタンス化が設定されているクラスは自動的にインスタンス化されるのである。さっそく、MainMenu.nibファイルを開いてみてみるが、今までに見てきたCocoaアプリケーションと大きな違いはない。ここでは一般のアプリケーションなので、メニューとウインドウがそれぞれ定義されている。ウインドウは自動的に開かれるようになっている。

◇MainMenu.nibを開いたところ
 

さっそくユーザインタフェースを作って行くことにしよう。行列数やサイズは、NSTextFieldを使うことにする。ガイドラインを見ながら4つのNSTextFieldと、1つのNSButtonを配置した。ここまでは単に配置しただけだ。もちろん、Attributesの類いは自由に設定をしていい。

◇テキストフィールドとボタンを並べた
 
(この項続く)
関連リンク