React Native 0.73 is here: The Evolution Continues, Setting New Standards

React Native 0.73 is here: The Evolution Continues, Setting New Standards

My favorite aspects of the new release were:

01) Debugging Improvements

The ReactNative Team has updated the Debugging Improvements and is considering moving away from Flipper. Personally, my debugging encounters with Flipper were unsatisfactory, prompting a preference for using the terminal instead. The recent decision by the RN team to replace Flipper brings me great enthusiasm. They've outlined several reasons for this transition, all of which resonate with my experiences:

  • The instability of the debugging experience with Flipper, frequent crashes, and difficulty performing core workflows, such as initial installation/connection to the host application.
  • The performance of the Flipper debugging experience and its user interface responsiveness was subpar compared to all other tools in the RN developer toolchain.
  • Flipper historically lagged in addressing issues necessary for a smooth experience in React Native.
  • Flipper added numerous dependencies on both Android & iOS, prolonging build times and complicating the release process.

The ReactNative team is actively working on a new JavaScript debugger, which is currently in the experimental phase. Further details can be found at Debugger. Notably, despite Flipper's removal from new React Native projects in the future, it will persist as a standalone product for native app debugging. Developers will retain the option to manually integrate Flipper into their apps if they desire.


02) Time to delve into Kotlin.

The RN team announced they are embracing Kotlin as the recommended language for Android apps built with React Native. This aligns with the direction the Android ecosystem has been moving in for several years, enabling you to write your app using a modern language. They've updated React Native's template on Android to utilize Kotlin instead of Java. The new MainActivity.kt and MainApplication.kt files are 36% smaller in size.

If you've previously modified the Java files in your project and need support migrating them to Kotlin, you can use the Code > Convert Java file to Kotlin File utility in Android Studio.


03) Support for Android 14

The latest update to React Native brings complete compatibility with Android 14. With version 0.73, React Native developers gain the capability to target the newest Android SDK version, API Level 34, also known as 'Upside Down Cake.'

Moreover, to accommodate Android 14, the Android Gradle Plugin (AGP) utilized for constructing Android applications has undergone a significant update from version 7.4.x to 8.1.x. This major version shift introduces a set of substantial changes outlined in the release notes provided by Google for versions 8.0.0 and 8.1.0.

Crucially, the building of Android apps now mandates Java 17. To upgrade your Java version to 17, you can execute the following commands:

brew tap homebrew/cask-versions
brew install --cask zulu17        

Additionally, remember to update your JAVA_HOME as per the instructions detailed in the Getting Started guide.


04) Introducing Bridgeless Mode: A Key Update in the New Architecture

Another component of the New Architecture is being released: Bridgeless Mode. Until now, when enabling the New Architecture in your app, the Bridge remained available to support backward compatibility with older components and modules. However, our vision is to completely phase out the bridge. Starting from React Native 0.73, you can enable Bridgeless Mode, which will entirely disable the creation of the bridge.

In addition to Bridgeless Mode, they've also brought in something called a Native Module Interop Layer. This special layer lets you use older parts of the app again while in Bridgeless Mode. They've also adjusted the Renderer Interop Layer from React Native 0.72 to work well with Bridgeless Mode.

Just like other new things in the design, Bridgeless Mode is still in the testing phase. They're asking people who are interested to give it a try and tell them about any issues or things that don't work well in a special group for testing the New Design.


05) Say Goodbye to Remote JavaScript Debugging (Most Heartbreaking Update)

Previously, Remote JavaScript Debugging functioned as a legacy debugging mode that linked an external web browser (such as Chrome) to your app. It operated by executing your JavaScript code within a web page at http://localhost:8081/debugger-ui. However, this method often resulted in erratic app behavior during debugging and proved incompatible with native modules under the New Architecture.

As of version 0.73, Remote JavaScript Debugging has been deprecated and eliminated from the Dev Menu. To enable the remote debugger, users must now manually utilize the NativeDevSettings API. Instructions for this manual activation process can be found in the Other Debugging Methods documentation.


#reactnative #newversion #reactnativedeveloper #reactnativedevelopment

To view or add a comment, sign in

More articles by Manojkanthan Rajendran

Explore content categories