What is the best perceived UX for mobile applications which require data downloaded midway through the journey. I cannot find this information online in Apple's Human Interface Guidelines (or I am looking in the wrong place if so), nor Google's Material Design Guidelines.

Given the following scenario: say I have a contact list which contains a name, I then click on the contact and, in a successful scenario, the Contact Details are downloaded from the server (which contains more information on the selected contact), and that information is displayed.

However, this information may not be obtained each time (e.g. because of network coverage on a mobile device) and so an error occurs. What is best in terms of UX?

  1. Display a "loading" animation; attempt to download the data; and display an error while remaining on the contact list. This saves unnecessary navigation, but can be perceived as nothing at all happening and in the worst case scenario, it looks like the app cannot even navigate to the user details screen. This also goes against MVC guidelines from a code perspective.

  2. Navigate to the page; display "skeleton" text and/or an animation to indicate at least the user's action has been recognised... but in the event of an error is it best to display the error and:

    a. Navigate back to the Contact list; or

    b. Remain on the Contact Detail page.

  3. Something else?

I mention MVC above, because each page should only be interested in the data it downloads and displays/handles and if item (1) above is the desired experience, the Contact details will need to be downloaded prior to being handed off to that page, which kind of goes against this pattern.

  • Does MVC try to define data loading? I thought it was just sort of a simple UI concept. REST deals with networked data and processing. How does your app handle loss of connection elsewhere? Or is this the first time you're addressing it? – moot Nov 27 '18 at 13:31
  • You're right, it's REST which handles the physical transfer - what I was referring to, was the appropriate location in the MVC architecture to obtain that data. And this is the first time :). – keldar Nov 27 '18 at 17:19
  • Sorry - correction: REST is a type of web service and defines a set of rules and verbs for data manipulation, it isn't a protocol however. – keldar Nov 27 '18 at 17:33

The issue is losing connection which is a system issue. System issues are top level, they affect everything so you have to handle them at the top level of your UI.

Apps that need connection should regularly check the connection and notify users if it's lost using dialogs or alerts.

Once you think about this, you'll see that it makes sense in every way. Instead of integrating messages everywhere IN your app, put one message OVER your app where it belongs.

This properly indicates to users where the problem is, in the system, not your app. Instead of having your app break down and try to explain how it's not your app's fault, have the system notify them and don't let it break your app.

Keeping users aware of system status is a popular UX concept from NNGroup. There's too much to link to.

REST is like a data transfer engineering concept. It's the best way to engineer web apps. It's all about optimizing backend processing and data transfer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.