Deep Links, Back Links, Universal Links
Deep linking is where the pieces of Apple's app search and navigation puzzle come together. iOS 9 marks Apple's long awaited foray into native deep linking, and the company is betting heavily on deep links as a superior way to launch apps, navigate them, index content, and share results.
Deep linking refers to the ability to link to a specific location within an app. Deep links are URIs that open apps into discrete navigation points, such as the Steps screen in the Health app, a profile view in Tweetbot, or an email message in Mail. With proper support from developers, any iOS app screen or activity can have its own deep link. Over the years, a number of third-party companies have attempted to establish cross-platform standards for deep links in apps; with iOS 9, Apple aims to provide deep linking support in every app natively.
Deep links provide structure. With deep links, individual app sections and activities can be restored when a user opens a link to them from Search. They power smart reminders so Siri can create todos that contain a deep link to reopen an app's view. Smart App Banners, used by developers to match their websites to native apps, enable Applebot to associate web links with deep links and prioritize certain webpages over others when indexing webpages.
Under the hood, deep links lay a new foundation for launching and navigating apps on iOS. This starts from the app launching animation itself: alongside a revised multitasking switcher, iOS 9 features a new transition for going from one app to the other that pushes the current app to the left and slides onto a new one to the right.
Thanks to this, opening apps on iOS feels more like navigating pages of the OS – a metaphor that reinforces the idea of deep links capable of connecting specific sections of apps together. The animation feels faster than iOS 8 and it makes sense within the spatiality of iOS 9.
The new app launching animation does more than offering new visual eye candy – it showcases iOS 9's deep linking capabilities in the status bar. New in iOS 9, every time you'll leave an app to open another one by following a link or a notification, you'll get a back button in the upper left corner of the status bar to go back to the "launcher" app.
The back button has long been a staple of Android devices; at least initially, it was surprising to see Apple follow a similar approach for iOS 9. The similarities with Android's back navigation feature are only superficial: iOS' back button is built into the status bar and it offers a shortcut to return to the app that launched the one you're in; it's overridden every time an app launches another one. If you open a link from Messages into Safari, the status bar will show a back button to return to Messages; if you tap a notification when in Safari and open Twitter, the back button will only return you to Safari.
iOS 9's back button doesn't go back into the entire navigation stack of recent apps. It sticks to the status bar even if you move around an app, but it'll disappear after two minutes. It's not a persistent back button – it's a temporary shortcut.
The back button is useful when combined with deep links that open apps into specific views. When used from Search, the back button makes it easy to view a result, go back to Search with one tap, pick another, and so forth. It also makes tapping notifications less disruptive to the user experience, as returning to what you were doing is one tap away. With it, the role of the Home button is considerably diminished in iOS 9, as returning to the previous app is easier and more contextual.
The placement of the back button is problematic. When following a link or a notification into another app, the button will be displayed in the left corner of the status bar, hiding Wi-Fi and carrier information – an essential detail that tells us how our devices are connecting to the Internet. On more than one occasion, I found myself following links and wondering why an app wasn't loading – I couldn't tell if the app was having problems, or if my 4G network had poor reception because the back button was covering up everything. I wish Apple had thought of a gesture to manually dismiss the back button; on the iPad, they could have at least placed it next to Wi-Fi and carrier information given the bigger display.
I sympathize with the struggle to find a placement for this button. Ultimately, an OS with superior deep linking features benefits from a system-wide shortcut that lets users navigate back and forth between apps as they would with webpages, and that corner of the status bar is the least intrusive option. It's not perfect but it could have been worse; in practice, it's useful and consistent.
Apple's plans for deep linking extend beyond search, smart reminders, and the back button. With iOS 9 Apple is introducing Universal Links, a way to launch and link to apps with web links. With Universal Links, Apple is letting websites and apps communicate through the common thread of a URL, with verifiable ownership, graceful fallbacks, and cross-platform support.
Universal Links are meant to offer a superior option to custom URL schemes for launching apps and sharing links to them. A Universal Link is a web link that, with a file uploaded by developers on their app's servers and integration in Xcode, iOS 9 can open into a native app instead of its website. Upon first launching an app with Universal Links support in iOS 9, the app will check for the configuration file on its server; from that point on, whenever possible, HTTP links to that domain will open in the app, showing the deep linked view.
To understand how Universal Links work, imagine that Twitter will start supporting them for twitter.com URLs and their iOS app. Every time you tap a link to a tweet on iOS 9, that link will open the tweet in the native app instead of Safari if you have it installed. If you don't have the app or share the link with someone who doesn't have the app, the link will open in the browser as a fallback because it's a normal URL.
Imagine this for links to shared projects in a todo app, songs on a streaming service, Slack uploads, Overcast podcast episodes, or Google Docs files. With a regular HTTP link, iOS 9 will take you to the content you're looking for inside a native app. Universal Links are platform neutral: if the app isn't installed, they go straight to the web anyway.
When writing this review, I was able to test a version of IMDb with Universal Links. When opened from Safari, Google, Search, and any other app, imdb.com links automatically opened in the native IMDb app, showing me the content – such as trailers or movie pages – I would have seen on the web by default in iOS 8.
Universal Links are meant to provide a safe, cross-platform way to share links to content in apps without relying on custom URL schemes. Instead of linking to a user profile in Twitter with the custom
'twitter:// URL scheme, you'll be using the same twitter.com links you see in the browser every day. With a custom URL scheme, if you don't have the app installed and tap the URL, it does nothing. URL schemes are local; Universal Links are global and local at the same time.
Universal Links carry important benefits over the old way to link to specific areas or features of apps. Universal Links are always mapped to the right app: while different apps can claim the same URL scheme on iOS, Universal Links work by matching an app with a JSON file on the app's server; this ensures that links from a certain domain can only open in its associated app. In Twitter's case, this could mean that, if installed, twitter.com links will always launch the official Twitter app, and The Iconfactory and Tapbots won't be able to do anything about it as they can't control the twitter.com server.
It was obvious for Apple to elect web URLs as the best way to link to apps: web links are omnipresent in today's communications, they work everywhere, and they are the common language of the web.
Universal Links are designed to not be noticed and to feel as seamless as possible. For the most part, that's exactly what using them is like – you tap a link and, if it's a Universal one, it'll open in an app.
There are some aspects of the process that you can control. When opening a Universal Link, iOS 9 will display a forward button on the right side of the status bar (opposite to the back button) to give you the option to view the link in Safari instead. The same issues mentioned for the back button apply here as well, as the shortcut takes over battery and Bluetooth icons (and looks comically alone on the iPad). However, the ability to jump from native app to webpage with one tap is convenient, and I couldn't imagine any other place for it.
If you choose to view a Universal Link in the browser, a banner will sit atop the webpage with an Open button to return to the native app if you change your mind. This is the equivalent of a small Smart App banner, but it's not as obtrusive. It's a nice idea, and it lets you cycle through native app and web view for a Universal Link with one tap.
All together, iOS 9's new deep linking features make for a unified app experience built with speed, security, and consistency in mind. They're also signs of a mature OS and app ecosystem that are ready to talk to each other with links that connect app content to system features, eschewing the numerous hacks and workarounds of custom URL schemes.
Going back to iOS 8's app switching design and limitations feels cumbersome after trying iOS 9. Deep links and Universal Links dramatically speed up moving between apps – and they reduce the Home button to a mere hardware option for going back to the Home screen. The back button, while not perfect and perhaps a bit inelegant at times (reaching it also requires a certain dexterity), is a great shortcut, and I can't imagine using iOS without it now. I wasn't able to try many apps with Universal Links support, and, while I believe they won't be suitable for apps that don't rely on web content, I believe they offer a superior option to URL schemes in every way.
iOS apps are starting to feel less and less like silos. Aided by the back button, deep links and Universal Links are another step towards more interconnected apps.