Welcome to AppleScript Develper

Contents

What is AppleScript Developer?

これはUserland Frontierを用いた、AppleScriptの開発環境です。スクリプト編集プログラムの機能が余りにも貧弱なので、その代わりとして作りました。スクリプト編集プログラムの代わりに使うメリットとしては

  1. 検索が出来る。
  2. Userland Frontierの強力なoutline形式のscript editorを利用できる。

という事があげられます。デメリットとしては、

  1. スクリプト編集プログラムにおける“履歴”のようなDebug機能が使えない
  2. 日本語表記が使えない
  3. 初期画面を表示するApplication Typeのscriptが作れない。
  4. scriptの実行後、自動的に終了しないApplication Typeのscriptが作れない。

といったところです。"履歴"の様なDebug機能が使えないのはどうしようもありませんが、それ以外は改善の余地があります。しかし現在実現されていない機能は、自分自身がほとんど必要としないため、特に誰かが要求してくれないかぎり作るつもりはありません。だいたい、自分以外が使っている様子はないし・・・・

Required Components

  1. AppleScriptが実行できる環境。
  2. Userland Frontier 5.0.2b20

Frontier5に対応し、もうFrontier4.2.3では動きません。私は、Frontier5.0.2b20を使っています。多分Frontier5.0.1でも動くと思いますが、何か問題がありましたらご一報ください(試していません。ごめんなさい)。

How to install

Finder上でPacked FIle Icon をDouble Clickしてください。するとFrontierがsuite.AppleScirptDeveloperというTableをimportするかどうか聞いて来ますので、そこでOKとすれば無事installが終了します。 

What is Userland Frontier?

このScriptそのものはFrontierおよび、UserTalkについて、知らなくても使えると思いますが(多分)、Frontierについては少しばかりの予備知識は必要かと思われます。私が、Frontierについて解説するのはおこがましいとは思いますが(まだまだ初心者です)、Frontierについてまったく知らないAppleScript Userにむけて簡単に書きたいと思います。

Frontierとは、もう一つのAppleScriptとでもいいましょうか、Userland Softwareからreleaseされているscripting環境です。とうとう最新のversionはfreeではなくなってしまいましたがversion5.0.1はfreeで使えます。言語としてはUserTalkと呼ばれる物が用いられます。AppleSciptとの最も大きな違いは、すべてのscriptはobject databaseと呼ばれてる物に格納されている事です(厳密にはそうでない場合もあります)。object databaseとはscriptingのためのもう一つのfile systemとでもいいましょうか、それはfile systemのように階層化され、script自身だけでなく、scriptにかかわるもの全て--文字列から、pict、resourceなどおよそ考え付くもの--を格納することができます。

AppleScriptと比較してFrontierのそのメリット、デメリットは

メリット

  1. 何と言ってもobject database。これのおかげて、より規模の大きいscriptが作りやすくなっています。またcodeの共有化が進みます。
  2. 実行速度が圧倒的に速い。
  3. 極めてrichな開発環境。

デメリット

  1. 日本語のdocementがほとんど無い(英語ならいっぱいある)。
  2. AppleScriptほどお手軽ではない。
  3. AppleScriptほどUserも多くなく、すべての人が実行環境を持っているわけではないので、作ったscriptを配布するには不便。
  4. AppleScriptにおけるScript Objectのようなobjectiveな概念が無い。

と言ったところでしょうか。

また、AppleScriptはobject database中においても実行する事が出来ます。そして、UserTalkで書かれたscriptと連携させる事が出来ますが、そこには幾つか決定的な制限があるので、私自身はAppleScriptをObject Database中において置くことには、ほとんど意味が無いと考えています。従って、このsuite(ある目的のためのscriptのset)はあくまでobject databaseの中で開発されたAppleScriptをexportして使うための物です(そうでなければ、こんなものは必要ないです)。

About Object database

このsuite AppleScript Developerを使うためには、object databaseについて、いくらかの予備知識が必要とされます。先にもobject databaseとはscriptingのためのfile systemのような物といいましたが、file systemにおけるfolderに相当する物はtableと呼ばれます。一番上のtableは“root"と名付けられており、tableの階層はperiodによって示されます。例えば、"root"の中の"user"というtableの中の"AppleScriptDeveloper"というobjectは、"root.user.AppleScriptDeveloper"という風に書きます。ここでrootと言うのは自明ですから、省略する事ができ、一般的には“user.AppleScriptDeveloper"と書かれます。

How to use

Making New AppleScript

Frontierを知らない人を前提にして書きますので、既にFrontierのUserのかたには冗長になると思いますが(その様な方は、こんなものは使わないかもしれません)、我慢してください。

無事installがすむと、Froniterの"Main" menuにあるsubmenu "Suite"にAppleScript Developerという項目が出来ます。それを選択してください。すると、user.AppleScriptDeveloper.tablesというtableが開きます。このtableがdefaultでは作業AppleScriptのための作業スペースです。そして、AppleScriptというmenuが新たにあらわれます。この中に必要なcommandが納められています。menu AppleScript から "New AppleScript..."を選んでください。すると、新たに作るscriptの名前を聞いてきます。

New Script Dialog

取り敢えず"newAppleScript"としましょう。ちなみにここで、入力された名前は、実際にfileとしてobject databaseからexportするときの名前とは無関係です。object database中のobjectに名前をつけるときは、spaceやperiod、等の文字はさけてください。

ここでOKを押すと、user.AppleScriptDeveloper.tablesというtableの中に、newAppleScriptという名前のtableが作られ、そのtableが開かれます。

user.AppleScritptDeveloper.tables.newAppleScriptの中に含まれるobjectが、あなたがこれから作るAppleScriptの構成要素になります。ここに含まれる項目は

scriptの項目だけはしっかりと書いてください(当たり前ですが)。あとは適当でも構いません。

Editing Script

簡単にscript編集windowについて説明します。object "script"の頭にある三角マーク、もしくは"Value"の部分ををDouble Clickするとscript編集windowが開きます。

Script Edit Window

Exporting Script

無事scriptを書き上げたとしましょう。そのscriptをexportします。exportしたいscriptのtableが最前面にある状態、もしくはその上の階層で、exportしたいtableを選択した状態で、Menu AppleScriptから“Export..."を選んでください。すると、Comiled Script fileかApplication Typeのscriptか選択してexportする事が出来ます。

Export Dialog

ここで、Application Typeを選んだとき、script中にopen Handler(すなわち"on open"というstatement)が存在すれば、Dropletとして、exportされます。したがって日本語表記の場合は、まともに動きません。

無事exportする事が出来ると、exportしたtableに"targetAlias"という項目ができて、export先のfileのpathが記されています。ここの値は、まさにFinderにおけるエイリアス程度にexport先のfileとlinkされており、export先のfileを動かしても、それを追跡します。そして新たにscriptに変更を加えてexportするときは、このlinkがきれない限り常に同じfileにexportされます。あえて、別のfileにexportしたいときはMenu AppleScriptから"Export as..."を選んでください。

Importing Script

AppleScript Developerの環境に、既存のAppleScriptをimportするには二つの方法があります。まずは、menu AppleScriptから、"import..."を選んでDialogからFileを選択する方法と、Droplet "Import AppleScript"Frontier Droplet Iconに、これまでスクリプト編集プログラムで作ったscriptをDrag&Dropしてください。user.AppleScriptDeveloper.tablesにimportされます。

Dependence機能

Scriptが他のScriptに依存している場合、例えばPropertyとしてload scriptによって他のscriptを取り込んでいたりすると、まず、そちらのscriptを先にExportしてやらなければ為りません。そういったScriptの依存関係を記述して、もしその依存しているscriptに何らかの修正が加えられていたら、その依存関係に従って先ににExportすると言う事が出来ます。

今、作成しているscriptが他のscriptに依存している場合、DependenceというTableを新たに加えてください。そしてその中に、依存しているScriptのTableのAddressもしくは、AppleScript Tableそのものを書き込んでください。

Dependence Table

Menu AppleScript

Menu "Suite"からAppleScript Developerを選んで、suite AppleScript Developer起動したときにMenubarにinstallされるMenuAppleScriptの各項目について解説します。

Tips

Indent

Indent(字下げ)はTab keyによってできます。IndentのlevelをあげるにはShiht-Tabです。 また行の先頭の三角マークをつかんで、Drag&Dropで行の位置を変えることができます。

Collapse & Expand

FrontierのScript Editorはとても便利です。特に長いscriptを書くのに優れています。

例えば、

Script Editor Tips

のように、より上位のlenelにある行の先頭の三角マークをDouble Clickすることにより、折り畳むことができます。こうしてscriptの細かい部分をかくして、より見通しよく編集作業ができ、長いscriptでも効率良く、目的の場所を探せます。

Comment Out

ふつうAppleScriptのcommentは"--"で始まり、そこから行の終りまでと見なされます。当然、同じことが、Frontier内でもできます。そして、Frontier独自のcomment outの方法も使うことができます。あるぎょうで、command-を押してください。すると、その行からその行の下のlevelも含めて一度にcomment outすることができます。この方法で、comment outした行は、exportしたときには空行になります。

Script Editor Comment Out

History

Limitations and Distribution


Script factory Tetsuro Kurita
scriptfactory@mac.com
This page was last built on Fri, Aug 5, 2011 ; 3:46 PM . Thanks for checking it out!