Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Scripting Bridge
1. Scripting Bridge
tell every application to objc_msgSend()
Jonathan ‘Wolf’ Rentzsch
http://rentzsch.com
PSIG 111
Red Shed Software
better necessarily means different
2. App Interoperation
• examples: “Reveal in Finder”, “Pause iTunes”
• low-level: AppleEvents; high-level: AppleScript
• Standard Cocoa application interop technique:
• Embed an AppleScript, execute via NSAppleScript
• Lame:
• Slow
• AppleScript logic separated from app (ObjC) logic
Red Shed Software
better necessarily means different
3. Scripting Bridge
• Scripting Dictionary -> Objective-C bridge
• Send AppleEvents by writing ObjC code
• New in 10.5 Leopold
• not to be confused with Bridge Support
• Bridge Support => XML describing all Sys APIs.
for Python+Ruby+F-Script+Nu
• “Faster” than AppleEvents (not really)
Red Shed Software
better necessarily means different
4. How It Works
• sdef /Applications/iTunes.app
• extracts Scripting dictionary as XML
• sdp -fh --basename iTunes
• generates iTunes.h
• ObjC 2 code: properties galore
• Add ScriptingBridge.framework to project
• Make sure project is targeting 10.5
Red Shed Software
better necessarily means different
5. How It Works
• #import quot;iTunes.hquot;
• [SBApplication applicationWithBundleIdentifier:@quot;com.apple.iTunesquot;];
• [app playpause];
• Slow on first message send
• parses target scripting dictionary
Red Shed Software
better necessarily means different