WhoBuilt

Getting React Native New Architecture to You

Sep 25, 2024· 25 min· 3.9K views·Watch on YouTube

Speaker

Arushi Kesarwani, a software engineer on Meta’s React team, explains the React Native New Architecture rollout at React Universe Conf 2024, presented by Callstack.

What the New Architecture enables

The New Architecture rewrites React Native’s internals with a new renderer and native module system. JSI removes the Bridge’s queuing, enabling synchronous data sharing and access to layout information. It also supports concurrent rendering, React APIs such as Suspense and transitions, and automatic batching, which Kesarwani illustrates with smoother slider updates.

How adoption became easier

Kesarwani compares the rollout to upgrading an engine while a plane is in flight, given React Native’s large ecosystem. React Native 0.68 introduced the architecture as an experimental opt-in; later releases added interop layers and backward compatibility. Bridgeless became the default in 0.75, and the New Architecture was announced as the default for 0.76.

Interop layers and library migration

Interop layers let legacy native modules, components, and view configs work with the New Architecture, often without developers needing to manage the transition directly. Kesarwani cites React Native View Shot: community reports exposed rendering issues, and fixes to the core interop layers helped the library work. The React Native Directory added a compatibility label and filter; Kesarwani reported more than 835 compatible libraries at the time.

Features available with the New Architecture

Some newer capabilities require the New Architecture. React Native 0.75 added percentage values for Yoga properties such as gaps and border radius, as well as string values for translate transformations. React Native 0.74 added static positioning, and Kesarwani says the latest Reanimated was compatible exclusively with the New Architecture.

The case for switching

Kesarwani says interop layers and ecosystem work have made migration simpler, while adoption unlocks features that may not support the legacy architecture. She encourages developers to enable the New Architecture and invites them to complete a survey to inform the rollout.

Takeaways

  • Check the React Native Directory’s New Architecture label and filter when assessing library compatibility.
  • Use interop layers to ease migration of legacy native modules and components, then validate app-specific behavior.
  • Compare rendering behavior with concurrent updates and automatic batching, especially in UI flows driven by native events.
  • Review whether features your app needs, such as percentage-based layout values or static positioning, require the New Architecture.
  • Include feedback from migration issues in your rollout process; fixes to shared interop layers can benefit other libraries.

Mentioned in this talk

Search inside this talk

What was claimed 11

  • feature
    Callstack: Brought the conference together; described as a software engineering consultancy
    “This conference is brought to you by Callstack, a total software engineering consultancy.”
    YouTube
    Unverified1 source· Talk
  • role at
    Arushi Kesarwani is software engineer on the React team at Meta
    “I'm a software engineer on the React team at Meta”
    YouTube
    Unverified1 source· Talk
  • feature
    Fabric: New renderer and native module system designed for synchronous operation and concurrent React features
    “a significant rewrite of React Native's internals, with a new renderer and a new native module system to make it synchronous”
    YouTube
    Unverified1 source· Talk
  • feature
    Fabric: Supports concurrent rendering and features from React 18 and beyond, including Suspense and automatic batching
    “supports concurrent rendering and features that have shipped in React 18 and beyond”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native: Bridgeless became the default in version 0.75
    “That allowed us to confidently make Bridgeless the default in 0.75.”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native: New Architecture became the default in version 0.76
    “in 0.76, ... the new architecture will be the default”
    YouTube
    Unverified1 source· Talk
  • feature
    Fabric: Interoperability layers allow existing legacy native modules, components, and view configs to work
    “The interop layers make it possible to use existing native modules, components, and view configs.”
    YouTube
    Unverified1 source· Talk
  • feature
    Expo: Expo Modules Core support made the vast majority of Expo modules work out of the box with the New Architecture
    “the vast majority of Expo modules just worked out of the box once we added support for them in the Expo Modules Core”
    YouTube
    Unverified1 source· Talk
Show all 11 facts

Related talks