How a trip to Africa helped Facebook retool its Android app for the developing world

alex sourov

Alex Sourov

One of Mark Zuckerberg’s goals for Facebook is bringing the “next 5 billion” people onto the social network. But that isn’t as simple as increasing the company’s advertising spending in the developing world.

So how can it be done? Alex Sourov, an engineer from Facebook’s Seattle office, traveled to Africa with colleagues to identify the challenges for Facebook users who don’t have access to a high-speed mobile network.

Armed with a variety of low-cost Android devices and the latest version of Facebook’s app, the team found that Facebook’s approach at the time was a complete mismatch for users’ experience on the ground in Africa.

“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,” he wrote in a post today. “We even burned through our monthly data plans in 40 minutes.”

Since that trip, Facebook has taken a number of steps to increase its Android app’s performance. Because the budget smartphones they used for testing often only had single-core processors, Facebook engineers found that they could improve startup times by waiting to initialize certain functions until after the app started up.

unnamedIn addition, Facebook engineers used a feature of the Google Play Store that lets companies submit multiple versions of the same application for different devices, to reduce the app’s size. Sourov and his fellow engineers found that users in Africa often had older versions of apps, because their devices didn’t have enough space to download and install updates. Now, the Android app is 65 percent smaller than it was at the beginning of the year.

Sourov says Facebook also needed to upgrade its networking stack inside the Android app to better handle intermittent cellular data connections. The company is now using OkHTTP, an open-source project provided by Square, to help deal with intermittent network connections by quickly retrying operations, rather than waiting for a response.

The episode highlights how easy it is for companies based in areas that feature consistent network connectivity and high-end mobile devices to overlook restrictions that might harm adoption of their apps in other markets. Not every company will have the funding to send a group of engineers to Africa, but keeping these sorts of limitations in mind may help other apps improve their performance.