I don’t normally cover jailbreak tweaks here at MacStories, but I’m intrigued by ActivityAction after reading Jeff Benjamin’s preview over at iDownloadBlog.
ActivityAction is a an extension of Ryan Petrich’s Action Menu – one of my favorite tweaks when I had a jailbroken device. ActionMenu extends Apple’s Copy & Paste popup menu with additional actions and services to deal with selected text or an app’s content area. ActivityAction adds a button that lets you set up UIActivity-like actions based on app’s bundle identifier and its URL scheme.
As MacStories readers know, URL schemes are a topic of great interest to me as they’re one of the few ways to make working with iOS devices a faster, more efficient process. As Jeff describes the tweak:
As you saw, ActivityAction requires the bundleIdentifier for the app that you wish to create an action for. This can be easily found with iFile, or with a jailbreak app called AppInfo. ActivityAction also requires a URL (the scheme), and you can use an optional ‘@WORD’ variable, which will replace the selected text in your URL. This selected text is the text that you highlight when invoking ActivityAction using Action Menu. If you don’t use the optional ‘@WORD’ variable, then ActivityAction will automatically append the selected text to the end of the URL, as demonstrated in the video example above.
In the demo, Jeff shows how to select text and send it to Fantastical through a native sharing menu enabled by ActivityAction. It looks very cool.
I’ve argued, of course, that URL schemes aren’t the most solid foundation for the future of iOS inter-app communication:
URL schemes are certainly a stopgap solution to a problem – better inter-app communication on iOS – that I wish Apple will tackle in the near future. However, that doesn’t mean people can’t get real work done with URL schemes and apps today. Looking ahead, I can only imagine new possibilities of iOS automation based on URL schemes that, however, abstract the need of manually building URLs from the end user’s workflow – using a more Automator-like interface to visually represent actions. And, who knows, perhaps in a future version of iOS “switching” between apps won’t even be required anymore, as “parts” of other apps will be linked to each other using something like XPC.
The second point – betting on XPC as a system to improve upon how apps can communicate with each other – is only speculation on my side. As developers discovered after the release of iOS 6, Apple is already using XPC for the Mail sharing panel: apps that have a “Send via Mail” feature can show an embedded Mail.app window that is actually a separate process handled by iOS itself. With this solution, the user isn’t yanked out of the current app but is still shown part of another native app, including its interface and features. This is probably the most user-friendly solution for Apple: imagine being able to remain within Drafts when sending text to other apps, rather than being taken around a multitasking merry-go-round as it currently happens.
URL schemes aren’t the way of the future, but they work today. You can create bookmarklets to send text from the browser to other apps, or set up Drafts actions that chain multiple apps together. URL schemes allow me to get work done faster on the iPad every day, and I can’t deny that.
ActivityAction is like a system-wide, better-looking version of Mr. Reader’s new sharing menu, made possible by the modifications to iOS a jailbreak can do. Like Mr. Reader, ActivityAction is another take on the old concept of a Services menu for iOS; it obviously requires a manual setup from the user, but I bet most jailbreak users wouldn’t have a problem with that.
I won’t jailbreak my device just to try ActivityAction, but I think it’s a great idea for the current state of iOS. I’ve always thought iOS 6’s more “visual” sharing menu was a good improvement, but unfortunately it’s still limited to Open In actions, which are not the solution for iOS’ lack of an inter-app communication system. ActivityAction looks like a fine solution for selectable text, but it doesn’t solve the problem of apps sharing data back and forth besides text – that is, you can’t “save a tweet” from Tweetbot to Evernote, unless you use the system clipboard to store the tweet’s link. Similarly, you can’t access things like “the current Safari tab” from other iOS apps unless you manually switch between them.
As more users start considering iOS devices as computers where work is possible, it’s safe to assume they will start using a diversified collection of apps to complete various tasks. Right now, communication between these apps is limited to the clipboard, URL schemes hard-coded by the developers, or services that the user has to manually configure, such as in Drafts, Mr. Reader, or Launch Center Pro. ActivityAction is system-wide, but it still carries the same limitations of other iOS apps that use URL schemes.
As I’ve said in the past, I hope Apple will come up with a solution for better inter-app communication in iOS 7, either with XPC, an enhancement to URL schemes, an iOS version of Automator for automating complex tasks, a combination of all of them, or something else entirely. The simplicity of the iOS multitasking tray doesn’t have to go away, but, at the same time, we can’t keep on relying on the iOS clipboard or URL schemes to exchange even just text between two apps.
Check out Jeff’s video and description of ActivityAction here.