WhoBuilt

Behind the Scenes of React Native 0.74 Release

Apr 22, 2024· 22 min· 3.5K views·Watch on YouTube

Speakers

Mukash Linski, host at Callstack, discusses the React Native 0.74 release with H from Callstack and Alex from Meta on Callstack’s Coffee Talk podcast.

Yoga 3.0 brings web-aligned layout changes

Alex describes Yoga 3.0 as the release’s headline feature, adding `align-content: space-evenly` and CSS `position: static`. Some layout behaviors change to better match the web, so upgrading may require styling changes. Static positioning is available with the New Architecture.

Bridgeless becomes the default

React Native 0.74 enables Bridgeless mode by default, advancing the New Architecture. Alex says work with Expo and the open-source community improved library support, rendering, and compatibility with some bridge APIs. The hosts encourage developers to check library support and contribute fixes; they point to a GitHub discussion tracking it.

Runtime, tooling, and platform updates

State updates inside `onLayout` callbacks are now batched, which can reduce component render commits. The React Native CLI uses Yarn 3 by default for new projects, with the `node-modules` linker, while npm and Bun remain options. Android’s minimum SDK rises to 23, and the hosts report an APK size reduction of about 3 MB for an empty app.

Deprecated APIs and migration work

React Native removes the deprecated PropTypes package; the core components now use TypeScript, and the hosts recommend TypeScript or Flow for type safety. The iOS push notification API has been updated to use Apple’s User Notifications framework, with API changes and some methods removed. The hosts say the legacy API is deprecated and planned for removal in a later release, and that its current migration steps include AppDelegate changes.

Release process improvements

Release guidance moved to the React Native Releases repository and now uses diagrams to explain the steps. GitHub Projects provides a release board for tracking pick requests in one place. Alex says publishing is now a unified, local step that is about twice as fast, and version parity across React Native packages is planned from 0.75.

Takeaways

  • Check your libraries’ Bridgeless support before upgrading to React Native 0.74, and contribute fixes where needed.
  • Review Yoga 3.0’s changed layout behavior and test styles that depend on start, end, or static positioning.
  • Batching `onLayout` state updates can reduce render commits, but may change assumptions in existing components.
  • Plan to migrate from the deprecated iOS push notification API and follow the release post’s AppDelegate steps.
  • React Native CLI projects default to Yarn 3, but teams can continue using npm or Bun.

Mentioned in this talk

Search inside this talk

What was claimed 16

  • role at
    Mukash Linski is host of the React Native Show podcast at Callstack
    “I'm Mukash Linski”
    YouTube
    Unverified1 source· Talk
  • role at
    H from Callstack is performance optimization team member at Callstack
    “I work at Callstack, mainly as part of the performance optimization team.”
    YouTube
    Unverified1 source· Talk
  • works at
    performance optimization team
    “I work at Callstack, mainly as part of the performance optimization team.”
    YouTube
    Unverified1 source· Talk
  • works at
    engineer
    “I'm an engineer at Meta on the React Developer Experience team.”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native: Yoga 3.0 adds web-aligned layout behaviors, including align-content: space-evenly and CSS position: static support
    “We have the Yoga 3.0 major release, which comes with some new layout behaviors and features”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native: Bridgeless mode is enabled by default
    “In 0.74, this option is turned on by default”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native: State updates in onLayout callbacks are batched together
    “React state updates in onLayout callbacks are now batched together.”
    YouTube
    Unverified1 source· Talk
  • uses
    Yarn 3 is the default package manager for newly initialized projects
    “now, two years later, it’s the default package manager whenever a new project is initialized by the React Native CLI”
    YouTube
    Unverified1 source· Talk
Show all 16 facts

Related talks