Apple Quietly Breaks Deeplinking — Tribe Fixes it Before Facebook
We try to move fast and stay ahead of the curve at Tribe; as a startup you have to because we are focused on rapidly developing what we believe to be the future of task management, bugs slip past and make it into the wild. But let's be honest, that's nothing new for a startup tech company. So we were very surprised when we ran into a bug that wasn't our fault.
Bugs are always our fault, right?
Not this time.
We gave early access of Tribe Pro (Tribe's robust desktop web application) to a commercial real estate firm here in Chicago called Millennium Properties. Millennium Properties got their entire company on Tribe Pro and has seen deal throughput rise and its team build trust. One day, Tribe customer service ninja Oliver got an email from Brad Thompson, a Vice President at Millennium Properties, saying his mobile app seemed to be broken. We quickly started troubleshooting and shortly realized it wasn't our native iOS app that was struggling — it was our deep linking technology. The same deep linking technology that helps Tribe users move seamlessly from email -> mobile web -> mobile app without having to login was completely broken.
You see, when you click on a link in an email, that link can't know in advance if it's going to be clicked in desktop or mobile. So we have to send you to a website that will then be responsive to the device. Once you land on this responsive website, if you happen to be on a mobile device, we then redirect you to the native app. Unfortunately the website can't know if you have the app installed. The accepted trick/hack/workaround was to first try to send you to the mobile app and then wait half a second and redirect you to a version of the page that won't try to send you to the app again. This works because (1) if the first link fails, you just see a momentary blip and then get where you should be, but if (2) the first link works, you move out of the browser into the app.
The downside to this is you have to build all of those steps manually in javascript. There are dozens of corner cases, and it takes hundreds of lines of code. And if you don't do all of these steps and logic (which some lazy developers don't), it can create a really awful experience for users. I'm sure all of you have experienced trying to open Safari, only to have it instantly redirect you to a different app in a sort of evil loop that won't die.
Apple made a lot of changes to deep linking in iOS 9. There are some incredible new technologies that allow developers to link from app to app, search app content from one app in another app (or with Siri), and even discover new apps (which should be a boon to new companies like Tribe). One of these changes was a popup that requires user confirmation before deep linking out of the app. This is an extra click for the user, but it does permanently quash the evil auto redirect loop problem.
But last week, Apple went and changed something else. Now they aren't waiting for the user to accept or cancel the link out of the app before reloading the page. The choice to open the app appears for a split second and then disappears. What's more, they aren't allowing the app to make multiple requests to the same link. So once the button appears and disappears, it's not coming back.
This means that when you click a link in an email, the accepted trick/hack/workaround that everyone uses will take you to the mobile web app, but not the native mobile app. This effects everyone who deep links from email to a mobile app, including Tribe. We sprang into action, did a bunch of research, tried a dozen different tactics, and in the end resolved that what Apple is trying to do here is actually make it much simpler. There is now only one line of code (instead of hundreds) and the developer can't possibly mess it up. That's great, except for one little (big) thing: If you don't have the app installed, when you first arrive at the site, you will see this popup that says:
This feels like bad UX to us, and we desperately didn't want to expose this to our users, because we're sure they'll think Tribe is broken somehow, but this is the only way to make it work (for now).
We fixed this bug last week and moved on. This morning, I got an email from Facebook recommending a potential friend. I clicked the link and bam, there it was! The same deeplinking bug I fought last week. So Facebook — one of the most valuable technology companies on the planet — has still not resolved this same bug in their web app almost 6 days after little Tribe found and fixed ours!
We are honored to have great relationships with awesome customers like Brad at Millennium Properties who help us perfect our product. It's experiences like this that make me proud to move as fast as we do at Tribe. That's why I look forward to the future of tech. Software will keep changing, and so will our strategies as developers who want to live in the tech ecosystem. I know that one day, if Tribe becomes anywhere near as successful as Facebook, we too will be large and move slower than we do now.
But today, it was a win for the little guy.
?? AI & Technology-Driven Business Optimization | ?? TAYLORed Solutions for SMBs | Make.com Engineer ?? | Saving ?? and ?? | Tableau & Power BI Solution Architect
9 年Great problem solving by Tribe. Great article Sam Harris. I bet Apple's listening because Tribe isn't the only group writing about the most recent OS updates.