Facebook is big. In fact, as of March 2014 Facebook has 1.28 billion unique monthly active users. That means that around one in every six people on earth have logged into Facebook at least once in the last 30 days.
However, at the beginning of 2012 Facebook realised that for it continue to grow it would need to tap new users from outside of Europe and America. So Facebook went out in search of new users in the two most populous places in the world, Africa and Asia, and within two years have grown the overall user base by nearly 30%.
But Africa and Asia are different to the US and Europe in three very important areas: the networks aren’t yet as developed and robust, the smartphones that are on the networks aren’t all iPhones or Galaxy S5s, and data prices are generally higher than their European counterparts… or at least they are a greater proportion of the average income. This presented a massive challenge for Facebook’s Android development team whose Facebook app was now being installed on a host of low-cost, low-spec smartphones that connect to less reliable data sources, less frequently.
So Facebook sent a team of product managers and engineers to Africa to investigate how their app performs in the developing world using several different Android smartphones and the most up-to-date version of Facebook’s app at the time. The result? As expected, the team found intermittent, low-bandwidth network connections coupled with a lack of memory space on the devices caused slow load times and constant crashes.
Armed with their new-found knowledge, Facebook’s engineers now had a view of the problem that they were determined solve. Here’s how they did it:
Right from the start the engineers realised that Facebook was slow out of the gates for older phones, especially those running single core processors. So they chopped up the whole way the Facebook loads when you tap on the icon. Some processes were delayed until the processor could handle them while others weren’t loaded at all until the features requiring them were used.
Result – Up to 50% reduction in initial startup time.
Photos are a big part of the Facebook experience but, as with all things on the internet, photos require data to load. Since data is a finite and expensive resource in our part of the world, Facebook decided to change the way it handled photos to make it more efficient Using WebP image compression for Facebook’s images resulted in data savings of between 25 and 35 percent compared to the same images in JPG format and 80 percent when compared with PNG format images.
Images used to be loaded at their maximum resolutions so that when you decided to zoom in, the full sized image was available for immediate use. Images now load at the correct resolution for the device to show a thumbnail and only load the full resolution image when you tap to zoom in.
Less data used on pictures of people’s babies and food? Sign us up.
Result – Up to 50 percent reduction in data used.
Not all Android phones are created equal and in the case of many of the low cost phones that have gained serious traction in developing markets storage space is often an issue. It means that people will be reluctant to install new versions of an app if it increases in size and would rather keep the space for photos or music instead. Using Google Play’s ability to upload multiple versions of an app install file for phones running different versions of the Android OS and utilising different screen resolutions Facebook’s engineers were able to install only the features that would work on each smartphone and not those that would just be taking up space on the device.
Result – Up to 65 percent decrease in size of the app on devices.
It’s fantastic to see a company as big as Facebook engaging with the developing world on our terms and not just as another market clone of the US or Europe. I doubt that Facebook would have done this much work on their app had they not needed new users from developing world to bolster their flagging subscriptions but I am glad that they did it nonetheless.[Source – Facebook, Image – Facebook, Google Play]