2011 • The app that looked simple on the surface was far more complex behind the scenes • At its peak, the app’s binary size was greater than 130 MB • To make Messenger’s iOS app faster, smaller, and simpler
used it (ex: the JSON processing library) • If the OS didn’t do something, found or wrote the smallest possible library code to address the specific need • For any cross-platform logic, used an operating extension built in native C code (ex: the Facebook-specific networking)
reuse of the same structure for different views • Instead of having the app store multiple screen designs, the database now holds instructions for how to display different building blocks depending on the various sub- features being loaded
handle concurrency, caching, and transactions • All the caching, filtering, transactions, and queries are all done in SQLite. The UI merely reflects the tables in the database • built a platform (MSYS) to orchestrate all access to the database • MSYS is a cross-platform library built in C with 100 percent line code/test coverage
client, https:// www.facebook.com/Engineering/videos/ 3509976602377949/ • A universal flexible sync system that allows the server to define and implement business and sync logic and ensures that all interactions between the client and the server are uniform • Built a server broker to support all these scenarios while the actual server back-end infrastructure supports the features