4 ms·
There's something to be said about user confidence and a user's confidence level directly correlating to their productivity using your app. I could not have th
by weixiyen 15y ago
There's something to be said about user confidence and a user's confidence level directly correlating to their productivity using your app.
I could not have thought of a worse example than removing a progress indicator from sending an email. Making an "async UI" work in a fluid way that provides confidence to the end user is much harder than simply changing the state immediately and hoping that 99% of the time, it works.
Error handing can be a pleasant experience if done correctly, and in this blog post it's just an afterthought.
Here's a better way to do it:
- I click "Send Mail"
- My UI changes as if it were sent, allowing me to do other things in the meantime.
- I receive a growl notification in some other part of the UI that tells me the email has been successfully sent.
- If 1 second has gone by and I did not receive a response from the server to confirm that the mail has been sent, I will see an indicator that tells me that the sending is in progress, where the growl indicator would have been.
- If it is an error, the indicator changes and allows me to click it to go back to the mail composition view.
The concept of providing perceived performance is not new, but the details are in the execution, and you will shoot your self in the foot if you don't cover all the little details that are required to make something like this work.
Otherwise, some company is going to implement some jarring async UI incorrectly and piss off a lot of users.
Yes, blocking a UI is bad, but notifying the user of progress and task completion is a very good thing.