GSoft Consulting
Mobile Development

React Native New Architecture: Migration Guide and Real Performance Data

AS

Ahtisham Shahzad

React Native Lead

8 April 2025

8 min read
React Native New Architecture: Migration Guide and Real Performance Data
Mobile Development

The React Native New Architecture has been 'coming soon' for so long that teams stopped paying attention. Now it's stable, the migration path is clear, and the performance improvements are real and measurable. We've completed 12 migrations. Here's what you'll actually encounter.

What Actually Changed in the New Architecture

  • JSI (JavaScript Interface): Replaces the old async bridge. JavaScript can now call native code synchronously. This eliminates the serialisation/deserialisation overhead that caused dropped frames during heavy native interactions.
  • Fabric: The new rendering system. Components render on the UI thread with synchronous state updates. Solves the 'animation jank during JS thread congestion' problem that was endemic to the old architecture.
  • TurboModules: Native modules are now lazy-loaded and accessible via JSI rather than the bridge. Startup time improvements are significant — we measured 200–400ms faster cold starts on older Android devices.
  • Codegen: Strongly typed interfaces between JS and native, generated at build time. This is a double-edged sword — great for correctness, source of most migration breaking changes.

The Breaking Changes You Will Hit

⚠️ Third-party native modules are the main blocker

Most migration time is spent waiting for or patching third-party native modules to support the New Architecture. Before starting a migration, audit all packages that include native code and check their New Architecture support status. react-native-camera, react-native-maps, and payment SDKs are the common blockers.

  • Native modules must use TurboModule spec: Any custom native module built with the old NativeModules pattern needs to be rewritten to use TurboModuleSpec.
  • ViewManagers must use Fabric spec: Custom native UI components need the new Fabric component spec. This is the most involved migration step.
  • Synchronous native calls change behaviour: Code that relied on the async bridge's 'post to next frame' timing may behave differently when JSI makes calls synchronous.

12

Apps migrated to New Architecture

38%

Avg startup time improvement

55%

Reduction in dropped frames (FlatList)

3–5 days

Avg migration time per app

Tags

React NativePerformanceJSIFabriciOSAndroid

Work with us

Ready to build your product?

We help product teams across the UK, Netherlands, Australia, and North America ship faster without compromising quality. Let's talk about your project.

Talk to our team →