All articles
EngineeringJune 3, 20251 min read
Cutting a React Native Cold Start from 9s to 4s
How deferring SDK initialization and lazy-loading Firebase modules nearly halved Chordie's perceived startup time.
A 9-second cold start is a churn machine. On Chordie, most of that time was spent doing work the first screen never needed.
Find what blocks the first frame
The biggest offenders were synchronous SDK initializations firing at module import: Firebase, analytics, attribution. None of them are needed to render the first screen.
Defer everything non-critical
- Lazy-load Firebase modules instead of importing the whole bundle at startup.
- Defer analytics SDK init to after the first interaction, not before the first frame.
- Move attribution and remote-config fetches off the critical path.
The result
Perceived startup dropped from 9s to 4s — a 55% improvement — without removing a single feature. The lesson: startup cost is mostly about when you do work, not whether you do it.
Tags
#React Native#Performance#iOS