React Native v0.78 released

React Native v0.78.0 introduces breaking changes in Codegen, DevTools, and platform-specific APIs. Notable additions include new C++ functionality, improved logging features, and enhanced support for system fonts on iOS. The update also brings significant changes to dependencies, with bumps to Hermes, Gradle, and Fresco versions. Various performance improvements and bug fixes are implemented across different components and platforms.

This release focuses on enhancing developer experience and platform capabilities while addressing existing issues. It includes important updates for Android and iOS developers, as well as improvements to core React Native functionality and tooling.


v0.78 on GitHub (npm)


Release blog post


Changelog


v0.78.2

Changed

  • Deps: Metro minimum to 0.81.3, fix "_interopRequireDefault is not a function" (23c9dbc563 by @robhogan)

Fixed

Android specific

iOS specific

v0.78.1

Fixed

  • Deps: community-cli-plugin: resolve cli-server-api via peer dependency on cli (9ffbeadf8a by @robhogan)
  • DevTools: Fix disconnections of DevTools when the network is under significant strain (9e47ed9a20 by @vzaidman)

Android specific

iOS specific

  • Initialization: Call extraModulesForBridge callback in the New Architecture. (97adbd897f by @Bruno125)
  • Initialization: Added custom load js block in bridge mode (bdc83cb129 by @zhongwuzw)
  • Interop Layer: Properly pass nil for nullable parameters instead of NSNull for legacy modules (619d5dfbb2 by @cipolleschi)
  • TextInput: Fixes TextInput crashes when any text is entered while running as iOS app on apple silicon mac (282cdc9fb4 by @zhongwuzw)

v0.78.0

Breaking

  • Codegen: Separate component array types and command array types (825492b199 by @elicwhite)
  • DevTools: The FuseboxClient.setClientMetadata CDP method is removed. Instead, use ReactNativeApplication.enable. (1a9780f0e3 by @huntie)

Android specific

iOS specific

Added

  • C++: Added RawValue(Runtime*, jsi::Value&) constructor to make a RawValue from a jsi::Value. (03d2186ace by @hannojg)
  • Codegen: Include cxx modules in codegen schema (cf5ab03d43 by @elicwhite)
  • Deps: Add jest-diff v29.7.0 to devDependencies (b27bd00a38 by @andrewdacenko)
  • Logging: Add support for the second parameter of console.table to specify a list of columns to print in the table. (fd0894b1c7 by @rubennorte)
  • Logging: Add "jsEngine: hermes" to JS runtime Error prototype (85bdd75828 by Maddie Lord)
  • Metro: Add opt in for legacy Metro log streaming via --client-logs flag (86db4fa90b by @huntie)
  • Text: Added pointerEvents to TextProps type. (3efbe33ce0 by @hyochan)

Android specific

  • ActivityIndicator: setting resource-id from the testID prop (87b1bad45e by @mateoguzmana)
  • Codegen: Fixing schema types for component command params of Arrays (25c673e357 by @elicwhite)
  • Gradle: Make the addition of JitPack repository configurable (a98528e609 by @cortinico)
  • Logging: SoftException categories (c832f94cf7 by Thomas Nardone)
  • Logging: Add logging in ReactInstanceManager.onHostPause when activity is incorrectly null (c2fd35a442 by Maddie Lord)
  • Runtime: Added getState method for StateWrapperImpl (ed36e896ac by @hannojg)

iOS specific

  • Codegen: Add the source parameter to generate-codegen-artifacts to avoid generating files not needed by libraries. (98b8f17811 by @cipolleschi)
  • Initialization: Implement ReactNativeFactory (081be01a5d by @okwasniewski)
  • Text: Support system font families (system-ui, ui-sans-serif, ui-serif, ui-monospace, and ui-rounded) on iOS (1763321c89 by @cxa)
  • TextInput: Integrate a new property - disableKeyboardShortcuts. It can disable the keyboard shortcuts on iPads. (0154372b93 by @rezkiy37)

Changed

Android specific

iOS specific

Removed

Android specific

Fixed

Android specific

iOS specific