Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

AppleScript Studioの歴史

Posted on 5月 13, 2020 by Takaaki Naganoya

2002年に発表されたAppleScript Studioは、MacのGUIアプリケーションをXcode(当時はProject Builder+Interface Builder)上でAppleScriptを記述することで開発できるようにするという、画期的な存在でした。Classic MacOS上でApple純正のGUIベースのAppleScriptアプリケーション開発環境が用意されてこなかった状況と比べると大きな進歩といえました。

ただ、AppleScript Studioについては、当初は大規模なプログラム開発のノウハウが蓄積されておらず、いろいろ苦労させられました(プログラムを1行足すと構文確認できなくなる/動かなくなるなど、いろいろ神経がすり減る苦労を)。

のちに、AppleScriptの分割化や、分割したScriptを読み込んだScript Objectのメモリ上からのパージを明示的に行うことで安定性を格段に向上させるというノウハウが編み出され、Mac OS X 10.5の時代にはかなり安定してユーティリティ的なGUIアプリケーションを手軽に開発できていました。

AppleScript Studioは、旧NeXT系のProject Builder+Interface Builder(現・Xcode)にFaceSpan互換のAppleScript用語辞書を用意したものだと分析しています。

FaceSpan自体が1994年のAppleScript登場に合わせてリリースされているため、おそらくApple側からの技術支援があったものと想像していますが、関係者に確認したわけではないので正確な話はわかりません。

2008年ごろにLate Night SoftwareがFaceSpanを買収し、自社製品としてリリースするという動きがありました。当時、AppleScript Studioに対して「Xcodeの一部の機能しか利用できないのに、マスターするのにXcodeの機能の多くを知る必要がある。関係のない機能だらけの開発環境を使うのが苦痛」といった否定的な意見がユーザーの間にあり、それを汲み取ったものと見ています。

ここで、AppleがAppleScript Studioを廃止するという動きはキャッチできなかったのでしょう。もし、AppleScript Studioがもう少し継続されていたら、AppleScript Studioと文法的にほとんど同じ互換環境で、かつXcodeを使わずにGUIアプリケーションが作れる状況が作り出せたのでしょう(安定性がイマイチでしたが悪くない印象でした)。

AppleScript Studioについては、macOS最新バージョンであるmacOS 10.15においても、

tell application "System Events"
	set sRes to system info
end tell

とすると、返ってくる情報の中に「AppleScript Studio version:”1.5.3″」とあり、AppleScript Studioで作られたアプリケーションであっても64bitバイナリであれば実行できます。これは主にAutomator Actionのサポートのために残されている機能だと思っています。

# macOS 11.0でも「AppleScript Studio version:”1.5.3″」が返ってきます(Intel Mac)

現在のXcode上でGUIアプリケーションを作成するAppleScriptObjCとAppleScript Studioを比べてみると、双方ともに長所・短所があります。ドキュメントと最低限度のサンプルコードが用意されており、デバッグが(10.5上では)まともに動作していたという点ではAppleScript Studioも悪くなかったと思います。

その反面、箱庭環境が箱庭すぎて、Mac OS X側にあらたなGUI部品が追加されてもサポートされず、AppleScript Studioで作るアプリケーションの「見た目」がけっこう残念になってしまうという欠点もありました。


▲いかにもAppleScript Studioで作成したツール。みすぼらしくはないものの、派手さは一切ない。当然のことながらDarkMode非対応

当初サポートされていなかった機能が追加されたという話も聞きません(Xcode 2.5から3.2.6までAppleScript用語辞書の内容にほぼ変更なし)。さらに、AppleScript Studioランタイムの癖が強くて、通常のAppleScriptとは挙動が大幅に違う(class ofでクラスを求められないとか、Finder上のselectionを取得できないとか)といった難点も解消されませんでした。


▲AppleScriptObjCによるアプリケーション例(Kamenoko)。Toolbarを導入しており、Dark Modeに対応している

AppleScriptObjCについては、ドキュメント類はどうせ今のAppleには作れないので期待できませんが、エディタ上での構文色分けのサポートと、デバッグ機能がないのはきつい感じがします。アプリケーション開発時、デバッグ機能が弱い(logコマンドで出力するとか、ファイル書き出しして分析するしかない)というのは割と困りものです。

(Visited 311 times, 1 visits today)

More from my site

  • 指定アプリケーションのバイナリアーキテクチャ判定指定アプリケーションのバイナリアーキテクチャ判定
  • [超危険]macOS 12.3 beta3、errOSAInternalTableOverflow多発[超危険]macOS 12.3 beta3、errOSAInternalTableOverflow多発
  • 天皇誕生日の計算天皇誕生日の計算
  • 2D List内で検索してヒットした情報をすべて返す2D List内で検索してヒットした情報をすべて返す
  • 漢字をパーツに分解して部品が共通する文字を検索漢字をパーツに分解して部品が共通する文字を検索
  • 1888年1月1日以前の日付が-1日になる問題の原因1888年1月1日以前の日付が-1日になる問題の原因
Posted in History | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • AppleScriptによるWebブラウザ自動操縦ガイド
  • macOS 13, Ventura(継続更新)
  • ドラッグ&ドロップ機能の未来?
  • Intel MacとApple Silicon Macの速度差〜画像処理
  • macOS 12.x上のAppleScriptのトラブルまとめ
  • マウスの右クリックメニューをカスタマイズするService Station
  • macOS 12.3 beta 5、ASの障害が解消される(?)
  • PFiddlesoft UI Browserが製品終了に
  • CotEditorで選択範囲の行頭にある数字をリナンバーする v1
  • SF Symbolsを名称で指定してPNG画像化
  • 不可視プロセスで表示したNSAlertを最前面に表示
  • 与えられた自然言語テキストから言語を推測して、指定の性別で、TTSキャラクタを自動選択して読み上げ
  • 新刊発売:AppleScriptによるWebブラウザ自動操縦ガイド
  • macOS 12.3 beta4、まだ直らないASまわりの障害
  • Safariで表示中のYouTubeムービーのサムネイル画像を取得
  • Pixelmator Pro v2.4.1で新機能追加+AppleScriptコマンド追加
  • macOS 12のスクリプトエディタで、Context Menu機能にバグ
  • macOS 12.3上でFinder上で選択中のファイルをそのままオープンできない件
  • SafariでブックマークされたURL一覧を取得
  • 人類史上初、魔導書の観点から書かれたAppleScript入門書「7つの宝珠」シリーズ開始?!

Tags

10.11savvy (1102) 10.12savvy (1243) 10.13savvy (1391) 10.14savvy (586) 10.15savvy (434) 11.0savvy (274) 12.0savvy (166) 13.0savvy (21) CotEditor (60) Finder (47) iTunes (19) Keynote (97) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (21) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (42) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (118) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSUUID (18) NSView (33) NSWorkspace (20) Numbers (55) Pages (35) Safari (40) Script Editor (20) WKUserContentController (21) WKUserScript (20) WKWebView (22) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC