
Refresh Is Sacred - robin_reala
https://www.tbray.org/ongoing/When/201x/2017/09/27/Refresh-Button
======
bachmeier
This is related to the reason I had to stop using Sparkleshare. A few years
ago I thought the idea was pretty cool, so I tried it out. Then I started to
get conflicts on some of my documents. A couple days later, I knew for sure
that a file hadn't synced.

Upon searching for a manual sync option (that would have to be a trivial
addition) I came upon this issue[1]:

"No, adding an action for this would be a hack. The whole point of
SparkleShare is to sync stuff automatically.... Just because something is easy
to do doesn't mean it should be added."

I haven't touched Sparkleshare since.

[1]
[https://github.com/hbons/SparkleShare/issues/794](https://github.com/hbons/SparkleShare/issues/794)

~~~
TeMPOraL
Oh God, this issue thread is a perfect example of the problem with UX trends
that's plaguing our industry.

Its TL;DR is this: this software is magic. It syncs automagically. You, the
dumb user, are not supposed to know and care when it syncs or if it succeeds
(hint: it's magic, it always does), and you're _especially_ not supposed to
tell the program that it has to do a sync. If your company's firewall
interferes with the magic, go talk to your company IT.

The article sums up the issue perfectly: sometimes, as a user, I know better
when the program is mistaken than the program itself. I should have a way to
force it to refresh its state.

~~~
jandrese
It's the Windows model. Make the easy stuff super easy, and the hard stuff
basically impossible. The assumption is that you'll adjust your business
practices to match the software assumptions and definitely not the other way
around.

Which is a little unfair to Microsoft, since they do have a fair bit of
functionality only slightly hidden on Windows.

~~~
dreamcompiler
Apple is not without sin here. Spotlight is notorious for not finding files
that are _currently visible in a Finder window_ because the mdfind index
didn't get updated properly. You can rebuild the mdfind index with a terminal
command but that's too obscure for non-experts and it takes hours.

~~~
digikata
I think all of the Desktop environments do poor to terrible on internal
search. I remember using a utility on Windows that just kept a live indexed
filename database because Windows search couldn't even find filenames
correctly at the time: Ah here void tools everything. Loved that util.

Gaps in the "recent files" coverage are always so noticeable over all the
environments too.

~~~
jandrese
Windows 7 does a terrible job of indexing your user directory. It's extremely
frustrating to know the exact name of a file and yet Windows can't locate it
because it is in AppData or something.

------
beaker52
As a user of 1Password, the lack of "Sync" Button is frustrating when trying
to use recently added passwords across devices.

"It just works" isn't always best - especially when dealing with cross-device
data sync - I know it isn't magic, I'm not "fooled", I know it's actually data
that needs to be transferred to the new device. Hiding that, not giving me the
option to force sync and see the progress of it is a very frustrating
experience when I can't see passwords (or any state) that I'm expecting to
see.

~~~
radarsat1
I think the generalizable point here is that, at least for me, but I think
this is for everyone, it should be considered an important part of the "UX"
that users understand the "state" of an application. In particular, what data
has been sent and received.

For example, this is imho one of the most important features of WhatsApp, the
little checkmarks that tell you, in one tiny little graphic, whether your
message has been sent, received, or viewed. This is just so important to the
user experience. I feel that app developers that ignore that users need to
_know_ what the app is doing, what _state_ it is in, are just ignorant of
human psychology and how we interact with machines. We don't want "magic", we
don't want to "trust", we want to be informed and to _know_ what is happening.
Doing this is a streamlined way, little unobtrusive checkmarks for example, is
UX gold.

~~~
jalfresi
So much this! Some developers don't realise that informing the user of state
provides invaluable information in correcting their mental model of the
application.

------
joatmon-snoo
Also, even if you can demonstrate or prove that a refresh button offers no
tangible benefit, it creates an illusion of control that improves the UI/UX.

It's like the close door button in US elevators.

~~~
tzs
> It's like the close door button in US elevators.

 _Some_ US elevators. The one at my office works fine, at least after the door
has been open for a short time. I've done timing tests with a stopwatch to
make sure I wasn't misjudging or misperceiving things. The door is open
normally for N seconds and there is a threshold, T, such that if the button is
pressed at time P, where P is in [T, N], the door starts closing immediately.
I don't remember the details now, but T was around 2 or 3 seconds, and N was
around 8 or so seconds.

There are a variety of reasons that many elevators do not work or appear to
not work in the US.

• Some are programmed not to work during times that are normally high traffic
to encourage fuller cars.

• Some have a delay. If the door was going to close in 5 seconds normally, and
the close door button works but with a 3 second delay, it would only have an
effect if you pushed it within the first 2 second after the door opened.

• Some are simply broken. A broken close door button does not put the elevator
out of service so it can stay broken for a very long time.

• Some owners choose to have them disabled. Perhaps they have received
complaints about too many obnoxious people closing the doors early. Perhaps
they think that the law requires it (maybe local codes do in fact require it).
Perhaps they think disabling it reduces wear on the doors (I've read somewhere
that door problems are the most common cause of needing elevator repair).

I've seen quite a few articles that claim that the Americans with Disabilities
Act (ADA) requires that close door buttons be disabled during normal
operation.

I doubt this. None of the articles I've seen cited a specific section of the
ADA, and I could not find any grepping through the text. Furthermore, the ADA
was passed in 1990, but non-working close door buttons were widespread well
before that. Here's a Straight Dope column on this from 1986, for example [1].

The most I found was something about there being a mandated minimum open time,
during which the close door button would not be allowed to work.

[1] [http://www.straightdope.com/columns/read/595/do-close-
door-b...](http://www.straightdope.com/columns/read/595/do-close-door-buttons-
on-elevators-ever-actually-work)

~~~
mannykannot
I once worked in an older office where the 'open door' button worked as a
'close' button, as using it apparently canceled the 'hold door open' timer. It
also had a traditional do-nothing 'close door' button.

------
adrianratnapala
The trouble is "The customer never knows anytyhing and requires us to dumb
everything down" is also a treated as a sacred principle in our industry.

~~~
s17n
Then you're doing it wrong - the correct principle is, "the customer should be
able to use the product fully without having to read any documentation"

~~~
TeMPOraL
That is an even dumber principle, and it is what leads to proliferation of
products that are mostly useless toys that _pretend_ to be tools. No amount of
JS will make a person who never used 2D graphics programs a master of
Photoshop. Only God Himself can make a pivot table that's usable by a newcomer
without "having to read any documentation". The _only_ way to realize the
principle you described is to _dumb down_ your product until bare minimum of
functionality remains, and then hope your users somehow learned to use that
minimum in the past.

Others have managed to touch on this topic in the thread, so I'll just say
this: you don't expect people to be able to fully use _a car_ without having
to learn anything. You subject them to a training course. And this applies to
pretty much any actual _tool_. You have to _learn_ to use it effectively. "The
only intuitive interface is the nipple, everything else is learned." You can
embrace that and figure out how to efficiently teach your users, or you can
forever be doomed to building toys that don't actually help anyone that much.

~~~
IshKebab
He's not saying that everyone should be able to use every program. But someone
familiar with 2d graphics program in general should be able to _learn_ how to
use Photoshop without reading the manual.

Consider a bad example: Blender. Even though I have used 3D graphics and CAD
extensively I still always have to look things up in the Blender manual. Why?
Because nearly every control is poorly labelled, there are no useful tooltips,
and basically no _hints_ in the UI at all. Take a look at this awful
screenshot for example:

[https://www.blender.org/wp-
content/uploads/2017/08/Release_n...](https://www.blender.org/wp-
content/uploads/2017/08/Release_notes_279_video_overhaul.png)

What does "File Extensions" do? What about "Placeholders"? Why do none of the
number inputs even have units?

Nobody is saying that users should have an intuitive understanding of what a
B-frame is, but I shouldn't have to read the manual to find out whether the
B-frame interval is specified in seconds or frames.

~~~
TeMPOraL
Blender is a funny program, because it can be used both as an example of bad
UX - like what you describe - and good UX.

RE bad UX - I agree labels and tooltips are important. Even if I'm an
experienced user, I do not remember _everything_ , and in particular I would
like to be always able to visually identify that number fields use the units
that I think they use.

As for the good sides - Blender is the vim of 3D graphics. It allows you to be
much more efficient - after you learn how to use it - compared to programs
with simpler UI.

I generally summarize my point like this:

    
    
       productivity
         ^                                     /  tools you need to learn
         |                                    |
         |                                    /
         |                                   |
         |                                   /
         |                                  |
         |                                  /
         |                                 |
         |                                /+
         |                              /-
         |                           /--           toys with dumb UI
         |                        /--        /--------------------------------
         |      /---------------/------------
         |  /---         /------
         |--   /---------
         +----------------------------------------------------------------------->
                                                                     time

~~~
MrBuddyCasino
Would you classify IntelliJ as "toy with dumb UI"? Because for me it hits a
sweet spot in the middle - it can be both, depending on skill level.

~~~
TeMPOraL
Definitely not! IntelliJ is very complicated; I've seen programmers taking a
look at it, getting confused, and going back to Eclipse.

~~~
IshKebab
Ha is that a joke?

~~~
Too
Probably not, I was shocked first time i heard but i've seen it a few times
also. Most common complaint I hear is that everything is underlined in red as
errors because you have a different code style or misspell things. Other
common complaints are that the debugger buttons are non intuitive (both
location and icons), hotkeys don't follow common conventions, or that it's
hogging the computer resources. Although the latter is maybe not relevant in
this discussion about UI-design.

------
jakobegger
I completely agree.

But the example the author notes isn’t the worst. If killing the app
refreshes, that’s okay.

The problem is a lot worse if the app syncs to disk.

All Apple apps have this issue. iCloud is nice when it works, but it’s
infuriating when a photo or something doesn’t show up on your other device,
and there is no way to force a sync.

~~~
stefco_
Agreed. iCloud's antics keep forcing me to seriously consider android.

Their refusal to give you FS or cache access is similarly infuriating; I
stopped using my old 16GB purely because I couldn't selectively control what
was stored on the phone and iCloud photos was too dumb to control its cache. I
would have gigabytes of old photos downloaded to my phone until it was so full
that apps would regularly crash! I had to regularly toggle iCloud photo
storage and basically just wait until my iPhone had locally cached enough of
my library that it was full and broken again... And, of couree because Apple
thinks their software "just works" or whatever, I couldn't just hit a "clear
cache" button or manually rm files from the cache (still a hack, but one that
takes all of two seconds).

At the moment, I'm keeping myself somewhat satisfied by just using adobe
creative cloud for photos I care about, but it's not an ideal solution. And
I'm annoyed that Apple basically forced me to buy a new phone a year or two
earlier than I wanted to by crippling my old one with broken software.

~~~
pmx
> And I'm annoyed that Apple basically forced me to buy a new phone a year or
> two earlier than I wanted to by crippling my old one with broken software

Isn't that basically their business model?

~~~
stefco_
Yes, it seems to be. The privacy and security emphasis is one of the main
things keeping me locked in.

------
michaelfeathers
What's interesting is that we've known this in the industry for decades but
people seem to forget it at the user interface.

[https://scholar.harvard.edu/waldo/publications/note-
distribu...](https://scholar.harvard.edu/waldo/publications/note-distributed-
computing)

[https://www.joelonsoftware.com/2002/11/11/the-law-of-
leaky-a...](https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-
abstractions/)

~~~
digi_owl
The impression i get is that this happens because the industry favors gung-ho
youth over aged experience, and oh so many are self taught.

This combination means that the same hard lessons have to be learned over and
over and over...

------
illumin8
Lack of a refresh button is not the issue. The issue is that the app developer
has never tested their app in real-world network scenarios. Switching between
wifi, 3g, 4g, lte, and no network access. Inserting random packet loss,
jitter, and latency. There are a lot of tools that can automate this now. You
can stick a WAN simulator in front of your integration testing environment and
insert all types of crazy network issues into your tests. If developers did
this more often, these "sync" bugs would be fixed.

~~~
jmkni
How would you do this on an Android emulator?

I'm guilty of not testing this sort of thing thoroughly.

~~~
mikewhy
macOS has a Network Link Conditioner preference pane that allows you to
simulate all sorts of awful network scenarios. It's at the system level so
anything using the networking should be affected.

Not sure about the others.

~~~
jmkni
Good to know, thanks

------
foxylion
My hope is that at some point the auto sync is smart enough so we don't need
any refresh button.

For example: Instagram does auto sync of new posts, but it also has a refresh
functionality. So I never know if it is up to date and I must refresh. When
you know about a manual refresh functionality the auto update is totally
useles. You're never sure if the app tries to stay up to date or does only
occasionally sync to show some (not the latest) updates.

Another example is google mail, it does auto sync pretty well and I always see
the mails when they arrive. But the refresh buttons makes me suspicious if
it's really up to date (in my experience it always is).

~~~
kelnos
Instagram and Facebook (at least on Android) is also a fine example of getting
auto-refresh wrong. If I'm scrolling down the feed and stop for too long, or
hop out of the app for a minute and then come back, often it'll refresh the
feed and kick me back to the top. That's never what I want. I'd rather manual-
only refresh to that.

GMail does a good job of being up to date, except when switching networks or
resuming from sleep. It'll certainly eventually sync properly, but that can
take minutes, and whacking the Refresh button fixes that in seconds.

I've also found that Refresh will surface very-new mail sooner than just
waiting. Whacking Refresh while waiting for an email verification or password
reset always makes it appear faster than just waiting.

------
toomim
This problem would be solved if HTTP provided state _synchronization_ rather
than just _transfer_. Then we wouldn't need a reload button.

The invisible college built a solution called Statebus:
[https://stateb.us](https://stateb.us) It's a backwards-compatible HTTP but
with automatic synchronization. It eliminates these bugs.

~~~
jandrese
That sounds a lot like the thinking the author was complaining about in the
article. There is a lot going on underneath your protocol layer here, and much
that can go wrong. How sure can you be that the system is in a synchronized
state?

------
ninguem2
A lot of apps accept the pull down gesture (not sure how to call it) as a
refresh, e.g. mail apps. I suppose that might not work so well when your app
shows a map, like uber. Replacing a button by a gesture is ok.

~~~
yorwba
It's only OK if you also describe somewhere that this gesture exists and what
it does. Gestures are absolutely non-discoverable on their own. Occasionally,
I try to show someone something on their Macbook, and I always have to
experiment with the number of fingers on the touchpad, because nothing about
the interface helps me remember the options. I guess it could be printed
directly on the touchpad, but then that wouldn't be as slick.

~~~
subroutine
I think the swipe-down-to-refresh UI pattern actually seems pretty
discoverable. The newest things on a list are added to the top. How do you
know if you're at the very top of a list?

I think this gesture eloquently addresses several issues at once. (1) The user
is going to pull down on the main container to check for new items at the very
top of the list, but (2) it may take a manual refresh to deliver these new
items; refreshing the list when the user is attempting to pull the main
container window beyond the top-most item allows the app to provide the newest
content the moment the user is seeking it.

~~~
yorwba
Yes, when you have a list sorted by recency, where the most recent entries are
at the top, you can easily discover the refresh gesture by scrolling a little
bit too far.

But when the gesture is used in different contexts, it is less likely to be
discovered. For example most chat apps add new messages at the bottom, so the
refresh gesture should be scrolling in the opposite direction. Additionally, I
don't tend to scroll through my message history very often, so I'm unlikely to
discover this. Fortunately, most chat apps tend to be quite good at loading
new messages.

It gets worse when there's little reason to attempt scrolling past the
boundaries. For example, it took me months to discover that Chrome on Android
supports the gesture (before that, I opened the menu to refresh). That's
because to scroll on a website, I just pull once and then let go. Inertial
scrolling means that the motion will stop as soon as it hits the top of the
page. Past that, there's a kind of resistance that needs to be overcome, which
you won't do if you don't already know the gesture.

My point is, good interfaces shouldn't _require_ the user to make accidental
discoveries. There should be an obvious, labeled way to do it; if necessary,
it can include a hint to use the less obvious but more convenient way next
time.

~~~
pimlottc
Pull-down to reveal the search bar is another frustrating antipattern that is
all too common.

~~~
digi_owl
Or just vanishing toolbars in general.

Also, i have found that swipe to refresh on web browsers to be a mixed
blessing. All too easy to trigger when all i want to do is to scroll to the
top of the page.

------
nlawalker
It struck me the other day that this is the future that the industry focus on
AI is driving us towards - software that knows better than you do, whether you
like it or not.

In much the same way that the _capabilities_ and _usage_ of today's
technologies baffles people who didn't grow up with it, tomorrow all of us
will be baffled by the number and magnitude of decisions that the average
piece of software assumes its users will delegate to it, and the fact that no
one will really be able to debug or diagnose exactly why it made the decisions
it did. Zawinski's Law [1] will be modified to read "Every program attempts to
expand until it can act as a personal assistant. Those programs which cannot
so expand are replaced by ones which can."

[1] [http://www.catb.org/jargon/html/Z/Zawinskis-
Law.html](http://www.catb.org/jargon/html/Z/Zawinskis-Law.html)

~~~
digi_owl
The industry may be trying to build a virtual Jeeves, but i fear that they are
more likely to create HAL...

------
16bytes
I this this is a particularly insightful stance and it immediately reminded me
of an application that already does this.

The thick-client MS Outlook will let you know when you have new mail, but
there's also a "send/receive" button that forces a sync with the server and
lets you know the result of that action.

~~~
hxtk
I thought about outlook, too, but for the opposite reason: their web client
overrides ctrl+r, making the way I force a refresh incongruous with the rest
of the web.

~~~
digi_owl
that is another reason i am not much fond of "webapps".

Take Youtube for example.

If i scroll down to read some comments (yeah i know, i live dangerously for
some reason that escapes me) and want to go quickly back up to the video, the
natural reflex for me is to hit the home key.

But for some loony toons reason Google had decided to hijack the home key to
mean "rewind video the 0 and start playing"!

------
zestyping
This is only because apps are bad at sync. Quality varies; occasionally
there's an app that gets it right. For example, I've used Google Docs and
Google Sheets for ages now and never wanted or needed to refresh — the content
is always in sync.

~~~
djhworld
Google recently changed "Google Drive" to "Google Backup and Sync" and it's
_terrible_

I can see some files on the web version of google drive that I uploaded last
night, but on my other machine the Backup&Sync tool doesn't even bother
downloading them.

Time to move to Dropbox I think...

~~~
IshKebab
It was awful as Google Drive too. It really blows my mind how bad the desktop
Google Drive sync app is, when Dropbox can do it nearly perfectly.

~~~
digi_owl
And here they wants us to trust them with always keeping the ChromeOS state in
sync...

------
vortico
I kill many apps on the hour just to refresh. Since I've basically reinvented
the refresh button with an operating system feature, why don't all apps have
them? And why doesn't everything have a home button, especially Facebook.

~~~
digi_owl
At least on Android, Facebook seems to have redefined the back button as home.
Scroll down, hit back, and rather than exit the app i will be scrolled back to
the top and the feed "refreshed" (more like randomized).

~~~
vortico
This doesn't work when you're several levels deep in photos, within groups,
within comment sections, etc.

------
TorKlingberg
Yes, please! It doesn't have to be a visible button, the scroll hard past the
top of the list gesture is fine. Just show a spinner until you actually
received a server response. I hate opening a weather app just to see the
weather from last time I opened it. Even the most perfect sync code will not
work when my internet connection is broken. I'd rather find out so I can fix
it than look at old data.

Btw, why does the web Gmail refresh button not actually load new emails unless
I press it twice?

------
digi_owl
Reminds me of when Google introduced MTP to Android with their 3.x version.

All of a sudden what used to be a simple transfer from tablet to PC was a
nightmare.

This because while before the PC would read the SD card directly, with MTP it
was mediated via a database within Android.

And that database easily got de-synced from the actual FS state if i used any
kind of file manager on the tablet.

Effectively i had to dig up an app that was designed specifically to force the
database to sync.

~~~
CaptSpify
Last time I tried it, MTP was still a POS. I don't even try to use it anymore
as it's just less hassle to adb push files.

You hear that google? Using adb on the command line is easier than the
interface you give your phone? How did you mess that one up?

/rant

------
jsight
A lot of web UIs only show a refresh button if something goes wrong. I think
this makes a lot of sense, as it is really just a placebo if the app already
knows that the data is up to date (for example, if it has an active websocket
connection for maintaining state).

Of course, it helps that the browsers all have builtin refresh buttons too.

------
SadWebDeveloper
There are only two hard things in Computer Science: cache invalidation and
naming things.

~~~
jandrese
I thought that quote was:

There are two hard problems in computer science: cache invalidation, naming,
and off-by-one errors.

~~~
SadWebDeveloper
I like the original version:

Source: [https://skeptics.stackexchange.com/questions/19836/has-
phil-...](https://skeptics.stackexchange.com/questions/19836/has-phil-karlton-
ever-said-there-are-only-two-hard-things-in-computer-science)

------
self_awareness
> "When a cus­tomer re­al­ly thinks your app is wrong and they know how to fix
> it, [...]"

The problem is this happens too many times, even in cases when the customer
doesn't have any idea how to fix the issue and what the issue really is.

------
Grue3
Yes, this infuriates me about my city's (Moscow) bikeshare app. It would show
you completely outdated state until you restart it with no way to refresh.
Later they introduced electrobike option, and I discovered that if you switch
to electrobike map and back to normal bike app, it refreshes! Later I found
that Citymapper is available in Moscow, and its bike map is much superior so I
don't have to suffer the official app anymore.

------
hex13
Like they say "There are only two hard things in Computer Science: cache
invalidation and naming things." ;) Apps without `refresh` claim to be ones
which managed to solve caching problem properly (they usually didn't anyway)

~~~
TeMPOraL
Indeed. Often they don't even realize they're in the caching business. And
yet, showing the state of _anything_ for which the canonical representation
doesn't live in your process' memory is caching state.

------
krosaen
Agree, though I must say the app suite that has come closest to making it
"just work" with no sync button is Trello. It even knows when it might be out
of sync and then offers you a refresh button.

------
bruceboughton
Surely refresh is just kill for web-apps? The app's state is discarded, the
code is reloaded and it re-requests the data. I don't see the differentiation
Tim is implying.

~~~
pimlottc
In theory, a good web-app encodes state in the URL as you work, so you don't
lose everything on refresh. Google Maps is a good example.

~~~
digi_owl
Gmaps seems like their only good webapp...

------
justonepost
Yeah, but the sync button doesn't always work either. For example, my email
client has a sync button but I have to go to the web app to really see what's
going on.

------
enesunal
... or show an error indication to user when things are mangled.

Never seen an out-of-sync error message in any application except for
multiplayer apps/games.

~~~
TeMPOraL
Usually, you can just force a resync instead. Refresh button is needed for the
situations when your application _doesn 't know_ its state is wrong, but the
user does - which does happen whenever your app is displaying the state of a
shared resource it doesn't own, like files on disk.

------
Torgo
Just do what Lotus Notes does: hide the button, but if you click in the same
place as where the button is, it force-refreshes.

~~~
gmueckl
Then how do you know where to click?

------
carapace
Kind of an aside, you used to fix wonky TVs by physically banging them on the
side once or twice.

Vacuum tubes.

------
dustingetz
My git client doesn't need a refresh button.

~~~
jandrese
I'm not sure git is the example I would want to hold up of a service that
always synchronizes flawlessly and effortlessly.

Maybe I'm alone, but I've more than once gotten my local copy in a state that
seems to require me to blow it away and re-clone it to get it working again.
Sometimes it seems to get hung up at a particular point in time and I can't
get it to pull recent changes, even when I've tried to tell it to pull from
the head.

------
cottsak
(I fully accept this will prob start a war..)

But IMO this tracks back to the MPA vs. SPA problem. Do we actually need to be
using a SPA/JS framework (Angular, React, etc) and what do we get in return
which outweighs the wildly agreed increased development effort of SPAs?

I think the author is referring to mainly "wrapped" SPA web apps that sit
inside native apps with a "web view" rendering the SPA (like the browser
would). It's not just wrapped apps tho, many native apps have some kind of
hybrid where you're using a library directly (React Native?.. _dives for
cover_ ) which but a whole framework of abstractions on top of the native
interfaces. With so many "layers" and all these things being new and vastly
more complex than MPA web apps, the statistical likelihood of goofing things
up is just very high.

Where are the days of old (what? 10 years?) where we got to the edge of MPAs
(we didn't even call them MPAs then) and optimised the crap out of them making
them fast, and simple and quick and a pleasant user experience? I think we
come up with all sorts of poorly justified reasons to go to SPA/JS frameworks
these days and the users are the ones who end up paying the price.

~~~
factorialboy
The author talks about a mechanism to refresh / reload. Its probably not got
to do with SPAs vs MPAs.

SPAs can have refresh / reload mechanisms, but not all do. Same for native /
mobile apps, some have them and others don't.

~~~
gizzlon
In the browser you can always reload the page which presumably does the same
thing (full sync).

Already did that twice today in Evernote.

~~~
digi_owl
And sometimes when you do that you get the big scary "resubmit data" popup...

------
Encaitar
Isn't the car sharing app's map just 'representative'? Refreshing isn't going
to help when they are deliberately lying to you.

~~~
mseebach
No.

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

------
dannyw
You don't have to show a refresh button all the time. If the timestamp of the
most recent data is more than Xs, and you hash or build a merkle tree of all
the data, then you can opportunistically tell the user that the app's view is
out of date and automatically refresh.

~~~
setheron
Why does everyone want to throw a merkle tree at it.

~~~
viraptor
It's the solution that works. Random storage - hash it. Log data - merkle
tree. You don't even have to do proper one, because log of state hashes is
fine too.

