React Native 0.76 and Beyond for Vega

React Native for Vega’s goal is to bring you an easy-to-use port of React Native (RN) for Amazon’s devices. After prior versions on 0.64 and 0.67, we are currently focused on a single version of React Native (0.72) to simplify the release of our first Vega TV device. This approach allowed us to quickly address issues you encountered as you work towards production-ready app submissions. In 2025, we will expand support for new versions of React Native. This article explains upcoming changes we’re making to support new versions of React Native, including forward and backward compatibility, and what changes will be required on your Vega apps.

RN 0.76 will be our next supported version

We have been actively involved in the React Native community and know that some of you have started using more recent versions of React Native for other types of devices. We realize that Vega’s ported community libraries are crucial for many apps, but are not always compatible with newer React Native versions. As a result, we have been planning how to enable you with both a more recent version of React Native and a set of upgraded libraries from those available on React Native 0.72 for Vega. We have selected React Native 0.76 for Vega as the baseline for the next version: it comes with the new debugger (React Native DevTools) and allows for custom Metro resolvers. It also provides some further performance improvements. Although React Native mainline has already evolved beyond 0.76, this version allows us to provide you with a package of stable community libraries.

Supporting multiple RN versions

Vega embeds the RN runtime inside the OS to reduce application size and to improve performance as we prewarm the RN instances and provide other components such as splash screens. Since RN has not yet reached a stable, 1.0 release, we must embed each supported version inside the OS. We plan to support yearly upgrades and start by adding a second version during 2025. Beyond 2025, we will provide access to three RN versions—the most recently ported version and two previously-ported versions. While we strongly encourage you to adopt the latest React Native for Vega versions as they become available, we will introduce backward and forward compatibility so you can choose which RNK version to use.

Forward and backwards compatibility

We want to ensure app forward compatibility (i.e. apps, once submitted, will continue to be installable and usable with future OS releases) and backwards compatibility (i.e. newly submitted apps can also support older devices). Since React Native for Vega does not embed the RN runtime in your app, your apps will have to declare the React Native and library versions that you want to use (similar to minSdkVersion in Android). Later in 2025, we will embed both 0.72 and 0.76 on our devices and you will be able to choose between them. In the future, customers will be able to discover and download your apps as long as your most recent submission is aligned with one of the SDK versions present on the device. We strongly encourage you to adopt the latest React Native versions once available to take full benefit of performance and developer tooling improvements as well as bug fixes. In future, when your app relies on new device capabilities, you will be able to include such dependency so that your app will only run on such type of devices.

How does this affect you?

What does this mean in practice?

  • Given that React Native for Vega is a library in the OS, we will give you the capability to select either v2 (0.72) or v3 (v0.76) moving forward (see timing below) and we refer to this capability as “versioning”. Although we are not yet releasing 0.76, we are rolling out this versioning capability in v0.19 to allow you to familiarize with it. This change will not affect your code or configuration for the initial app submission for RN 0.72.
  • Simultaneously, we will also include the JavaScript parts of libraries as previously communicated - as a result, you must rebuild and resubmit your app once all libraries are included in the OS.
  • Starting in V0.19, you can declare version dependencies for React Native for Vega (e.g. v2 or v3) and other included libraries. The change will not impact initial (0.72) app submission, but provides a future path for you to upgrade your dependencies. E.g. you can bump from: 2.0.0+2.13.0 of @amzn/react-native-gesture-handler to 2.1.0+2.13.0.
  • By the third quarter of 2025, we will release a new SDK that will enable RN 0.76 and corresponding libraries. At that point, you will be able to update your apps to make usage of this new baseline. Keep an eye on our forums for additional updates and announcements on 0.76 availability and other topics related to this update.

If you have any questions, post them to our forums or connect with your appointed Amazon contact.