質問 AppleScriptのユーザインターフェイスには「display dialog」程度のものしかないと思うのですが、HyperCardのようにフィールドやボタンを持ったインターフェイスを自由に作ることはできないでしょうか。
回答 AppleScriptの基本機能だけでは、おっしゃるように単純なダイアログによるユーザインターフェイスしか実現できません。しかし種々のソフトウェアを別途用意することで、AppleScriptの外観を大きく変更することができます。使用するソフトウェアには、以下のようなものがあります。
「HyperCard」は、HyperTalkという専用のスクリプト言語を持っていますが、オブジェクト毎のスクリプト言語をHyperTalkとAppleScriptから選択することができます。このため、HyperCardのユーザフレンドリーなインターフェイスをそのままAppleScriptで使用することができるのです。
- HyperCard
- FaceSpan
- DialogDirector
- DialogRunner
HyperCardを用いる利点としては、HyperCard(またはそのPlayer)を所持している人が多いこと、関連書籍が充実していること、フリーであることなどが挙げられます。しかし後述する「FaceSpan」に比べて機能が少なく、AppleScript用のデバッガがないため複雑なスクリプティングが難しいなどの欠点があります。
「FaceSpan」はAppleScript専用に開発されたGUIビルダであり、ドラッグ&ドロップに対応するなど機能が非常に充実しています。もちろんデバッガもAppleScript専用であり、検索置換なども可能です。開発者には利用している人も案外多く、これを用いて制作された商用アプリケーションも存在しています。
欠点としては、現在のバージョンが英語版のみであること、個人輸入が必要であること、値段がそこそこするので気軽に購入できないこと、所有しているユーザが極端に少ないこと、関連書籍がないこと、動作が遅いことなど枚挙にいとまがありません。ただし、商用利用としてはFaceSpanの機能拡張やOSAXをファイルに収めることもできるため、所有者が少ないことは欠点にはならないと思います。
「DialogDirector」はスクリプティング機能追加(OSAX)であり、AppleScriptにインターフェイスを付加するためのものです。一般的なウィンドウからフローティングパレットに至るまでさまざまなインターフェイスをスクリプトで記述できますが、複雑なものになればなるほどスクリプティングも困難であり、初心者にはむしろ扱いにくいかもしれません。
「DialogRunner」もDialogDirectorと同じくOSAXですが、これはすでに存在するダイアログリソースを実行し、その結果を返すだけのものです。DialogDirectorに比べて機能では数段劣りますが、ダイアログのデザインにはResEditなど既製のリソースエディタを使えること、スクリプトが単純になることなど、比較的扱いやすいのが特徴です。
使い分けについてですが、自分だけで使うなら用途に合わせて併用するのが一番です。とりあえず凝ったものは組みたいが安価に済ませたいならOSAXとHyperCard、簡単で動作の速いスクリプトを組みたいならOSAX、外見や機能性に凝りたいならFaceSpanがいいでしょう。フリー・シェアウェアを作成するなら、容量が小さくてすむOSAXやHyperCardスタックが望ましいですが、高機能なものを作るならFaceSpanがいいかもしれません。
また商品を製作するなら、FaceSpan機能拡張や必要なOSAXをファイルに内包できるFaceSpanが確実ですが、インストーラを自作するならHyperCardなども十分実用に耐えると思います。
以上です。