Skip to main content

The sorry state of iOS app deeplinking

·2 mins

It has been nearly a decade since I’ve been closely involved with the development of a mobile app, and I remember that there were a range of quirks and workarounds required to “deep link” into content within the app back then, but these days it feels like I’m continually plagued with bad deeplinking implementations. I’m not sure whether it’s something to do with the native iOS APIs, or just bad implementations from app developers, but it sure is aggravating.

When I get a push notification from, say, Zillow, about a price drop on a house I’d previously saved, I’d anticipate that tapping on the notification would take me into the app and show me the listing for that house. What happens most of the time is that the app opens and shows me some interstitial (“Are you the owner of {address next door}?”). Then, upon closing the interstitial, the app seems to forget where I was going entirely and sends me to the app’s home screen. Typically, since the link was via a push notification, it’s now gone, and there’s no clear way to navigate to wherever it was taking me.

This isn’t an issue unique to Zillow, it seems to happen with many popular apps from major companies. It’s particularly frustrating because these apps also take over links from the web, and there’s no way to disable that aside from actually uninstalling the app.

Apps seem to be worse at maintaining the “next page” state on login screens as well. Most websites that require login do fairly well at preserving my ultimate destination while I go through the login flow, but native apps are hit or miss. This seems so trivial that it’s almost mind boggling how many apps get it wrong.

There’s another inexplicable issue I’ve been having for a long time with many popular native iOS apps (Amazon is one), wherein tapping a link will switch from Safari to the app itself, but then instantly back to Safari. I don’t really know what’s happening under the hood in that situation, but it’s strange and feels broken. Maybe it’s a bug of some sort, but it has persisted for a very long time.

Ultimately this is a long-winded way to express one more frustration with the iOS ecosystem, where the web is second-class to native apps, and having too many user-configurable settings (like telling the OS to open all links in Safari) violates some sort of user experience standard.