Apple Quietly Breaks Deeplinking — Tribe Fixes it Before Facebook

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.

Dwight Taylor

?? 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.

回复

要查看或添加评论,请登录

Sam Harris的更多文章

  • What if You Had to Learn to Code in 48 Hours, or Else?

    What if You Had to Learn to Code in 48 Hours, or Else?

    The phone rang. It was my friend, Mark Sebastian.

    13 条评论
  • The Wisdom of a Well-Dressed Older Gentleman in an Airport

    The Wisdom of a Well-Dressed Older Gentleman in an Airport

    I used to travel a lot for work. I made a habit of seeking out well-dressed older gentlemen in airports and striking up…

    13 条评论
  • Why Your Software Project is Late (Part 2)

    Why Your Software Project is Late (Part 2)

    Instead of rehashing the basics of project management, I want to expose some unexpected things that most software…

    1 条评论
  • Why Your Software Project is Late (Part 1)

    Why Your Software Project is Late (Part 1)

    There are a lot of myths in software project management—the most famous being Fred Brooks' Mythical Man-Month. Staffing…

    3 条评论
  • How to Deal With a Problem Employee

    How to Deal With a Problem Employee

    Have you ever heard a conversation like this? "Last night, we were all here past midnight trying to ship the last…

  • My favorite leadership tool

    My favorite leadership tool

    In officer training, we took endless classes on leadership. But most of us were too young at the time to really…

    6 条评论
  • Right Seat, Left Seat, Solo: A Better Way to Start

    Right Seat, Left Seat, Solo: A Better Way to Start

    Tomasz Tunguz's latest blog post 'Learning To Code In A Whole New Way' reminded me of learning to code and brought to…

    2 条评论
  • Knowing what you don't know is knowledge

    Knowing what you don't know is knowledge

    I love reading Tomasz Tunguz‘s blog posts over at Redpoint Ventures. He brings genuine data analysis into a mostly…

    2 条评论

社区洞察

其他会员也浏览了