Facebook wants people to know that they take their mobile experience seriously. After sending a team of engineers and product managers to Africa to test the Android app in developing countries and discovering that their devices couldn’t handle the low-bandwidth and had insufficient memory space to be really functional in emerging markets, they decided the app needed some changes.
First, they focused on improving the start speeds for the older devices. After realizing that single-core devices had slower start times because too many features were initializing at the same time, they deferred the initializations until at least after startup. In addition, they set up their News Feed to fetch stories earlier in the process so it loads faster. These changes helped reduce start-up times by more than 50 percent.
Since data is expensive in emergent markets, reducing the Facebook app’s consumption of this precious resource was the next step. Without suffering a huge impact on quality, they switched from using JPG and PNG to WebP for transmitting Facebook images, resulting in 25-35 percent data savings. They also decided that instead of automatically loading images at a high quality, it would be better to quickly load the necessary image (thumbnail, preview, or lower resolution of the full image), but they left an option for a user who still wants a full image at the highest resolution. Finally, after fine-tuning their cache strategies, they reduced data use by 50% compared to their Africa experience.
In addition, the Facebook team tested and tweaked their pre-fetching algorithms with the goal of decreasing the number of News Feed reports with failed image loads. Now, images to be loaded next are prioritized in the queue, while at the same time prevented from being trapped for too long. This, along with the smaller images, reduced failed or slow image reports by nearly 90 percent.
Finally, Facebook looked to reduce overall app size. The most popular devices in Africa have very little available available space, which makes it difficult to install upgrades. They utilized Google Play’s capability to upload several APKs for different screen resolution and Android OSes. Once testing was finished, Facebook developed tools that allow them to both calculate how every feature contributes to app size as well as analyze device size regressions. The result was a 65 percent decrease in app size compared to the beginning of the year.
In a nutshell, the Africa trip emphasized the importance for emerging markets to have high mobile performance, constant networking reliability, small application size, and tight data efficiency. In the past year, the Facebook team has collectively devised how to improve in all these areas for all platforms, and they are already seeing significant success after just one year.
It is nice to know that while Facebook is keeping its first world customers supplied with efficient experiences, it is also trying to make itself not only available world-wide, but also to improve itself for all users, regardless where they might be geographically. Indeed, Facebook is serious when they say that they want Facebook to work for everyone, regardless of region, network condition, or mobile device.
For more information, check out Facebook's engineering blog!