In order to make the internet sustainable for all users there needs to be a more simplified version of the content that can be easily processed by slower mobile web subscriptions.
This is because frustration leads to abandonment, lost sales and even bad reviews. So you end up paying for the network’s weakness. As unfair as that may sound, it’s a reality and the best we can do is find ways to design for poor networks. If we can successfully design apps that are light enough to work smoothly on lower bandwidths without sacrificing visual aesthetic and rich experience, that’s a win.
Websites like Facebook have come out with a stripped-down version of its site called Facebook Lite. This site can be accessed on phones that process at a slower rate. The average size of a webpage is often 1.5MB or more. But stripped down apps that cater to poor Internet connections allow for much smaller page sizes for users to get what they need faster.
Facebook Lite boasts a page that is just 252 kilobytes in size. Though the look of the site seems dated and clunky, the user interface (UI) is just right for users with a slow Internet. It is tempting to design a website or app to be flashy and beautiful to attract people and often times that can work, but it also makes the page size larger and more inefficient for sub-3G users. If you are a small business owner targeting local users in an area with high-speed Internet then there is no need to strip your site or app down, but in a situation where a growing number of users need quick turnaround time on a site, a simpler approach must be attainable.
There are a few technical best practices to improve the user experience while on a poor network connection:
- Handle failures gracefully
– Gracefully degrade when network performance is slow (ex: If network connection is poor while streaming HD video, degrade to a lesser quality)
- Use a custom timeout value
– At most operating systems level, the timeout value is set to 5 minutes. 5 minutes is an incredibly long time for a user to wait for a response. I would suggest setting the timeout at a logarithmic scale(retry 1s, 15s, 45s, 2m, etc.)
- Separate network failures vs server failures
– Separating both failures will make it easier to debug in your logs
– Network failures shift the blame to the user, which in some cases, can be helpful (ex: If a user is in airplane mode and tries to access new data that requires a network request)
– Server failures are reserved when the fault is on the app or network. Whereas packet loss occurred and the user should be informed that his/her upload did not finish
- Serve resources based on user behavior
– There’s a balance between providing the smallest resource(what’s needed) vs. limiting the number or network requests
ex 1: An email client should download the first ~5 unread messages in one request. Assuming(preferably through data insights), that the user will tap through those specific views. This technique provides a better experience vs downloading each individual message on demand.
ex 2: A site that is serving a large data response may want to make one network request, at a good connection, instead of making multiple requests with the possibility of network packet loss.
- Leverage caching
– Be conscious of what you cache and the cache expiration. You don’t want to take up too much space on your user’s phone.
- Allow users to cancel transactions that are taking too long
– Provide either a back button, cancel or gesture to keep the user in control of their experience.
A number of developing economies in places like Africa are currently housing a large chunk of the global app user population. However, poor internet connectivity is a regular feature in these areas. By not optimizing your app to perform flawlessly in low bandwidth areas, you could be missing out on a massive amount of users and hence revenue. By following the above guidelines, you could significantly reduce the amount of data your app consumes, making it perfect for users across the world even when the connectivity is poor, making sure that your revenue never goes down, and neither does your popularity.
References & Where To Learn More
Course: Emotional Design — How to Make Products People Will Love:
https://www.interaction-design.org/courses/emotional-design-how-to-make-products-people-will-love
To learn more about ‘When Choice is Demotivating: Can One Desire Too Much of a Good Thing?’, please see:
https://faculty.washington.edu/jdb/345/345%20Artic…
To learn more about The Paradox of Choice, please see:
https://www.ted.com/talks/barry_schwartz_on_the_pa…
To learn more about Emotion & Design: Attractive things work Better, please see:
http://www.jnd.org/dn.mss/emotion_design_at.html
To learn more about the influence of positive affect on decision making, please see:
http://www.psychologie.uni-heidelberg.de/ae/allg/m…