Facebook engineers have gone all the way to Africa to research ways to make their Android app more usable in areas where service is limited and handsets less robust.
In a blog post Facebook engineering manager Alex Sourov wrote, "We purchased several different Android handsets to test the latest version of the Facebook app -- and the testing process proved to be difficult. The combination of an intermittent, low-bandwidth network connection and a lack of memory space on the devices resulted in slow load times and constant crashes. We even burned through our monthly data plans in 40 minutes."
That doesn’t seem like it would make for a particularly pleasant user experience so the engineers went back and started tweaking the app.
The team worked to improve the app's performance, data efficiency, networking, and application size. In the end, they were able to reduce start times and data usage by 50%, reports of slow or failed image loads by 90%, and the overall size of its Android app by 65%.
Sourov said the team used a three-step solution for improving data efficiency including using alternative compression formats for image transmission, loading images at a resolution that devices could handle and fine tuning the process used to cache and reuse images.
Sourov also said that Facebook plans to extend these best practices to new features it launches in the future and any updates planned for existing ones. "The lessons learned have already impacted the development of new features. We test all major features and changes in poor networking scenarios... We also expanded our playbook to other apps, such as Messenger and Instagram."
All these steps seem like good ideas and could even find a place in countries where connectivity is good and more powerful devices are the norm. If Facebook can achieve the same performance without cutting features there is no reason why they shouldn’t implement those changes across the board.