Scheming Intentions

From Vannevar Bush to PageRank, the World Wide Web was built on hypertext, the notion that any morsel of information can link to any other. But that was always only a dream, and a rapidly-dissipating one of late.

Nowadays even Web links are likely to terminate at warnings, paywalls or registration screens. Anil Dash rages that “Facebook is gaslighting the Web” with its treatment of content outside Facebook. Jon Mitchell and Jamie Zawinski complain that Google Plus will “mess up the Internet” for its treatment of content outside Google+ff (and Zawinski adds “they just ripped off this model from Tumblr.”) Google’s Tim Bray, in turn, is irate about single-page “hash-bang” JavaScript sites breaking the web.

Meanwhile, six months ago, according to Flurry, time spent using mobile apps surpassed web consumption. You can link out of apps easily enough — clicking on a phone number to open a dialer, or a hyperlink to open a Web page — but it’s hard to reliably link in to an app.

Oh, the infrastructure is there, as Sarah Perez pointed out last week in “A Web Of Apps.” In theory, Android’s Intents, and Apple’s Custom URL Schemes allow apps to open each other and pass information to one another. But it’s still very difficult and frustrating to use them for inter-app communication.

The main reason for this is that neither Apple or Google publishes the URL schemes / intent filters used by any given app. I find this totally bewildering. They already have all the information: it’s bundled with every App Store / Android Market app submission, in their Info.plist and AndroidManifest.xml files, respectively. All they would need to do is provide a searchable web interface, or add that info in a “For Developers” tab within the App Store or Android Market.

There’s really no reason for them not to do this. Both already maintain app namespaces. Both could easily add “private/public” flags for app developers who don’t want their information published. But they can’t be bothered — so instead we have to rely on haphazard, incomplete, out-of-date third-party sites like Akosma and OneMillionAppSchemes for iOS and OpenIntents for Android. (Bizarrely, Google actually chose OpenIntents for their Summer of Code program last year, rather than just publishing the information they already have.)

If we actually had a reliable source of app intent/scheme bindings, then a whole lot of interesting possibilities would arise. Instead of silently failing when an app tries to call up a recipient app that isn’t installed, the OS could request to download and install it. You could have apps rely on each other, so that downloading and installing one implies automatically downloading and installing its prerequisite building-block sub-apps.

Most of all, you’d be able to reliably link to and from other apps, almost as if they were web sites. It would be so easy to do — yet Apple and Google have both let this possibility languish untouched for years. I’m on record as predicting that HTML5 apps will take over from native apps in a couple years’ time. The ability to link to and from them — in other words, to partially restore the hypertext dream — isn’t the main reason why, but it’s definitely a contributing factor.

Image credit: Sébastien Gelé, Flickr.