How long would you prompt the user with an indicator before showing a connection error? On the one hand a mobile user doesn't like waiting forever until the indicator disappears. On the other hand a request can take quite long when there is a poor network connection... How long do you let the user wait in worst case?
It's hard to answer such question without knowing the typical response time. Users are fairly accustomed to wait a few seconds when using mobile devices whilst on mobile networks.
This famous post, while applicable to websites, suggests that after 10 seconds users 'lose it'. Could be used as a rough guideline.
Put the user in control (be user-oriented)
There are two principle ways you can improve usability with regards to this issue:
- Provide progress indicator - while technically not always possible, in some cases big sets of data can be loaded in chunks which will allow progress indication.
- Prompt, don't time out - Say you have decided 10 seconds is your threshold. Instead of timing out the request, you may wish to present a message as such to the user:
- Gives some feedback to the user, informing them the application is still responsive.
- Buys you some extra time for the response to arrive.
- Allows the users to decide whether they prefer carry on waiting or cancel. The former is important in scenarios where the response is either urgent or important for the user.
I don't think there is a clear answer here, you can answer it very easy with "it depends".
You might have to consider the following things:
- How badly do users want the data sent/received? The more important they find it, the longer they will be willing to wait. A game submitting a score, item, badge, ... will need to be rather quick, while a business app uploading a file for example might take longer.
- There is a lower expectation rate depending on the current mobile connection (2G/3G/4G,...)
- Using mobile, signal strength could be an issue.
- Can the user do something else while he's waiting for your information (eg. can he switch application?)
Personally if the timeout is between 10 - 15s I will consider it a normal latency, if it is 20s or more, I will most likely quit the app.
We always think "Mr" or Mrs" average is using an App.
Suppose you were asked to apply accessibility standards to your app based on a few more users that has cognitive challenges or impaired vision...that creates another user Persona that would have to accommodate those demographics and alter potential security risks (when increased time is modified to suit their needs).
Given the above persona is "slow" to input data but will eventually complete task (if time was allotted for them), then what does 42 seconds vs 3 minutes means to them? How does suggested timeouts/sessions apply? And what is the solution as a value of time to accommodate this persona?
For UX purposes, one would have to re-visit the:
- Timeout length
- Length of session
- What risks should be noted when extended sessions and timeouts are applied (i.e. how long is "too long" when secure items like personal banking information is visible for xAmount of time?).
Now that devices operating on various wireless networks have all sorts of dependencies that would affect performance (i.e. threshold with Device speed, resources required to complete a query, OS support, missing optimization on non-native apps, the end users'network, bandwidth device is limited to, persona settings on the device itself, etc) we run into slapping more time to waiting on a response from the device or its app. I only tackled Accessibility as being a variable.