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

2022年に書いた価値あるAppleScript

Posted on 12月 27, 2022 by Takaaki Naganoya

2022年に使用していたmacOS:macOS 12→13

毎年行なっている、Piyomaru Softwareが書いたAppleScriptの1年を振り返る記事の2022年版です。

→ 2018年に書いた価値あるAppleScript
→ 2019年に書いた価値あるAppleScript
→ 2020年に書いた価値あるAppleScript
→ 2021年に書いた価値あるAppleScript

2022年も大変な1年でした。macOSやApple純正アプリケーションのバグが発生したり治ったりのジェットコースター状態。macOS 13.0についても「冗談だよね?」という出来で、

 「もう、OSがアップデートされて半年ぐらい待たないとリリース状態にならないのかも?」

と感じるものです。

13.1でずいぶんまともになりましたが、13.1の出来になってからリリースすべきなのでは? というところ。

たいした追加機能がない割にバグがその数十倍もてんこもりについてくるのは、どうなんでしょう? Appleは機能を開発しているのではなく、もはや「いやがらせのための機能」や「新たなバグ」を開発しているメーカーであるように感じます。β版の段階で開発者/ユーザーが検証して「この新たな嫌がらせの機能は納得できない」とフィードバックしないと、延々と嫌がらせのための機能が増えてくるので、油断できません。

macOS 13のシステム設定も、警告音のフォルダにサウンド以外のAppleScript書類を入れても警告音一覧にそれが出てきてしまうので(さすがに再生はできない)初心者が作るへっぽこアプリケーション並みの作りになっていることが見て取れます。

本を書きまくった1年?

今年執筆した書籍はおよそ、41冊。いま書いている「Mail.app Scripting Book With AppleScript」が年内に書きあがれば(無理無理無理無理)42冊。

ピークの4月は1か月間に8冊。3日に1冊のペースで出していました。感想やら何やら事前に読んでいただいているEdama2さんのご協力に感謝しています。本当にありがとうございます。

「基礎テクニック集」は、今年あらたに立ち上げた書籍シリーズで、「こういうのがないとダメなんじゃないか?」という議論の中から生まれた、基礎を重点的に解説する本です。まだ、書いていない積み残したテーマがあるので、続く感じでしょう。

「実践テクニック集」は、前述の「基礎テクニック集」ではおさまりきらない大きなテーマを扱うシリーズとして立ち上げました。「GUI Scripting」はまとめておくべき大きなテーマであり、方向性やノウハウやツールの使い方など(UI Browserなど)を徹底的に紹介しています。

2022年に書いた価値あるAppleScript

そんなわけで、本ばかり書いていたので毎日KeynoteやPagesばかり使っており、これらのアプリケーションを操作するAppleScriptが必要になったら書いて作業を効率化するという繰り返し。本数はそれほど多くないものの、けっこう強力なものがそろっています。

一方で今年書いたAppleScriptで価値あるもの……といったときに、月ごとにリストアップする形式に無理を感じるようになってきたので、毎月1本といった固定形式にせず、適宜リストアップします。

・AS関連データの取り扱いを容易にする(はずの)privateDataTypeLib
オブジェクトからデータを取り出すのにデータアクセス文字列で指定するという試みです。この手の仕組みがないと、プログラムが冗長になりがちなので用意してみようかというお話しです。

・Bundle IDで指定したアプリケーションのSDEFからコマンドを抽出テスト(指定コマンドのコマンド属性取り出し)
・Bundle IDで指定したアプリケーションのSDEFからオブジェクトを抽出
・Bundle IDで指定したアプリケーションのSDEFからXPathで指定したClassにアクセス v2
アプリケーション内蔵のAppleScript用語辞書を解釈して、Scriptを自動生成するための試みです。割とできるようになるんじゃないかと思っていますが、まだ基礎実験を行なっているだけの状態です(そういうの多いな!)

・Keynoteの表で選択中のセルの文字列長さを一覧表で表示
自分の書いた本の既刊分の説明文をKeynoteの表に入れ、文字が多いとか少ないといった「ゆらぎ」を調べるためのものです。決められたスペースに入れなくてはならないので、この手の細かい作業は割と発生し、こうした確認用Scriptをいったん作っておけば次回からはきわめて短い時間で作業できます。

・Keynote上でテキストアイテムとn重のシェープの重なりを検出 v2
ある意味、Cocoaの機能とGUIアプリケーションの機能をブレンドした内容で、GUIアプリケーションの機能だけでは実現できなかった処理です。矩形オブジェクトが2重とか3重に重なっている場合に検出するというのは、半透明のオブジェクトを重ねて何かを表現している中で生まれたものです。

・Keynote書類中のスライドのトビラページを推測する
Keynoteのマスターページの名前の分布から扉ページを推測するというものです。自分の作る本の傾向を反映させたもので、どの人でも普遍的に使用できるわけではありませんが、、、。

・RectangleBinPackを用いて2D Bin Packを解く v2.3
2D BinPackは、指定の矩形エリア内に指定の複数のオブジェクトを最適化配置して詰め込むもので、KeynoteのようなGUIアプリケーションに対して実行できるのは、非常に効果的です。

・Safariで表示中のYouTubeムービーのサムネイル画像を取得
本当は指定の再生ポジションのサムネイル画像を取得したかったのですが、まだそこまで研究が進んでいません。

・Keynoteの最前面の書類の現在のスライド上の表オブジェクトの重なり合い(2つ以上対応)を検出 v3
これは、書籍に添付しているコマンド表が重なって配置されるという「事故」から、それを検出するScriptを作成したものです。Keynoteの表オブジェクトだけでなく、他のアプリケーションの他のオブジェクトの重なり合わせも検出できることでしょう。

・書籍フォルダの階層をさかのぼって、ツメに掲載する最大チャプターを推測 v2
Pages書類が入っているフォルダの親フォルダをたどって、そのフォルダに記入されている章の数字から最大のものを計算することで、ツメ(ページ端に記載するインデックス)の大きさを変更するものです。ツメをつけると可読性が上がる本がある一方で、ツメの作成や変更を手作業で行うなんて耐えられません。そういうものこそAppleScriptで自動処理させるべきです。

・リストに入れたテキストで、冒頭に入ったマルつき数字をリナンバーする
丸つき数字のリナンバーは、つまらない内容の割に手間がかかる作業であり、これも手作業を撲滅したい内容の上位に入ってくるものです。

・与えられた自然言語テキストから言語を推測して、指定の性別で、TTSキャラクタを自動選択して読み上げ
この手の処理は、AppleScriptのコマンドレベルで普通にできてほしい内容です。ないので自分で書きましたが、macOS 13でText To SpeechキャラクタのID周りに手が入って、これも書き直さないといけないかもしれません。

・Intel MacとApple Silicon Macの速度差〜画像処理
内容はもちろんタイトルどおりですが、これでM1を集積したM1 ProであるとかM1 Ultraの処理性能がメーカー側が言うほどリニアに向上しているわけではないことがわかりました。つまり、M1よりもそれらの上位CPUの方が「処理が遅くなるものもけっこうある」ということです。ここから、M1世代でM1を集積したMac Proが出たら、相当にM1よりも遅い処理が出てくるのでは? と噂していたものですが、作ってはみたもののキャンセルされたようなので、見立て通りといったところだったのでしょう。

2022年の出来事(macOSのバグ以外)

UI Browser 3の開発と販売が終了し、LateNight Softwareに移管された、というのが1つの大きな流れです。Swiftで書き直されたUI Browser 4についてはgithub上でオープンソースで開発が継続されています。

そして、Font Book.appがMac Catalystのアプリケーションに変更され、それにともなってAppleScript用語辞書が削除されました。これが復活するのかどうかは不明ですが、ここに新たに「Catalyst堕ち」という言葉が爆誕。Mac Catalyst化=機能低下バージョンという方針が明らかになってきました。

今年参加したコンテストはFileMaker Proの「バカスタム App選手権」。これに入賞しています。

More from my site

  • 日付変更通知日付変更通知
  • display drop dialogライブラリをv1.5にアップデートdisplay drop dialogライブラリをv1.5にアップデート
  • Finder上で選択中のASバンドル書類をオープンしてscpt形式で再保存Finder上で選択中のASバンドル書類をオープンしてscpt形式で再保存
  • 新刊発売 AppleScript最新リファレンス v2.8対応新刊発売 AppleScript最新リファレンス v2.8対応
  • Keynote/Pages/Numbers v13.2がリリースされるKeynote/Pages/Numbers v13.2がリリースされる
  • ファイルサイズの取得(symbolic link解消あり)ファイルサイズの取得(symbolic link解消あり)
(Visited 235 times, 1 visits today)
Posted in news | Tagged 12.0savvy 13.0savvy | 1 Comment

1 thoughts on “<span>2022年に書いた価値あるAppleScript</span>”

  1. 1/29/24
    10:35 AM
    2024年1月29日
    10:35 AM

    Reply

    2023年に書いた価値あるAppleScript – AppleScriptの穴 says:

    […] 2022年に書いた価値あるAppleScript […]

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

  • アラートダイアログ上にWebViewで3Dコンテンツを表示(WebGL+three.js)v3
  • Xcode 14.2でAppleScript App Templateを復活させる
  • ChatGPTで文章のベクトル化(Embedding)
  • ChatGPTでchatに対する応答文を取得
  • macOS 14, Sonoma
  • Dockアイコンにプログレスバーを追加 v3
  • 画像をExcelのワークシート上に配置
  • 指定のアプリケーションの実行アーキテクチャを変更
  • 出るか?「AppleScript最新リファレンス」のバージョン2.8対応版
  • 指定画像をbase64エンコード文字列に変換→デコード
  • macOS 14の変更がmacOS 13にも反映
  • 新刊発売 AppleScript最新リファレンス v2.8対応
  • 当分、macOS 14へのアップデートを見送ります
  • Cocoa-AppleScript Appletランタイムが動かない?
  • Claris FileMaker 2023がリリースされる
  • AppleScriptによるWebブラウザ自動操縦ガイドをmacOS 13対応アップデート
  • 新発売:AppleScript基礎テクニック集(29)セキュリティ機能解除
  • macOS 13の複合的な不具合。とくにPDF書き出しについて
  • macOS 14, Sonoma 9月27日にリリース
  • ディスプレイをスリープ状態にして処理続行

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1390) 10.14savvy (586) 10.15savvy (434) 11.0savvy (278) 12.0savvy (190) 13.0savvy (77) 14.0savvy (20) CotEditor (61) Finder (48) iTunes (19) Keynote (100) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (41) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (117) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (57) Pages (39) Safari (41) Script Editor (22) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • 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
  • rectangle
  • 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)
  • 未分類

アーカイブ

  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 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