Scaling Instagram's Launcher Activity
summary
Instagram replaces an ActivityGroup launcher with a FragmentActivity that wires per‑tab fragment controllers behind a central host manager, ships via a shim/legacy runtime switch and staged QA→alpha→beta rollout over nine months, introduces shared controllers and a custom lint rule to prevent regressions, reproduces and fixes a low memory overlapping fragment bug, and measures a 2.5% cold start improvement with an overall 11% crash reduction.
AI-written summary · about
chapters (13)
- 0:00Introduction and team overview
- 1:13Legacy infrastructure problems
- 3:18How legacy launcher worked
- 6:25Limitations and workarounds
- 8:10Complex feature challenges
- 11:19Scaling issues and developer velocity
- 12:44New infrastructure design
- 15:30Debugging fragment overlap bug
- 17:53Testing and risk mitigation
- 21:00Code refactoring strategy
- 22:29Communication and lint rules
- 23:11Phased rollout process
- 25:41Results and takeaways
related talks
34mHow We Rebuilt Instagram Photo Sharing: Compose Interoperability With Large Legacy Systems
37mSingle Activity by Example
46mModern Android: How to ditch Activities and Fragments
56mYou've been told lies about Fragments
28mCustom Launcher – Why and How do I build one?
39mSingle activity: Why, when, and how
47mTackling Memory Issues on the Instagram Android App
18mFragments: The good (non-deprecated) parts
