~/talk

The Evolution of Facebook’s Mobile App Architecture

Talkat Product @Scale Spring 2022 · on Wednesday, 2022-04-27· [frontend-architecture]
links:none on file
slides:none on file

Facebook moves from an HTML5 webview to native and faces a 30-second startup on iPhone 4, fragile runtime crashes from string IDs, and sprawling inter-module dependencies. The team removes the early initializer, introduces a synchronous pre-fetch API, replaces dynamic modules with static C function mappings generated from Buck metadata and JSON, and validates navigation at build time. The result is faster startup, eliminated missing-module crashes, and pluggable lightweight implementations via Buck-based code generation.

AI-written summary · about

  1. 0:00Intro
  2. 0:16History (2007-2010)
  3. 2:01Building a Screen (2012)
  4. 3:30App Startup Time
  5. 4:00Flaw #2: Runtime failures
  6. 4:31Runtime failures A code-sharing nightmare.
  7. 8:07Breaking apart FBAppModule Moved away from runtime object discovery - static mappings.
  8. 8:45C Functions + Static Mappings
  9. 11:30Generating metadata
  10. 12:20Generating code via using metadata
  11. 13:19Adding Validation to Code Generation
  12. 14:53Fixing the Dependency Issues Lightweight objects which add metadata to the graph. Validation checks 1:1 mapping between nav objects and modules.
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.