Hello everyone! Today we are announcing the 0.68.0 release of React Native, with opt-in to the New React Native Architecture, bug fixes and more.
Highlights of 0.68Opting in into the New ArchitectureWebsite updatesInterested in helping React Native stabilise new releases?
Highlights of 0.68
Andrei Calazans helped us selecting the most relevant changes that 0.68 brings along:
Breaking changes and version bumps
This version brings along a few breaking changes:
React Native has been updated to Node 16, the latest LTS. Since on CI we test for LTS and the previous LTS, this change means that users are now required to use a version of Node >= 14.Android Gradle Plugin was updated to 7.0.1, enforcing JDK 11 for Android builds, so make sure to upgrade your configurations (we recommend you use the temurin11 JDK flavor)Removed fallbackResource from RCTBundleURLProvider API on iOS.
Tooling has also been updated – here are the main bumps:
@react-native-community/cli to 7.0.3Metro to 0.67react-devtools-core dependency to 4.23.0Flipper to 0.125.0react-native-codegen to 0.0.9Kotlin to 1.6.10Soloader to 0.10.3Gradle to 7.3Android compile and target SDK to 31
Also, thanks to this commit by Nicola Corti the Android Gradle Plugin will download the default version of NDK by itself, so you don’t have to specify and install it separately anymore.
There are a lot of other changes and fixes landed in this release, but here’s a small selection that you might be interested in:
Gijs Weterings fixed Forwarding testID to RCTModalHostView for easier E2E targeting of Modals.Liam Jones fixed an issue where calling console.error caused the RedBox to appear alongside the LogBox.Sam Kline fixed the empty blank screen after a BundleDownloader failure in dev mode on Android.Jeffrey Hyer fixed an issue where the KeyboardAvoidingView didn’t work as expected with the onLayout prop.
If you are interested in the full list of changes, you can read it in the changelog at the link here.
This release includes 614 commits by 68 contributors! Thank you all!
We wanted to also thank the release testers and supporters who helped us catch regressions before the stable 0.68.0 release: you are incredibly valuable to the success of this release!
If you, your app or your company is interested in joining the “Release Tester” program, you can sign up here.
Opting in into the New Architecture
As briefly mentioned above, React Native 0.68 is the first version with opt-in support for the Fabric Renderer and the TurboModule system. This marks a crucial milestone for the rollout of the New React Native Architecture. To help you get up to speed with the changes, we added the Architecture section to the website, where you can find several in-depth guides about internals of the new systems.
At the same time, we added the migration guide to the documentation and launched a working group dedicated to the New Architecture. You can find more information, including how to opt in, in the previous blog post.
Please note that the New Architecture still needs some fine tuning. Some of the third-party libraries that you depend on might not be migrated yet, and you may encounter issues that we haven’t discovered yet. If you do so, please report them to our New Architecture Working Group.
About React 18: React 18’s new rendering engine is not supported by React Native 0.68, this will happen in a future version. This is because React 18 relies on the New Architecture to benefit from the new capabilities presented in the React 18 announcement blog post. For more information, see the React Conf keynote here.
Along with improvements to the main codebase, with the help of Simek, Megatron4537 and slorber there have been quite a few improvements landing on the website too! In particular, you will now be able to learn how to contribute to React Native via the new section in the top toolbar.
Moreover, the “Contributing” section and the new “Architecture” section are now unversioned — there is now only one copy of these sections, rather than one for each React Native version.