There are two kinds of client ap­pli­ca­tion­s: The first kind has a “refresh” or “reload” but­ton to make sure your app’s in sync with its server’s view of the world. The sec­ond kind is bro­ken.


Of late, I have to deal reg­u­lar­ly with sev­er­al app­s, no­tably in­clud­ing an email­er and a car-sharing ser­vice, that lack such a but­ton. I can imag­ine why  —  a customer-focused prod­uct man­ag­er said “Steve Jobs taught us that few­er con­trols are bet­ter and we should just take care of mak­ing sure we’re in sync with the cloud. So lose the button.”

Ex­cept for, it doesn’t work. Ap­par­ent­ly no­body in the world is smart enough to ar­range for flaw­less­ly re­li­able hands-off clien­t/­cloud syn­chro­niza­tion. There are times when you just know that what you’re see­ing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain trans­plant from its server, things would be OK.

The car-share app is par­tic­u­lar­ly ag­gra­vat­ing, show­ing me a map dot­ted with near­by ve­hi­cles when I know for sure that this time of day I’ll be lucky if there’s even one with­in walk­a­ble dis­tance. Since it to­tal­ly re­fus­es to sync, I have to switch to the An­droid “recents” screen and kill it. When I re-open the ap­p, it’s OK.

Why might this hap­pen? Wel­l, maybe switch­ing from WiFi to cell da­ta (or vice ver­sa) left some lay­er con­fused about net­work truth. Pos­si­bly, be­cause your app was writ­ten in a pro­gram­ming lan­guage with mul­ti­ple threads and shared mu­ta­ble state (sil­ly, sil­ly pro­gram­mer), the cache is mal­func­tion­ing. Maybe that same thing hap­pened on the server. Or in the CDN. Or maybe there’s an ob­scure hic­cup in a dis­tant node_­mod­ules de­pen­den­cy that you’re tick­ling.

Dear prod­uct man­ager­s: Show some hu­mil­i­ty. When a cus­tomer re­al­ly thinks your app is wrong and they know how to fix it, don’t get in their way.


Comment feed for ongoing:Comments feed

From: Brian (Sep 28 2017, at 09:39)

I love that, "If they know how to fix it don't get in their way". How do we convince every tech company to go open-source?


From: AmigaRulez (Sep 28 2017, at 11:04)

@Brian: Maybe you will evade this, but the logical answer to your question is thus: develop business models for OSS that outperform what you can do with closed source software. That is the currency (ha!) that will convince them. It is also the proof of concept for an all-OSS world.


From: Paul Hoffman (Sep 28 2017, at 12:31)

1) Do not hide the refresh as "pull down on this non-obvious part of the top of the window until you see this non-obvious icon that shows you that you will now refresh". That makes refreshing seem like an advanced feature, and it is also impossible to describe on someone who you are supporting on the phone.

2) The lack of real refresh is a reason why I'm switching from the awful New York Times app to the Washington Post. The NYTimes app is hesitant to refresh; if you nuke it and start it again, you get real fresh news.


From: Matthew Krauss (Sep 28 2017, at 14:40)

@AmigaRulez: That is only "the proof of concept for an all-OSS world" if you have already assumed that the ability to acquire profit is the best criteria for how to structure our world. I have yet to see any evidence that this is the case.


From: Yawar (Sep 29 2017, at 10:26)

Re: the car share app, they use a well-known tactic of showing you that there are actually nearby cars even if there are none. It's an enticement.


From: Tim (but not THE Tim) (Sep 29 2017, at 21:45)

Maybe 'refresh' ought to be a built-in icon in the OS, that calls an API, the API would invoke the 'refresh' code in whatever app is 'on top'. Whenever an app starts, it registers its refresh entry point (OK old term but I don't know what you kids call it) and whenever the top-level window is that app, that is the refresh code that is invoked. If there's no refresh code then an error can be generated.

Simplifies the 'refresh' UX - but does not integrate the look with any app, I guess.


From: D. (Oct 02 2017, at 02:03)

The worst apps are the ones that do include the ability to refresh (either via button or swipe from top to bottom) but then get stuck in the sync process. Quickest way to get out of that is kill the app and hope it is able to sync the next time. Equally annoying to having no sync capabilities at all.


From: Arf (Oct 02 2017, at 20:43)

"You are false data."

(updated from 1970's)


author · Dad · software · colophon · rights

September 27, 2017
· Technology (81 fragments)
· · Web (388 more)

By .

I am an employee
of, but
the opinions expressed here
are my own, and no other party
necessarily agrees with them.

A full disclosure of my
professional interests is
on the author page.