iOS System Level Link Management

iOS needs system level link management which can hook in to apps and create a better flow for users. “Official apps” (is there a way an app can be marked as official?) should be able to register behaviours for links on a system wide level which open their respective app when a user clicks a link.

If I am using an application or even Safari and I click on a URL, I am shown the web version, optimised for my mobile device. Although this situation is OK, it often leaves you with a basic interface and limited functionality (depending on how vigorously the developers have implemented features). There is definite room for improvement, especially if there is a stand-alone app available and installed. What I would like to see is the link triggering an application switch which up the correct content.

Now that iOS supports multi-tasking and apps save state when they’re closed, this behaviour should be the natural progression. OSX and other desktop operating systems already behave in a similar way, such as launching your preferred mail client when you click a mailto: link.

For example, if I am using Twitter — either using the official iOS app, Tweetbot or the web interface — and I click an Instagram URL, I want the operating system to fast-switch to the installed (and preferred if there are multiple) Instagram app. Instead of just being presented with the photograph and the user’s name in a Safari wrapper, which is the mobile HTML version of Instagram, I would be able to “Like” and comment on the photo, as well as browse that user’s other photos and even follow them. Anything that the application allows, would be a short click away from the link.

The official Twitter for iOS app already behaves in a similar way when you click a link which is either a Twitter users’ profile or a specific tweet, it loads the correct pane in the application and doesn’t show you the web interface like it does for other content. You may cry this is obvious and expected behaviour and that is my point. There is a short leap between this and a system wide process which would better tie content and apps together and improve the overall flow of content consumption — even encouraging more creation and participation.

These services would be managed in a similar way to location services or notifications, allowing the user to toggle which apps are enabled for this system wide preference. Apps would register a request for link management, possibly by the way of a domain (or a list of URLs within that domain that they support with their app), within their codebase which would mean the app would appear in the list. There could be, in theory, multiple apps vying for the same service, such as Twitter links. The preference pane could be extended to show a list of apps which have registered a certain domain.

Power users might want to open different apps based on what type of content is being shown. For example, twitter profile might open in the official Twitter app, whereas you might want specific tweets to be open in Tweetbot. In theory, this could be easily achieved by exposing the URL mapping to users — in a similar way in which Adblock works — but I think this complication should be avoided and would alienate the majority of iOS users.