■シンプルな計算機を作る 前回、AppleScript Studioがどういうものか簡単に紹介したが、あれだけでは具体的にどのようなものなのかイメージしにくかったことだろう。今回は、実際にアプリケーションを作成しながら、開発の仕組みを見ていくことにしたい。 例として作成するのは、簡単な電卓プログラムだ。数字と四則演算のキーが並び、それらを押して入力し計算を行なう。ただし、普通の入力方式だとちょっとスクリプトが面倒になるので、いわゆる逆ポーランド方式(数字を入力して演算キーを押すと、既にある結果に対して演算を行なう)のものにしよう。では、順を追って説明していきたい。 ・プロジェクトの作成 開発は、まずProject Builderを使ってプロジェクトを作成するところから始まる。Project Builderから「新規プロジェクト」メニューを選ぶと、作成するプロジェクトの種類を選択する画面が現れる(画面1)。ここで「AppleScript Application」というのを選び、名前などを入力すると、AppleScript Studioによるアプリケーションのプロジェクトが作成される。 作成されたプロジェクトには、AppleScriptのスクリプトファイルの他、さまざまなファイルがあらかじめ用意される。中でも重要なのは「MainMenu.nib」というファイルだ。これはInterface Builderのファイルで、このアプリケーションで使われるウィンドウ/メニューといったGUIのデータが組み込まれているファイルなのだ(画面2)。
・インターフェイスのデザイン このMainMenu.nibファイルをダブルクリックすると、Interface Builderが起動し、何もないウィンドウ1枚からなるGUIのデザイン画面が現れる。このウィンドウにさまざまな部品を配置して画面をデザインしていく。 部品の配置は、「パレット」と呼ばれる部品のテンプレート集から必要なものをマウスでドラッグ&ドロップして行なう。このパレットは部品の種類ごとにジャンル分けして整理されており、初期状態で50個以上のものが用意されている。 今回は、「NSTextField」というテキストを入力/表示する部品を2つと、「NSMatrix」という複数の部品を配列のように組み込んで利用する部品を2つ作成してみた。画面3が、ウィンドウに部品を配置した状態だ。ややわかりにくいが、ずらりと並ぶボタン類のうち、数字キーと「C」「AC」キーは縦4列×横4行にボタンを並べたNSMatrix、四則演算キーは縦1列×横4行に並べたNSMatrixとなっている。NSMatrixは、こんな具合にいくつもの部品を一元的に管理できるのだ。
・配置した部品の設定 作成した部品は、Infoウィンドウというものを使って細かな設定を行なえるようになっている。画面4が、設定中の画面だ。これはNSMatrix内に組み込まれているボタンの1つを選択し、その表示テキストを変更しているところ。右にあるInfoウィンドウに、選択した部品に関する細かな設定情報が表示されているのがわかるだろう。このようにInterface Builderでは「編集する部品を選択する」「その部品の設定がInfoウィンドウに現れる」「設定を変更する」という手順で、部品の細かな状態や動作を変更できる。 ここまでの作業は、AppleScript StudioだけでなくProject BuilderとInterface Builderを使ったすべてのアプリケーション開発で共通している。どんな開発言語を使う場合でも、これらの作業はまったく同じなので、使う言語に関わりなく情報交換やデザインしたGUIデータのやり取りが可能になる。Javaで開発していたプログラムのGUIをAppleScript Studioで再利用する、なんてことが簡単に行なえるのだ。
■AppleScript Studio特有の作業 基本的なデザインができたら、次にソースコード(AppleScriptのスクリプト)の作成をする。ここで、AppleScript Studioとその他の言語では作業が分かれてくる。 他の言語(Objective-CやJava)の場合、「接続」と呼ばれる方式で、使用するオブジェクトやイベント類を関連づけていく。これはCocoaアプリケーション特有のもので、作成したプログラム(クラス)内のメソッドや変数が、デザインしたGUIのどの部品やイベントに相当するかということを1つ1つ関連づけていくのだ。これは、まぁ慣れてしまえば直感的でわかりやすいのだが、初めて開発を行なう人には何をやってるのかさっぱりわからない感がある。少なくとも、その原理をしっかり理解しておかないと自由に扱えるようになるのは難しいだろう。 AppleScript Studioの場合は、もっと直接的で明確だ。Infoウィンドウに用意されているAppleScript専用の設定画面を呼び出し、そこに表示される一覧から使用するイベントとスクリプトファイルをチェックしていけばいいのだ(画面5)。実にわかりやすい。
AppleScript Studioの場合、「あらかじめ用意されたイベントの中から必要なものを選んで使う」という仕組みなので、このような「一覧から選ぶ」というシンプルな設定で済んでしまう。反面、用意されているもの以外はまったく使えない。このあたりの割り切りのよさがAppleScript Studioの長所でもあるし欠点でもある。「ここまではできます、ここから先は一切できません」というのがはっきりしていて、できる範囲内では非常にわかりやすく単純に設計ができるように考慮されているのだ。 こうしてAppleScriptに関する設定が完了したら、最後にProject Builderに戻ってスクリプトを記述すればいい。あらかじめ用意されているスクリプトファイルを開き、そこにスクリプトを書き込むのだ。今回の電卓アプリのスクリプトを以下にあげておこう。
AppleScriptのスクリプトは「ハンドラ」と呼ばれるものの集まりとして構成されている。ハンドラというのは、一般にサブルーチンとかメソッドといったものに相当するもの。1つのスクリプトファイルには複数のハンドラが用意でき、必要に応じてハンドラを呼び出して処理を実行する仕組みになっている。 ハンドラは、通常「on ハンドラ名」で始まり「end ハンドラ名」で終わる。つまり、ここでは「clicked」「typeNum」という2つのハンドラが用意されているわけだ。clickedハンドラはボタンをクリックした時に呼び出されるもので、typeNumは数字キーを押したときの処理をまとめたものだ。 詳細は脇に置くとして、スクリプトを記述して完成したプロジェクトを実行してみよう。画面6が起動した電卓アプリの画面だ。数字を入力し、「+」ボタンを押すと、その数字が上段の数字に加算される。同様に「数字を入力して演算キーを押すと、下段の数字が上段の数字に演算される」という形で計算がされる。慣れるまではちょっとわかりにくいかも知れないが、「この程度のスクリプトで十分使える電卓が作れるのだ」ということは感じてもらえただろう。
■AppleScript Studioの用途とは? 今回のスクリプトは、基本的に「2つのフィールドから数字を取り出す」「押したボタンのタイトルを調べ、それに応じて計算の処理をする」「最後に変更された値をそれぞれフィールドに書き出す」という作業を、押したボタンの種類に応じて行なっているだけだ。AppleScriptの具体的な文法などはわからなくとも、リストをよく読めばやっていることはなんとなく想像がつくはずなので、ざっと眺めてみて欲しい。 ざっとアプリ作成の過程を紹介したが、開発部分に関しては非常にわかりやすくできていることはわかった。では、作られたプログラムに欠点などはないのだろうか。 実際に使ってみると、それほど多量の処理でなければ、ほとんど一般的なアプリと変わらないレベルで動くことがわかる。メニューやウィンドウといったものはまったく普通のアプリと変わらず使えるし、反応も速い。 だが、実際の処理速度は本格言語で作られたプログラムと比べるとかなり劣る。例えば数十MBのテキストを処理するような場合、perlなどを使えばあっという間のものがAppleScriptでは数分かかる、ということもザラだ。そういう点では、AppleScript Studioは向き不向きがはっきりした開発環境といえる。 コンピュータを使っていると、多量のデータを処理したり、同じことを何度となく繰り返して行なったりすることがよくある。それほど複雑ではないけれどかったるい作業。 そうしたものをちょちょいとやってくれる簡単なプログラムがあれば……と思っても、「じゃあC言語で書けば?」といわれては困ってしまう。例え本格言語をかじったことがあっても、そんなものに仕事を放り出して3日も徹夜しなきゃならないとしたら、毎日「面倒だ」とぼやきながら、かったるい作業を続けたほうがマシと思うだろう。 だが、「3時間もあれば作れる」というならどうだろう。ちょっと作っておくか、という気になるんじゃないだろうか。AppleScript Studioは、まさにそうしたことにうってつけのものなのだ。 さて、次回はUNIXコマンドやSOAPサーバの利用、Cocoaフレームワークを直接コールするテクなどを紹介し、AppleScript Studioの可能性について検証していこう。 □関連記事 (2003年1月28日) [Text by 掌田津耶乃]
【PC Watchホームページ】
|
|