But the ability of apps to communicate directly with each other is still limited to the idea of custom URLs. This system lets one app send data to another by asking the OS to "open" a specially-crafted address — similar to the ones we use to access a website — that's registered by the second app when it's installed. But while a lot can be done with these custom URL schemes, they still only scratch the surface of what's possible.
This limitation on inter-app communication is all the more galling when you consider both iOS's own heritage and its marketplace.
One big pipe
In the UNIX world of terminals and command lines, users have long enjoyed the power of "piping," a technique that makes it possible to chain multiple commands together in a variety of ways. By piping the output of one command into the input of the next, the savvy user can build surprisingly complex apps simply by gluing together a set of building blocks.
A corollary of this setup is that individual apps in this world tend to take on a razor-like focus on a particular task, providing a very high degree of specialization that would otherwise be hard to build into large, monolithic software. Unsurprisingly, it's easier to build a really good app whose only job is sorting data than to make it an additional bullet point in a software package that also has to offer a myriad of other functions.
Unexpectedly, perhaps, the UNIX way of software development also tends to standardize software and allow for more user customization at the same time. If you don't like the way a particular app works, chances are that you'll find a different one that can be used as a drop-in replacement for it in your piped expressions with only minimal changes to your workflow.
Small is beautiful
In the world of GUIs and touch interfaces, terminals and pipes may seem like the kind of esoteric technology that would only interest serious computer experts, but their underlying concepts apply quite well to today's iOS market, where the downward pressure applied to software pricing tends to favor small apps that focus on a specific task.
If you set aside for a moment the idea that piping has traditionally been tied to a command-line interface, the idea of creating workflows that involve a chain of data from one app to another has a number of advantages for both users and developers.
More powerful devices and a cutthroat marketplace translate into customers who expect their software to be more productive even while they continue to pay bargain-basement prices for it. Unfortunately, developers are forever required to build programs that are almost completely self-sufficient, which means having to deal with a lot more code than simply that which makes their particular app unique.
Sign up for Computerworld eNewsletters.