Change8

v0.78.0

Breaking Changes
📦 react-nativeView on GitHub →
9 breaking12 features🐛 2 fixes🔧 14 symbols

Summary

This release introduces breaking changes to Android and iOS APIs, including the removal of several Android classes and a change in iOS Image event units. Key additions include improved console.table support, system font support on iOS, and enhanced Codegen capabilities.

⚠️ Breaking Changes

  • Codegen: Component array types and command array types are now separated.
  • React Native devTools: The FuseboxClient.setClientMetadata CDP method is removed. Use ReactNativeApplication.enable instead.
  • Android: FrescoBasedReactTextInlineImageViewManager visibility changed to internal.
  • Android: pointerEvents API migration breaks compatibility for Kotlin usages where it was accessed as a val.
  • Android: RootView converted to Kotlin, which may affect inheritance or access in native code.
  • Android: GuardedResultAsyncTask abstract class has been deleted.
  • Android: FabricViewStateManager class has been deleted.
  • Android: ComponentNameResolver removed from the public API.
  • iOS: Image load event size info changed from logical size to pixel size.

Migration Steps

  1. Replace FuseboxClient.setClientMetadata calls with ReactNativeApplication.enable in devTools integrations.
  2. Update Kotlin implementations using pointerEvents to accommodate API changes from val to the new structure.
  3. Update iOS Image event handlers to account for dimensions being returned in pixels instead of logical points.
  4. If using FabricViewStateManager or GuardedResultAsyncTask on Android, switch to modern alternatives as these classes are removed.

✨ New Features

  • C++: Added RawValue(Runtime*, jsi::Value&) constructor.
  • Codegen: Include cxx modules in codegen schema.
  • Logging: Added support for the second parameter of console.table to specify columns.
  • Logging: Added 'jsEngine: hermes' to JS runtime Error prototype.
  • Metro: Added --client-logs flag to opt in for legacy Metro log streaming.
  • Text: Added pointerEvents to TextProps type.
  • Android: ActivityIndicator now sets resource-id from the testID prop.
  • Android: Configurable JitPack repository addition in Gradle.
  • Android: Added getState method for StateWrapperImpl.
  • iOS: Added source parameter to generate-codegen-artifacts to filter generated files.
  • iOS: Support for system font families (system-ui, ui-sans-serif, etc.).
  • iOS: Added disableKeyboardShortcuts property to TextInput for iPads.

🐛 Bug Fixes

  • Android: Fixed schema types for component command params of Arrays in Codegen.
  • Android: Added logging in ReactInstanceManager.onHostPause for null activity cases.

🔧 Affected Symbols

FuseboxClient.setClientMetadataReactNativeApplication.enableFrescoBasedReactTextInlineImageViewManagerpointerEventsRootViewGuardedResultAsyncTaskFabricViewStateManagerComponentNameResolverRawValueconsole.tableTextPropsStateWrapperImpl.getStateTextInput.disableKeyboardShortcutsNativeIntersectionObserverEntry