Keeping its eyes firm on the next five billion, Facebook sent out its engineers to the land of Africa in a bid to study and gauge how the Facebook Android App was faring in regions with low bandwidth, constrained data access and low data plans.
The team of product managers and engineers set out to Africa and once there purchased several Android phones to test Facebook App’s performance.
“…the testing process proved to be difficult”, noted Facebook engineering manager Alex Sourov in a blog post. “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.”
Loaded with the raw data from their testing experience, the teams returned to their bases in Seattle, London and Menlo Park and decided to address four major things – performance, data efficiency, networking and application size.
Sourov noted that during their testing, they had observed slow load times and the first thing they wanted to address for the start time of the app. To ensure that the app loaded faster, they looked into each of the potential bottlenecks and then decided to deter the initialization of the features until after the app was started or until the feature was used.
To address the data efficiency part, the team included use of alternative compression methods for faster data transmission, image resolution that the device can handle and fine-tuned the process of using cache and image reuse.
Networking was the next thing and for this it used OkHttp in Android app as well. “OkHttp allows us to support fast retries for intermittent network situations, take advantage of the SPDY protocol for faster concurrent network transmissions, and enable powerful instrumentation across the networking stack”, noted Sourov.
After all their work, the team finally managed to reduce start times of the app by more than 50 percent, cut down data usage by 50 percent, reports of slow or failed image loads by 90 percent, and reduced the overall size of its Android app by 65 percent.