In June 2015, Facebook launched the Facebook Lite app worldwide. Now, the app has crossed the 100 million user milestone, the fastest hundred million any Facebook version has achieved till date. The Facebook Lite app was especially designed to work in 2G network conditions, one that most users in developing nations are quite familiar with. The idea was also to optimise photos and videos for less data consumption and create a basic Facebook app that is less than 1MB in size. Another approach Facebook took was to make the app available for all types of Android devices ranging from low-end to flagship level devices. Android being the obvious choice here because of the wide price range of smartphones available in the ecosystem.
Now, 9 months after the Facebook Lite app released in India, we sat down with Vijay Shankar, Product Manager for Facebook Lite, to understand India’s usage patterns for FB Lite and the future of the app beyond 2G networks.
“We want everything to be snappy,” says an enthusiastic Shankar. There’s a marked difference in load times for Facebook Lite now, than when it originally launched in the country. Facebook says that they conduct extensive market research in India to understand the demographic. “We have done over 50 projects all over the country in getting to a lot of detail on different topics. We tried understanding the importance of language localisation, translation, how do people use devices, do people interact with Facebook differently, what they use and care about the most,” explains Shankar. For research, Facebook sets up labs in various locations and bring people in to observe how they react to the Facebook app. “In Facebook Lite, when we did a day of lab studies we spent anywhere between 60 to 90 minutes per user who came to the lab,” says Shankar
Incidentally, India also ranks amongst the top 5 regions using the Facebook Lite app. Other regions where FB Lite enjoys immense popularity are - Indonesia, Brazil, Mexico and Philippines. Mostly all nations where 3G network connectivity is not seamless and network drops are a smartphone user’s daily woe.
But, what about improving network conditions? India, for one, is at the cusp of 4G and has had 3G connectivity become cheaper. The ballooning smartphone sales are also an indicator of people wanting to get on higher networks than 2G. The viability to an app such as FB Lite becomes questionable in the long run as users upgrade to faster networks. In its defence, Facebook’s Shankar says that they are trying to solve multiple problems with Facebook Lite and not just that of a slow network. “If networks become faster, I will be very happy,” claims Shankar. He also shared some interesting data stating that “around 1.6 billion people in the world still don’t have access to 3G or 4G networks.”
So what has changed for Facebook Lite in the past few months? For one, the startup time of the app has been made 25% faster than what it was. Facebook also added support for videos and multi-photo uploads late last year. Although one thing most FB Lite users will notice is that lesser video content is pushed onto the timeline as compared to the main Facebook app. “What stories we show you in terms of what’s relevant to you, is the same in terms of how we think about it for the main app. So, you shouldn't see too many differences,” explains Shankar, also promising to pay more attention to this feedback.
Sticking to videos, Shankar also revealed some new and upcoming features for Facebook Lite. Apart from calling out the size of the video to keep data conscious users informed, Facebook Lite will introduce a new feature called ‘Play Later’. Using Play Later, users will be able to buffer videos in the background, while they continue to browse the app. Users will then be informed via a notification, once their video is ready to play. This feature will make its way to Facebook Lite in the coming months. When asked about an iOS version, Shankar said that for now, the prioroty is to stick with Android in the near future.
At the backend, Facebook Lite has also started using “asynchronous uploads” for photos and videos. Asynchronous uploads means that after a script sends a server request, It continues the execution of commands without waiting for a reply from the server. This essentially gives the Facebook Lite app the ability to upload photos and videos in the background. The app notifies users once their uploads are completed. “We are still not even satisfied by where we are, we are trying to do better,” says Shankar.
Facebook has also published a blog post on how they built Facebook Lite along with a look at the architecture of the app. Facebook feels their journey may inspire startups to build on the same principles. Below is an excerpt from the blog post published by Facebook:
A LOOK AT THE ARCHITECTURE
Given these constraints, we chose a proxy server architecture with a very thin client. We used the successful Facebook For Every Phone architecture as the starting point and adapted it for Android.
Facebook Lite architecture overview
To reach the APK size target, the Lite APK doesn’t have the product code and resources found in a typical Android app. The Lite client is a simple VM that provides various capabilities to inter-act with the OS (such as read a file, open the camera, create an SQLite database, and so on) and a rendering engine to drive the Android UI. Product code is written on the server and is expressed in terms of the capabilities the client has. Resources are sent down from the server as needed and cached. So it has infinite scalability for building additional product without bloating the APK.
The Lite architecture is designed to let the server side do the heavy lifting, which enables the app to work well on very low-powered devices, like the LG Optimus ME. The server fetches data from the Facebook backend services and sends down screens to the client in the form of a compressed UI tree similar to a DOM, which the client then renders. As a client talks to only a single server in a session, the server can push data to the client in addition to the client requesting data.
Instead of using HTTPS, Lite uses a custom message protocol over TLS (directly over TCP). Compressed message exchange takes place over the persistent TLS connection the client establishes to the server for the duration of the session. This design opens the door for a lot of optimizations that help with reducing data usage and performing on 2G networks.
Lite has a set of image servers that talk to the CDN and other image stores to enable the Lite server to serve exact-size images to the client.
You can read the entire poste here.