WhoBuilt

React Native news, insights & gossip with React Native Radio

Sep 27, 2023· 37 min· 1.0K views·Watch on YouTube

Speakers

Michał, host of The React Native Show at Callstack, and Jamon, host of React Native Radio at Infinite Red, discuss React Native developments in a crossover recorded at React Native EU in Poland.

React Native debugger changes

React Native 0.74 will no longer include Flipper in its default template, though Flipper support is not being removed. The hosts describe problems with its build-time impact, reliability, and behavior in apps. They welcome a Chrome-based debugger that runs JavaScript in the same environment as the device or simulator, helping reproduce issues that the old browser-based debugger could miss.

What React Native 1.0 should mean

The hosts say a 1.0 release should represent stable processes, a shared architecture, and reliable APIs, rather than just a version number. Stability would help library maintainers avoid repeated breaking changes and give companies more confidence adopting React Native. They expect the community to make that commitment together, and say it is not imminent.

Expo’s expanded role

Expo has evolved from an all-or-nothing setup where adding custom native code meant ejecting. Config plugins and Prebuild can generate native project folders from scripts, making customizations easier to reproduce and upgrades easier to manage. The hosts say Callstack has begun recommending Expo for greenfield projects, including its EAS and config plugin workflows, while developers can choose which Expo tools to use.

Static Hermes for performance work

Static Hermes is an experimental compiler that can turn typed TypeScript or Flow into native machine code, rather than interpreted bytecode. The hosts say it could help with performance bottlenecks such as encryption, with a reported speedup of up to 20 times over typical interpreted bytecode. It has type-related constraints and different development and debugging trade-offs, so they frame it as a targeted option rather than a replacement for ordinary JavaScript.

New Architecture compatibility

The hosts note that the New Architecture received little attention at the conference, while work continued on library compatibility. They explain that an interoperability layer lets old and new views coexist, easing migration for apps that depend on libraries that may not be maintained. The hosts see this as a practical bridge while newer libraries adopt the architecture and older ones gradually fall away.

Takeaways

  • Treat React Native 1.0 as a commitment to stable APIs and processes that third-party library authors can rely on.
  • Use the device-based debugger to investigate bugs that differ between browser JavaScript and the app runtime.
  • Consider Expo’s config plugins when native customizations make upgrades difficult to repeat.
  • Reserve Static Hermes for measured JavaScript performance bottlenecks, and account for its typing and debugging constraints.
  • Plan New Architecture upgrades around the libraries your app depends on and their compatibility path.

Mentioned in this talk

Search inside this talk

What was claimed 15

  • feature
    React Native: Flipper will no longer be included in the default template starting with version 0.74
    “it won't be included starting with 0.74 in React Native, in the main template”
    YouTube
    Unverified1 source· Talk
  • built
    “the React Native CLI, which Callstack... maintains”
    YouTube
    Unverified1 source· Talk
  • built
    battle-tested boilerplate
    “Ignite, which Infinite Red puts out”
    YouTube
    Verified2 sources· Talk
  • integrates with
    “based on the Chrome debugger”
    YouTube
    Unverified1 source· Talk
  • feature
    Reactotron: Includes logging, a state inspector, performance tools, and a design overlay
    “including logging and a state inspector”
    YouTube
    Unverified1 source· Talk
  • built
    “Infinite Red has put out Reactotron for a long time”
    YouTube
    Verified2 sources· Talk
  • feature
    React Native Debugger: Runs JavaScript on the phone or simulator rather than in Chrome’s V8 environment
    “it actually runs on the phone that runs JavaScript”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native: Intended to bring stability, stable processes, and API stability
    “We want to bring stability. We want to bring everyone to the same architecture.”
    YouTube
    Unverified1 source· Talk
  • feature
    Expo Modules: Supports native customization through config plugins and workflows
    “fully capable of supporting any native code you want through config plugins and different workflows”
    YouTube
    Unverified1 source· Talk
  • feature
    Expo Modules: Can be used with optional tools and workflows, including EAS and config plugins
    “a set of different utilities that you can mix and match”
    YouTube
    Unverified1 source· Talk
  • feature
    Hermes Agent: Compiles typed TypeScript or Flow into native machine code
    “Static Hermes is native machine code”
    YouTube
    Unverified1 source· Talk
  • feature
    Hermes Agent: Experimental and intended for performance-critical code
    “It would mainly help when you’re looking at performance”
    YouTube
    Unverified1 source· Talk
  • metric
    Hermes Agent: Up to 20 times faster than typical interpreted bytecode
    “up to 20 times faster than typical interpreted bytecode”
    YouTube
    Unverified1 source· Talk
  • feature
    Fabric: Interop layer allows libraries using old architecture methods to run with the new architecture
    “we're going to provide an interop layer for everything”
    YouTube
    Unverified1 source· Talk
  • role at
    Rick Hanlon is Core team member at Meta
    “Rick Hanlon from the Meta Core team”
    YouTube
    Unverified1 source· Talk

Related talks