I have an app (RateBeer for Android) that allows users to post updates to the social network, like publishing a beer review, setting their current status, setting a star-rating or adding availability to the database.
What is the best way to provide the user with feedback on the posting of their data?
Here are some suggestions (sorry fr the long post), of which I currently use number 1):
An ongoing notification a la Tweetdeck (image 2). Non-removable status notification that states what is being posted/uploaded and disappears when it was successful or provides an error message + deeplink into app to try again when it fails.
- + Pretty unobtrusive: allows direct further use of the app
- + Direct feedback to the user of what's happening
- + The error notification allows for an easy retry
- - It exposes connectivity details to the user
- - It uses a notification, which arguably are not supposed to be used for this
- ? The process should ideally be cancel-able (see design docs)
A modal progress popup a la Google+ (image 1) and most other apps. Shows status of posting in main screen; screen closes on success or the popup closes on failure, after which the user can retry.
- + Direct feedback to the user of what's happening
- + Allows for an easy retry
- + Very easy to implement
- - Obtrusive: stalls the user in further using the app
- - It exposes connectivity details to the user
- - Back button has to be disabled
- ? What happens when the user navigates away (e.g. to home) on posting?
- ? The process should ideally be cancel-able (see design docs)
Show progress on screen when user waits, use notification when user navigates away. (Can't remember which app I've seen this using.) Notificaitons are used sort-of properly this way.
- + Unobtrusive: allows direct further use of the app and back button works normally
- + Direct feedback to the user of what's happening
- + Allows for an easy retry (direct or via the notification)
- - It exposes connectivity details to the user
- - Quite complex to implement reliably, I can imagine
- ? Unfamiliar pattern to users?
- ? The process should ideally be cancel-able (see design docs)
Total obfuscation of posting process a la Gmail. No actual process of posting - succes or failure - is show; instead the user trusts in the app; maybe BECAUSE there is no direct feedback? This method is advocated by Googlers.
- + Very unobtrusive;
- + No exposure of connectivity
- + Fairly easy to implement (although some offline storage is required)
- - Users either cannot expect to see the post/update in the app (or you 'fake' this using offline storage)
- - No direct feedback to the user of what's happening with the posting
- ? What to do if posting fails even after some retries?
- ? Users have to trust your app to be reliable?
Scheduled (sync-like) posting. User's post/update would clearly be marked as being offline and a sync can be started manually or scheduled in the background. Like most note-taking apps, but one way.
- + Unobtrusive; the user can sync when he/she likes
- + Allows for an easy retry
- + Fairly easy to implement
- - It exposes connectivity details very clearly
- - It suggests a two-way sync, which might not always be the case
- ? Unfamiliar pattern to users (for non-note apps)?
Background posting process, but with visual indicator per message of whether it is posted, a la Whatsapp (image 4). Combines 4. and 5.
- + Very unobtrusive;
- + Only a very limited (and useful) exposure of connectivity
- - Mixing of live and offline data not suitable for all applications (e.g. setting a star-rating)
- ? Notification if posting fails even after some retries?
- ? Moderately easy to implement (although some offline storage is required)
Background posting, with toast on success, a la Play Store (image 3) app ratings.
- + Very unobtrusive;
- + Only a very limited (and useful) exposure of connectivity
- + Fairly easy to implement
- - No direct feedback to the user of what's happening with the posting
- ? Notification if posting fails even after some retries?
A hairy detail: my server (RateBeer.com, which I do not control myself) is quite unreliable, so the failing of an action is somewhat (1%?) common. Moreover, the posting is not super fast; it can take a couple of seconds on slow/bad connections.
Alternatives? Favourites?