Yeah, this was a great read!  Crazy engineering indeed!

We're not going to be implementing a custom networking protocol for our Android app anytime soon, but for me here are some of the key takeaways applicable to our app from what Facebook is doing:

-prioritizing keeping the APK slim
-optimizing image size/quality
-optimizing based on the specific "device year class" and network connection quality

-m.




On Thu, Mar 10, 2016 at 10:59 AM, Joaquin Oltra Hernandez <jhernandez@wikimedia.org> wrote:
Crazy engineering. They've rebuilt the internet (network layer and a browser) for their app...

The Lite client is a simple VM that provides various capabilities to interact 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.


On Wed, Mar 9, 2016 at 3:54 PM, Gilles Dubuc <gilles@wikimedia.org> wrote:
https://code.facebook.com/posts/1365439333482197/how-we-built-facebook-lite-for-every-android-phone-and-network

"To achieve an extremely byte-efficient wire protocol, instead of using HTTPS, Lite uses a custom message protocol over TLS (directly over TCP). One of the biggest pain points in a 2G network is that establishing a connection can be very slow; it can take multiple seconds. As most Lite traffic flows over a single connection to the backend, this pain point is mitigated in comparison."

_______________________________________________
Mobile-l mailing list
Mobile-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mobile-l



_______________________________________________
Mobile-l mailing list
Mobile-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mobile-l