AppleScriptObjCとは?
Macでいろいろとやっていて、何とかもっと楽をしようとおもう時にはAppleScriptで簡単なプログラムを作って、「ここはMacさん頑張ってね!!」にしてしまうのが楽だったりする。
そのためにはユーティリティーに入っている、AppleScript エディタ を起動していろいろと書く訳ですが、インターネット上にはこの辺りの情報は豊富ですし、ちょっと古くなってきていますが書籍等もあり初めての人でも試してみると何かしら作れたりします。
プログラム本の最初に出てくる『Hello World』を表示するものなら、AppleScript エディタを起動して下の1行をコピーペーストで実行するだけです。
display dialog "Hello World!"
ネット上にはAppleScriptで検索すると、非常に丁寧にまとめていただいているサイトが沢山ありますので、そちらで勉強してみてください。
で、いろいろと作っていると、何工程もYesだNoだとボタンをクリックするのは面倒なのでそれ用のウィンドウを作りたいななどと、インターフェースをいじくりたくなってきたりします。
今まで(OSX 10.5.X)はそういう場合、XCodeのAppleScriptStudioというフレームワークを使って作成していました。これはこれで結構面倒だったりしたのですが、少なくともAppleScriptの作法のまま使えたのと書籍があったのでちゃんと書籍を買ってまじめにお勉強をするとなんとかいろいろと作れるようになっていました。
ところがところがOSX 10.6 になってAppleScriptStudioがなくなり、これからはAppleScriptObjCというフレームワークを使ってねという事になりました。
ところがところこのAppleScriptObjCは文字数ならAppleScriptが長いのだけど、お作法としてはかなりObjective-Cによってます。
なのでどうもAppleScriptの知識だけでの独習では分からない事が多すぎます。
Appleからは『AppleScriptObjC Release Notes』にリリースノートは載ってます。しかし全て英語です。『mytrans マニュアル等の個人的な翻訳』さんが『AppleScriptObjCリリースノート』の翻訳を載せてくれています。しかしこれを読んでAppleScriptができれば直ぐにAppleScriptObjCに移行できるかというとそう簡単には行きません。
私もまぁそのうち何処かから書籍が出るだろうと高をくくっておりました。ところが2009年8月28日販売のMac OS X 10.6 Snow Leopardからもうじき4年が経とういうこの時期、もう10.9の発表があったこの時期になってもまだAppleScriptObjCの日本語の書籍は出版されていないようです。それどころかAmazon.comでAppleScriptで検索してもAppleScript関連でヒットするのは2010年のものが最後という・・・
何ともお寒いAppleScriptObjCの状況。AppleはAppleJapanは・・・。
ちょっと処理ならAppleScriptで問題ないし、UIをちゃんと作ろうと思えばそもそもObjective-Cにいってしまうという事なのでしょうか?。
『AppleScriptObjC Explored』
そんな中で唯一AppleScriptObjCに関して詳解してくれているのが『http://www.macosxautomation.com/』さんの『AppleScriptObjC Explored』というPDFの書籍になります。
現在はバージョンが4となり、Mountain Lion をベースにしたものにバージョンアップされている。
回し者という訳ではないけれど、これがなかったらAppleScriptObjCのアプリは作れなかったな、と素直に思う。というのもそれが仕様であるのバグであるのかとにかくAppleScriptのつもりで何かしようと思うと、いろいろな所で躓くことになります。でネットで調べてみるのだけど分からないという事が多々。そんな時にこのPDF内で検索すると、それらしいコードにヒットして、やってみるとうまく行く、という感じ。チャプタごとのサンプルソースもあるので、一通り実行してみると関連しそうなものを作る時には参考になりますし。私は今子供とNHKの基礎英語の1を聞いていて、そのテキストに出てくる単語がわからなかったりする程度の英語力だったりするのですが、まぁExciteやGoogleさんの翻訳サイトの力を借りて、なんとか読めました。AppleScriptObjCで何かを作ろうという人は取りあえず買っておいて損は無いと思います。
購入はここから出来ます。 $29.95 USD
内容が、という人の為に目次だけを引用させていただきます。
- Introduction
- Acknowledgements
- Chapter 1: Begin Here
- What you need to get started
- Chapter 2: Some Basics
- Terms and concepts you should understand
- Chapter 3: Making Progress
- Welcome to the world of non-modal dialogs
- Animating your progress bars
- Chapter 4: A Simple Table
- Choose from list gets a minor makeover
- Chapter 5: Extra Columns
- Display more data in tables
- Chapter 6: Making it Editable
- Add data entry to tables
- Chapter 7: A Class of Our Own
- Give tables a calculated column
- Chapter 8: Drag and Drop
- How to replace the open handler
- Chapter 9: Life After Idle
- How to replace the idle handler, and using timers
- Chapter 10: Images and Paths
- Deal with images, and with open and save panels
- Loading images from the application bundle
- Chapter 11: Windows and Panels
- open, close, and resize windows, panels and drawers
- Chapter 12: Swapping Views
- Swap and resize windows’ content views
- Chapter 13: Progress Revisited
- Keeping the Ui responsive, and adding a Cancel button
- Chapter 14: Menus and Comboboxes
- Populate menus, make them trigger actions
- Chapter 15: Dealing With Dates
- Convert between AppleScript dates and Cocoa dates
- Chapter 16: Adding Objective-C Code
- expand your toolbox even further
- Chapter 17: Save and Open Panels
- Show them modally and as sheets, and with extra content
- Chapter 18: Alerts and Custom Sheets
- Add polish to your interface, the easy way
- Chapter 19: Notifications
- Be first to know when something happens
- Chapter 20: Saving Preferences
- Use defaults to store your settings
- Chapter 21: Doing Text in Style
- Add color and style to your words
- Chapter 22: Doing it With Documents
- Build document-based applications
- Chapter 23: Browsing with WebKit
- Build a browser and add a toolbar
- Reference Section
- Xcode Basics
- Come to grips with your new programming home
- Interface Builder Basics
- Where a picture saves a thousand lines
- Versions and Snapshots
- Keep track of your changes
- Customizing Xcode Templates
- Set them up your way
- Calling Cocoa Methods
- it all comes down to this
- Passing Arguments
- What Cocoa expects from you
- What Methods Return
- What you can expect from Cocoa
- What Methods Can Return
- Get more than one result from a Cocoa call
- Handlers as Methods
- Call handlers from different scripts
- Instantiating Script Objects
- Make objects you can connect to
- Delegate Objects
- Spread the workload with helpers
- Others’ Properties
- Get and set properties of other objects
- Your Own Properties
- Change your properties in a Cocoa-friendly manner
- Cocoa Bindings
- Meet a scripter’s new best friend
- Referring to Objects
- Make outlets in interface Builder
- The Right Connections
- Make sure you connect to the right objects
- Stuff You Can’t Do
- Know your limitations
- AppleScriptObjC Gotchas I
- Some things you will need to do differently
- AppleScriptObjC Gotchas II
- More changes you will need to make
- Sender, Self and Super
- Three terms you will see a lot of
- Text, Lists and Records
- Stuff you can do with the common classes
- Other Useful Classes
- other Cocoa classes that come in handy
- Types, Not Classes
- They may look like classes, but they behave like records
- Sorting in Tables
- How to make tables sort how you want them to
- From Shell Script to Task
- run shell scripts as tasks instead.....
- Memory Management
- Why you don’t have to put out the garbage
- Trouble-Shooting Tips
- What to look out for
- Resources
- Where to find out more
- Appendix A: Showing Sheets
- Sheets done the hard way
- Index
- Look it up here
これはV2の目次になりますが、全体で180ページほど。なかなか充実した内容かと思います。
何処かの出版者さん、翻訳版を出版しては頂けませんでしょうか?。
追記:20130627 『AppleScriptObjC Explored4』のChapter 3の内容に関して2013/06/24にムービーが公開されたようです。
大筋の操作行程が見えるので、英語を読みながら操作を確認するのに役立つかと思います。
追記:20130627 もう一本、2013/06/05に公開された大変為になりそうな『Giving your AppleScripts a Face Lift with AppleScriptObjC』というムービーがありました。この方はアップルの方なのでしょうか?。何処かでの講演の内容のようですが1時間14分にわたってXcode4でのAppleScriptObjCでのプロジェクトの作成の模様が収まっています。英語がよく分からない私にも大変ためになりました。
なにやら立て続けのムービーのリリース。何かAppleScriptObjCに関して状況が好転してきたのでしょうか?。
『AppleScriptObjC Explorer』
『http://www.macosxautomation.com/』さんのところにはもう一つ『AppleScriptObjC Explorer』というのがのっています。こちらはスクリプトエディタのようにAppleScriptを書く為のアプリケーションです。とはいってもどうやらAppleScriptObjCのコードのデバッグも出来るようです。あると便利かもしれません。・・・まだ使った事が無いのですが。
その他の参考になるサイト
いろいろと検索し直してみたのですが、初めてAppleScriptObjCでAppleScriptを書こうとする人、AppleScriptではいろいろと作っているけどAppleScriptObjCは試してみてない、というひとの為に順を追って説明しているサイトというのはあまり無いようですね。
やっとそれっぽい所が『http://macscripter.net/』のところにあったので以下のリンクだけ。
- AppleScriptObjC in Xcode Part 1
- AppleScriptObjC in Xcode Part 2 - TableView
- AppleScriptObjC in Xcode Part 3 - Customizing Templates
- AppleScriptObjC in Xcode Part 4 - Saving, Updating & Deleting
- AppleScriptObjC in Xcode Part 5 - Converting ObjC to ASOC
その他にもAppleScriptObjC in Xcodeにはいろいろと参考になる事が書かれているような気がします。
日本語では、『ぴよまる』さんの所にAppleScriptObjCに関するいろいろな情報が掲載されていますので参考になる事もおおいでしょう。
あとは『ASH Planning』さんの『AppleScriptObjC 覚書』にはいろいろと示唆に富む内容が一覧という形で載っています。また『Making Application using ASOC』では具体的にコードを載せながら詳解してくれています。初めて読んだ時にはよく分からない事も多かったのですが、自分で手を動かした後に読むと、なるほどと思える事も多く、自分の理解の進捗をはかる目安とさせていただいています。皆さんも一度目を通されることをお勧めします。
それでもAppleScriptStudio
消え行く(既に消えた?)AppleScriptStudioですのでもう思いきってAppleScriptObjCに移行した方がいいのですが、それでもという場合にはOSX10.6でXcode3.2.Xくらいまでだと思うのですが、AppleScriptStudioの環境を復活させる事が出来るとの記事がありました。『ぴよまる』さんの所の『Xcode 3.2.2+Snow LeopardでAppleScript Studio環境を復活させる』です。
基本的には『www.devrandom.za.net』さんのところの『AppleScript-App-Templates-Xcode322.pkg』をインストールして、というものです。
AppleScriptObjCが出たての頃、全く分からなかったので暫くこの環境でものを作ったりしていましたが、基本的には問題なく作れていました。まぁ取りあえず、ということで。
XCode4.6
OS X も10.8からもう少しで10.9になろうとする時期。XCodeも最初に弄っていたのが3.2の頃で今は4.6。勿論いろいろと修正されてバグが減り内容が充実してきているのだろうからそれはありがたいのだが。その反面、XCodeが日本語メニューでなくなってしまったり(AppleScriptStudioの時にも最初は日本語メニューだったのに途中で英語になってしまったことがあったけど)、インターフェースが随分変わってしまったりといろいろとあったりする。ドキュメントが少ないのでそれだけでも結構ストレスになる。まぁ今はiOSが大盛況なので、XCode本はいっぱいあるからXCodeの機能を追うには困らないのかもしれないが、AppleScriptの視線からはなんだかどんどん見えにくくなっているようでなんだか淋しい。
使っている人が少なくなると情報が少なくなるという状況なので、少しでも初めての人の為になるように、なんとか少しでも情報を上げて行きたいと思う。
続くといいのだけれど・・・。
AppleScriptObjC |
ASOCでアプリケーションを作ってみる-01-Xcode3.2 |