React Native v0.75 released

React Native 0.75 brings significant improvements and bug fixes across Android and iOS platforms. Key updates include enhanced layout and styling capabilities, improved error handling, and better performance for Animated components. The release also introduces new features like support for color functions and percentage-based border radii. Several critical bugs were addressed, particularly in areas like ScrollView, TextInput, and the bridgeless architecture. Developer experience enhancements include updates to the CLI, debugger, and build processes.


v0.75 on GitHub (npm)


Release blog post


Changelog


v0.75.5

Added

Changed

Android specific

iOS specific

Fixed

Android specific

  • TextInput: Set TextInput selection correctly when attached to window in Android (1656394bae by @QichenZhu)

iOS specific

v0.75.4

Fixed

Android specific

iOS specific

v0.75.3

Changed

Fixed

  • TypeScript: Allow readonly array type for transform property (c16defaff2 by @tjzel)

Android specific

iOS specific

  • Infra: Include x86_64 slice when building for visionOS simulator (05dec917f2 by @okwasniewski)
  • Infra: Support bundle install from outside the ios folder using --project-directory (b22970e3cf by @blakef)
  • Codegen: Codegen will start looking for codegen-enabled dependencies from the project root. (46d17efa62 by @dmytrorykun)

v0.75.2

Added

Android specific

  • runtime: Add support for handling com.facebook.react.bridge.Dynamic as parameter for TurboModules (45cd81706d by @cortinico)

Changed

Android specific

  • ReactRootView: Replaced mLastHeight with mVisibleViewArea.height() since mLastHeight value is not getting updated. For width we are already using mVisibleViewArea.width() (603eb94dd9 by @shubhamguptadream11)
  • ImageSource: open for inheritance (02d9979c32 by @cortinico)

Removed

iOS specific

Fixed

v0.75.1

Changed

Removed

Android specific

v0.75.0

Breaking

Android specific

  • ReactViewBackgroundDrawable: Deprecate ReactViewBackgroundDrawable in favor of CSSBackgroundDrawable (d7766fa927 by @NickGerleman)
  • ReactContext: Make ReactApplicationContext and ReactContext abstract. Please instantiate BridgeReactContext instead (bridge mode). Or BridgelessReactContext instead (bridgeless mode). (e69f6755c8 by @RSNara)
  • layout: Enable flex gap percentage value for RN. (41a14962fc by @realsoelynn)
  • layout:: Set and require android:supportsRtl="true" for RTL layout (82c6f8a580 by @NickGerleman)
  • turbomodule: JSIModule - Deleting this class as you should be using TurboModule instead (73b4d67a78 by @arushikesarwani94)
  • runtime: ReactHostImpl - Removing ReactJsExceptionHandler param from constructor and providing a default private implementation (fe7e7a015f by @alanleedev)
  • DevSupport: DevSupportManagerFactory - Method .create() changed to take an additional parameter of type PausedInDebuggerOverlayManager (nullable) (1d26907ca4 by @motiz88)
  • runtime: OnLoad.cpp - Make the app responsible for returning core turbomodule if not using default app setup/template (7facb32f30 by @RSNara)
  • measurement: Delete UIManagerModule.measureLayoutRelativeToParent() (958f8e2bb5 by @arushikesarwani94)
  • PopUpMenu UIManager.showPopupMenu() and UIManager.dismissPopupMenu() have been removed (c631e93341 by @alanleedev)
  • ReactContext: Delete ReactContext.initializeWithInstance(). ReactContext now no longer contains legacy react instance methods. Please use BridgeReactInstance instead. (fb23470483 by @RSNara), (05ef779c0b by @fabriziocucci), (14fb1cc335 by @RSNara), and (f99dc486cd by @RSNara)
  • ReactContext Remove getJavaScriptContextHolder() from BridgelessReactContext since now it can be accessed through BridgelessCatalystInstance in Bridgeless mode (4595351310 by @arushikesarwani94)
  • ReactContext Remove getRuntimeExecutor() from ReactContext since now it can be accessed through BridgelessCatalystInstance in Bridgeless mode (f7b9aafd10 by @arushikesarwani94)

iOS specific

  • runtime: RCTHost.h - Remove getSurfacePresenter and getModuleRegistry (f19371f28d by @cipolleschi)
  • Image: Remove unused RCTImageLoadingPerfInstrumentationEnabled (f6b9a42985 by @realsoelynn)
  • Error Handling: Remove RCTRedBox access through RCTBridge (b5db214d2a by @realsoelynn)
  • runtime EventPriority - Remove EventPriority class and always use the default EventPriority::AsynchronousBatched. This is potentially a breaking change if something in OSS sets a different priority. If a build fails because of this, simply remove the use of EventPriority. (55ed1c26ab by @sammy-SC)
  • PushNotificationIOS: RCTPushNotificationManager - Deleting deprecated didReceiveLocalNotification & didReceiveRemoteNotification callbacks (7fffe692e7)
  • PushNotificationIOS: PushNotificationIOS - Deleting deprecated alertAction and repeatInterval (410e3b5ebd)
  • PushNotificationIOS: PushNotificationIOS - Deleting old push notification implementation (916dde4c60 by @philIip)
  • cocoapods: Rename BUILD_FROM_SOURCE to RCT_BUILD_HERMES_FROM_SOURCE (6a1509f318 by @cipolleschi)
  • cocoapods: Rename React-Codegen to ReactCodegen (6549216b76 by @dmytrorykun)
  • TextInput: Remove deprecated onTextInput callback (24aece35b4 by @Saadnajmi)

Added

Android specific

  • Image: Adds a new Image prop resizeMultiplier to help increase quality of small images on low DPI devices (b6c3433537)
  • PopUpMenu: Add (optional) onPopupDismiss() callback for PopupMenuAndroid (bc3e3360d1 by @alanleedev)
  • StatusBar: Added null checks, marked null safety in StatusBarModule (7349dabae2)
  • StatusBar: Added suppression for deprecated getter/setter usage in StatusBarModule (ac51deeaf4)
  • c++: Allow bridgeless apps to register cxx modules via cxxreactpackages (b9e52f0807 by @RSNara)
  • c++: Introduce CallInvokerHolder stable API (69bb4fca44 by @philIip)
  • colors Update ColorPropConverter to support color function values (4fb5573796 by @ryanlntn)
  • colors: Add isWideColorGamutEnabled to ReactActivityDelegate (0a9891a2f2 by @ryanlntn)
  • colors: Extend Property Processor to support long props (0a80270187 by @cipolleschi)
  • colors: Update ColorPropConverter to support color function values (fa7dbd578d by @ryanlntn)
  • colors: Update bridge to handle long values (0dc5c5f1f4 by @ryanlntn)
  • error handling: Option to set a custom JSExceptionHandler instance (098454d425)
  • gradle: Expose prefabs for newly added targets (c16761da83 by @WoLewicki)
  • layout Percentage support in translate (c13790ff1d by @intergalacticspacehighway)
  • layout: Added support for using percentages when defining border radius related properties. (181ed33ab0 by @jorge-cab)
  • runtime: Add 64 bit integer (long) value support to MapBuffer (57ed0fb309 by @ryanlntn)
  • runtime: Add the ReactMarkerConstants.CONTENT_APPEARED support on Android in bridgeless mode. (5da9fdf8f1 by @Kudo)
  • runtime: Added onUserLeaveHint support into ReactActivityDelegate (3cf6c64a80 by @behenate)
  • runtime: Added onUserLeaveHint support into ReactActivityDelegate (6450d08187 by @behenate)
  • runtime: Added featureflag to avoid additional background threads during execution (4324f08749 by @javache)
  • runtime: Added getNativeModule(name) to ReactContext (fdb2427a86 by @javache)
  • runtime: GetJavaScriptContextHolder() supported in BridgelessReactContext since it's supported in ReactContext[Bridge] (dfa6519749 by @arushikesarwani94)
  • runtime: Introduce BridgeReactContext (6386988de1 by @RSNara)
  • runtime: Introduced ReactContext.hasReactInstance() to replace .hasCatalystInstance() (3a3f3e6232 by @RSNara)
  • turbomodule: Add BindingsInstaller for TurboModules (d999e9bf1e by @Kudo)

iOS specific

Changed

  • Animated: Improved performance of Animated components (452373b5bf by @yungsters)
  • BlobModule: Add info to invalid blob response error (489df722b3)
  • BlobModule: Trim invalid blob response error message (30463fb007)
  • Pressable: Improve performance of Pressable component. (cfa784c5ce by @Zahoq)
  • ScrollView: MaintainVisibleContentPosition property on ScrollView now selects the first partially visible view as the anchor, rather than the first fully visible view. (252ef19c8d)
  • StyleSheet Optimized performance of StyleSheet.compose (34331af9ce by @yungsters)
  • c++: Allow invoking the AsyncCallback synchronously to allow for tight performance optimization. (765e542c8d by @nlutsenko)
  • debugger: Inspector proxy: Rewrite 127.0.0.1 to localhost in source map URLs for better IPv4->IPv6 tunnelling support. (a52bd7dd08 by @robhogan)
  • debugger: Update Chrome launch flags for --experimental-debugger launch flow (b1bb0bee41 by @motiz88)
  • deps: Bumped @react-native-community/cli to 14.0.0
  • hermes: Enable regenerator transform for hermes-canary (a0237e96f1 by @avp)
  • hermes: Disable Babel plugin for arrow functions for Hermes (cdc3b9cdfc by @yungsters)
  • jest: Enables React global flag that causes Jest testing environment to require act() (5a8327857b by @yungsters)
  • js: Console polyfill now copies all properties from the existing console object (949296571b by @motiz88)
  • linter: no-string-refs is now a lint error (387250112e by @yungsters)
  • react-dev-tools: Upgrade[react-devtools-core]: ^5.3.1 (2617ec5570 by @hoxyq)
  • react: Upgrade to react@18.3.1 (abb7070a51 by @yungsters)
  • share Update Share.share()'s argument types to be more explicit. (8b53d41a88)
  • template: Moved the template from react-native into react-native-community/template (07abfceae1 by @blakef)
  • testing: mockComponent now also mocks name (5062c5256e by @yungsters)
  • testing: Allow moving SyncCallback for advanced use-cases (43c55e98d4 by @javache)
  • yoga: Reduce warning level of distributed Yoga builds (b696a7dc5e by @NickGerleman)

Android specific

  • Alert: Migrated AlertFragment dialog builder to use androidx.appcompat (1/2) (297ded90aa)
  • Alert: Migrated AlertFragment dialog builder to use androidx.appcompat (2/2) (600d3f6ff1)
  • deps: Bump Fresco to 3.2.0 to fix CVE-2018-14498 (744024be7f by @cortinico)
  • deps: AGP to 8.5.0 (19f6aec4a1 by @cortinico)
  • deps: Kotlin to 1.9.24 (3f3abf5b40 by @cortinico)
  • DevSupport Expose openDebugger() method on DevSupportManager (b309af79e8 by @motiz88)
  • DevSupport In bridgeless, useDevSupport now is configurable by ReactNativeHost. (d195fd0c06 by @javache)
  • DevSupport: Decouple DevInternalSettings from DevSupportManagerBase (52cec1e798 by @Kudo)
  • DevSupport: Update constructor signature of DevServerHelper (a1e8118541 by @huntie)
  • gradle: Expose mapbufferjni via prefab. (c73e22142e by @tomekzaw)
  • runtime: Changed the handleRemoveView function in ReactViewGroup.java to ignore calls for Views that are not children of this ViewGroup (0d7a92b551 by @bartlomiejbloniarz)
  • runtime: Enforce Activities using ReactDelegate implement DefaultHardwareBackBtnHandler. (a2d277f740 by @javache)
  • runtime: Simplified ReactActivityDelegate to expose a single createRootView method. (3283202248 by @javache)
  • runtime: Throwing IllegalArgumentException from ReactPackage is no longer suppressed (2584bcb6c8 by @javache)

iOS specific

  • Modal: Move the snapshotting code before the dismissal. (30d6251b78 by @cipolleschi)
  • Networking: Fire onprogress event for XMLHttpRequest even when the Content-Length header is missing in the response headers (457d14bd1b)
  • RCTAppDelegate: Improve reusability for RCTRootViewFactory (23709f7c61 by @Kudo)
  • RCTAppDelegate: Support customizeRootView from RCTRootViewFactory (8956869792 by @Kudo)
  • cocoapods: Add DEFINES_MODULE for React-jsinspector.podspec (4e6186555e by @Kudo)
  • ruby: Update Gemfile in template (06eea61c19 by @matinzd)
  • runtime: Fallback to the first foregroundInactive window when there are no foregroundActive windows in RCTKeyWindow (42ceacd281 by @cipolleschi)
  • runtime: Move notifyObservers straight to RCTEventDispatcher.mm. (f5c888c2d7 by @WoLewicki)

Deprecated

Removed

  • Image: Remove non-existent methods from <ImageBackground/> component (09c903c439 by @retyui)
  • TextInput: Remove viewconfigs for onTextInput callbacks (910cde6134 by @javache)
  • debugger: launchId query param for /debugger-frontend is no longer generated automatically for each /open-debugger call. Caller of /open-debugger is now responsible for generating the launchId, which will be passed along to /debugger-frontend. (b7de916664 by @EdmondChuiHW)
  • dev-middleware: react-native/dev-middleware: Remove non-standard faviconUrl field from CDP /json response (df19e597e3 by @huntie)
  • typescript: Remove tvParallaxProperties prop from TouchableOpacity & add missing focusable, rejectResponderTermination props (0a0cd6517f by @retyui)
  • android - Animated: Removed NativeAnimationsDebugModule (already not Public API) (95f7a5c597 by @yungsters)
  • **ios - cocoapods: ** Delete deprecated Xcode version check (2b85a236a1 by @naxey)

Fixed

  • Animated: Fix broken native animation in Paper (92540a618d by @sammy-SC)
  • Animated: Fix sequence restart failure (a93a15aca3 by @asyler)
  • Animated: Fixed memoization for components wrapped with createAnimatedComponent (be06fd4e22)
  • Button: Adds forwardRef call to new functional component implementation of Button control. (8e7263a415 by @chiaramooney)
  • FlatList: Fix clicking items on the inverted FlatList on the new architecture (3753b7a0e7 by @kosmydel)
  • Networking Fix fetch memory leak (c647950e5e by @huzhanbo1996)
  • TextInput Handle fontWeight normalization for TextInput component (15f27bc299 by @NickGerleman)
  • Touchable: Fixed inconsistency in TouchableX component disabled / focusable behavior (775713cef7 by @rozele)
  • c++: Avoid ShadowTreeRegistry::mutex_ read lock reentrancy (1a164fae6a by @rozele)
  • cli: Allow proxying commands from react-native to react-native-community/cli with explicit warning (9aed45a9d9 by @blakef)
  • cli: Fix version checker not considering nightlies (489d9f6c62 by @tido64)
  • codegen: Align CodegenSchema.d.ts with CodegenSchema.js (ea3a7143b9 by @christophpurrer)
  • codegen: Don't break script phase and codegen when coreutils installed on macOS (e0799536ef by @blakef)
  • codegen: Fixed Props.h created from codegen missing default initializers in C++ struct (639d890dff by @alanleedev)
  • codegen: Make sure that we can't include Codegen symbols multiple times (46b6453eb6 by @cipolleschi)
  • codegen: Fixed crash when passing fewer arguments than expected in native modules using codegen (179b684e76 by @rubennorte)
  • codegen: Fixed crash when passing non-numeric values where RootTag is expected to methods in native modules using codegen (abbc6eb022 by @rubennorte)
  • codegen: Fixes enum codegen value cases (1a1795a537 by @zhongwuzw)
  • debugger: LogBox and Chrome DevTools stack frame collapsing patterns are now compatible with Windows file paths. (8d0046a5e1 by @motiz88)
  • debugger: Debugger frontend socket-termination countdown now begins after the ping message is actually sent (20462ca984 by @EdmondChuiHW)
  • debugger: Fix breakpoints opening to incorrect location or disappearing from debugger frontend UI. (ac714b1c33 by @robhogan)
  • debugger: Inspector proxy: prevent errors proxying a device message from blocking the handler queue or spamming logs. (e05319cc87 by @robhogan)
  • error handling: Fixed LogBox not showing correctly on the New Architecture (db1043dfbf by @rubennorte)
  • error handling: Remove accidental duplication in React warnings in Logbox (32c3cd3e8a by @gaearon)
  • error handling: Fix logbox reporting for React errors (64e6721b23 by @yungsters)
  • error handling: Support component stacks without source info. (1b53051b8c by @rickhanlonii)
  • error handling: Support component stacks without source info. (e9e668f0ec by @rickhanlonii)
  • error handling: Support hermes component stacks with missing source info. (82db330360 by @rickhanlonii)
  • infra: Replace deprecated babel-plugin libraries to fix deprecation warnings on installation (6213b2a62a by @kaganece)
  • jest: Fix jest setup for Image methods (resolveAssetSource, getSize, prefetch, queryCache) (d53cc2b46d)
  • layout: Fix duplicate rotation operations (54f582f651 by @NickGerleman)
  • layout: Fixed padding not being applied to inline views in text (12aef32b82 by @j-piasecki)
  • layout: Fixup margin: auto and justification behavior for overflowed containers (f21d9afe0b by @NickGerleman)
  • runtime: Add collapsableChildren prop (7b44c8d1d0 by @NickGerleman)
  • runtime: Add missing NativeState methods to the WithRuntimeDecorator class. (218ea5d44c by @bartlomiejbloniarz)
  • runtime: Add option for multiple mountingOverrideDelegates (358fe46969 by @WoLewicki)
  • runtime: Fixed prioritization of idle priority tasks, which were incorrectly scheduled as immediate priority (0ca3ed87f3 by @rubennorte)
  • runtime: New architecture timer methods now return integers instead of an opaque object. (a16f7dc547 by @javache)

Android specific

iOS specific

  • Animated: Fixes animated frame timing (690df7a556 by @zhongwuzw)
  • ContextMenu: Hide AutoFill from context menu when using contextMenuHidden (493dbb2190 by @jakex7)
  • DevMenu: Fix RCTPerfMonitor not showing up in scene based app (16775215d5 by @ouabing)
  • InteropLayers: Make sure to pass the RCTBridgeProxy to ViewManagers (d6c90cf7ed by @cipolleschi)
  • Networking: Fixed headers content type check for iOS bundle download (d9b0f15c84 by @jayshah123)
  • PullToRefresh: Properly recycle the RCTPullToRefreshViewComponentView (18f0a90358 by @cipolleschi)
  • RCTAppDelegate: Added space to $(inherited) string to avoid creation of wrong cpp flags in RCTAppDelegate podspec (be93092c1b by @nikhiltekwani09)
  • RCTAppDelegate: Add missing forward blocks to RCTRootViewFactory (9d79f05e68 by @okwasniewski)
  • RCTAppDelegate: Allow importing RCTAppDelegate in Swift (7c953698b4 by @okwasniewski)
  • RCTAppDelegate: Allow usage of RCTRootViewFactory from Swift (5aea518d88 by @okwasniewski)
  • RCTAppDelegate: Fixed Method name in hint from customiseView to customizeRootView (46d4b837a5 by @svengiebel)
  • RCTAppDelegate: Fixes customizeRootView migration comment (fbf9c4343a by @zhongwuzw)
  • RCTAppDelegate: Remove loadSourceForBridge in RCTRootViewFactory (0c02b26c1e by @okwasniewski)
  • SCrollView: Preserve content offset in ScrollView when the component is suspended (510d2906b2 by @sammy-SC)
  • ScrollCiew: Remove usage of deprecated scrollIndicatorInsets in RCTScrollView (ce10ce4d98)
  • ScrollView: Fixing scroll view breakage caused by #44789 (f4b921c1d5)
  • Text: Fixed font size enlarging when adjustFontSizeToFit is set (ed7766cee9 by @j-piasecki)
  • Text: Fixed text highlighting in the New Architecture (eadcebbb3e)
  • TextInput: Fix Multiline TextInput with a fixed height scrolls to the bottom when changing AttributedText (f6badca2f9 by @fabOnReact)
  • Touchable: Fixed stale state on TouchableOpacity and TouchableBounce (00055f89a0 by @sammy-SC)
  • UIActivityIndicatorViewStyles: Removed references to deprecated UIActivityIndicatorViewStyles (a23ae9c7f2)
  • accessibility: Fix the accessibility label not being applied to text components on the new architecture (9922628032 by @j-piasecki)
  • autolinking: Auto linking script of script phase (e320ab47cf)
  • cocoapods: Exposes react_native_pods methods through autolinking.rb (6b56fb0d0b by @blakef)
  • dark mode: Fix dark mode on initial load. (b957513cc6)
  • error handling: Add missing call to [super viewDidLoad] in RCTRedBox.mm. (d93788301c by @hakonk)
  • layout: Fix InputAccessoryView width on device orientation change (8597727c28 by @mauriciomeirelles)
  • objc: Fixed missing header imports (46f53e97f0)
  • privacy manifest: Fix error on handling privacy manifest (c24929c5f4 by @cxa)
  • privacy manifest: Fix privacy aggregation (00b366159d by @aleqsio)
  • privacy manifest: Privacy Manifest aggregation failing due to missing nil check (47b42dc845 by @swrobel)
  • runtime: Avoid calling abstract methods in RCTComposedViewRegistry (9bdd777fd7 by @cipolleschi)
  • runtime: Extract the constants from ViewManagers in the UI Thread if needed. (94537c7beb by @cipolleschi)
  • runtime: Fixed HermesExecutorFactory.h build error when importing its private header (2d46dbe6ce by @Kudo)
  • runtime: Fixes NSDataBigString length calculation (9d637e4622 by @zhongwuzw)
  • runtime: Fixes race condition of m_batchHadNativeModuleOrTurboModuleCalls (3f74f69cf0 by @zhongwuzw)
  • runtime: Implement shared atomic counters and replace static integers in RCTImageLoader and RCTNetworkTask that were accessed concurrently, which in some cases lead to data races. (ffc16fc18b by @hakonk)
  • runtime: Let RCTHost be initialized with a function to provide the bundleURL so that it can connect to metro on Reload when the url changes. (8b8b85bb1f by @cipolleschi)
  • runtime: Missing progress in onProgress native event arguments (78ab5f4b83 by @netmaxt3r)
  • style: Fixed border being drawn over children when no color was set (91c5a6d936 by @j-piasecki)
  • style: Removed Legacy iOS 10 code messing with border radius (9204e44ef5 by @jorge-cab)
  • turbomodule: Fixed race condition in native module invalidation. (b7812a8b6c by @dmytrorykun)
  • xcode: Do not use temporary node when creating the .xcode.env.local (8408b8bc96 by @cipolleschi)