Intermittent and metered networks.
WHAT TO ASSUME
Connections drop Speeds vary widely Data is metered and paid for
WHAT THAT MEANS FOR DESIGN
Offline must be a normal state, not an error screen.
WHAT TO PROVIDE OFFLINE
Access to data already retrieved The ability to continue working Actions queued and sent when connectivity returns
WHAT TO SHOW
The connection state, and what is pending.
WHAT TO AVOID
Blocking the interface on every request Failing silently Losing an action because the request failed
WHAT TO DO ABOUT REQUESTS
Retry with increasing delay, and a limit Cancel superseded requests Time out rather than waiting indefinitely
WHAT TO REDUCE
Image sizes Polling frequency Payload size Unnecessary analytics
WHY
Every byte is paid for by the user.
WHAT TO OFFER
A reduced-data mode, where the application is data-heavy.
WHAT TO TEST
On a slow throttled connection, and with connectivity toggled mid-request.
WHAT TO MEASURE
Data consumed during typical use.