Categories
Products and Design The Next Computer

Everything is on high-speed internet. Why are we seeing wait spinners all the time?

In this blog post about offline-first, this important point:

Latency is more important than bandwidth

In the past, often the bandwidth was the limiting factor on determining the loading time of an application. But while bandwidth has improved over the years, latency became the limiting factor. You can always increase the bandwidth by setting up more cables or sending more Starlink satelites to space. But reducing the latency is not so easy…

Offline first applications benefit from that because sending the inital state to the client can be done much faster with more bandwidth. And once the data is there, we do no longer have to care about the latency to the backend server.

This is why iOS Background App Refresh, when implemented well, works like magic. iCloud Tabs in Safari are a great example of this:

Safari doesn’t stop you from using the browser while it syncs tabs. In fact, if it detects that the connection isn’t good enough to fetch tabs from other devices quickly enough, it just won’t show you the “From {device name}” section.

Safari continues to attempt to sync tabs in the background, where you’re using the browser or not. When it’s synced, the section shows up. Like magic.

iCloud photos is another example of offline first; there is never any wait time while you use the same photo library across multiple iOS and Mac devices.

Likewise the podcast app Overcast will download podcasts and sync subscriptions silently in the background.

In both cases, the developers have designed for the fact that bandwidth over time is abundant, but when the user launches the app, (lack of) latency is important, so the apps don’t sync right then.

Of course, conflict resolution is an important part of offline-first, and today many applications do this at a file level. The interface’ll ask you which version (from another device or from the local device) you want to use.

Other, more intelligent applications will do this within a file. A text editor like TextMate on MacOS detects that a file that is open in the editor has been changed on the filesystem because it was edited on another device and has synced via, say, iCloud or Dropbox. The editor then uses markup to highlight the conflicting text.

Either way, the application won’t stop you from using it until it can determine everything is synced, which often isn’t possible quickly.

Unfortunately, too many apps today rely on calling home at every launch, even if it isn’t to sync files. Compare the launch of the image creation app Canva and the Twitter app Tweetbot (both cold launches). You can see which one loads existing content first and then start looking to sync. Its clear which one feels more snappy:

Canva
Tweetbot

Whether your users are on a phone perpetually connected to 4G, a desktop plugged into gigabit Ethernet, a laptop with patchy wifi, or a tablet with no available connections nearby, an offline first app gives them confidence that it’ll be available instantly when they need it. To capture text. Review a photo. Add a contact. Or even browse the web.

(ends)