MDMustafa Demir
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

Keep reading