Library support for New Architecture + Bridgeless in 2024 #167
Replies: 14 comments 30 replies
-
Btw - who was write access to that google doc with the libraries?
|
Beta Was this translation helpful? Give feedback.
-
@brentvatne I sent you an email regarding getting access to the doc. Hope that's ok. Just need to add the details for lib version and the versions it was tested against |
Beta Was this translation helpful? Give feedback.
-
Hi! I found firebase SDK already in the list. Is it planned to reach adobe to add the whole SDK to the migration? |
Beta Was this translation helpful? Give feedback.
-
Hey Brent! Thank you so much for this initiative, this is great! Can we add Here is the list: |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
-
@brentvatne
And update eventually:
|
Beta Was this translation helpful? Give feedback.
-
@brentvatne
|
Beta Was this translation helpful? Give feedback.
-
Hey @cortinico! I'n currently porting React Native Navigation by Wix to new bridgeless architecture and have some questions/blockers:
|
Beta Was this translation helpful? Give feedback.
-
Hi @cortinico , just create PR to migratte react-native-orientation-locker to new arch. Can u update the sheet? |
Beta Was this translation helpful? Give feedback.
-
hi @cortinico I have a PR to migrate react-native-contacts to new arch. Can you update the sheet? |
Beta Was this translation helpful? Give feedback.
-
I think we should also include @gorhom's react-native-bottom-sheet in the list. 2 useful links:
Hopefully, |
Beta Was this translation helpful? Give feedback.
-
It would be nice to include Tesla Motors I tried to enable new architecture for our app and observed that this library works well on iOS but shows this warning on Android. The library maintainers will welcome PRs regarding new architecture -> teslamotors/react-native-camera-kit#537 (comment) Here is my research issue where I document our journey to enabling new architecture for status-mobile -> status-im/status-mobile#18138 |
Beta Was this translation helpful? Give feedback.
-
I've recently migrated my React Native project to the New Architecture (currently using React Native version 0.72.14) and will be maintaining this setup for a few months. After the migration, multiple issues have surfaced. For example, components like FastImageView and BVLinearGradient stopped working. To address this, I opted for the interop layer by adding these components in react-native-config under unstable_reactLegacyComponentNames, and they started working. As I'm not updating the React Native version, I’m left with using the interop approach**. However, I encounter challenges in finding the correct component names to add to react-native-config.** The bigger concern now is that my app has become very slow, with unresponsive touches and sluggish bottom navigation. The performance issues seem to be related to the incompatibility of libraries with the new architecture. How can we efficiently identify the correct component names to add to react-native-config for interop. Determining which specific names are needed for each library is often confusing. What are the other possible ways to tackle major issues like unresponsive touches and slow bottom navigation? Note: Upgrading the React Native version is not an option for me. |
Beta Was this translation helpful? Give feedback.
-
@adyen/react-nativeLibrary version: 2.4.0 Crashes on iOS, verified by removing every import from @adyen/react-native. |
Beta Was this translation helpful? Give feedback.
-
Note
tl;dr: The New Architecture is being rolled out in 2024, and now is a great time to verify and fix compatibility issues in your libraries. React Native 0.74 provides an Interop Layer that greatly assists in this process, making it possible to use modules written for the legacy architecture with minimal changes in most cases. A small team of engineers have kicked off the effort with some of the most installed libraries, but more help is needed from the community to ensure coverage across the vast ecosystem. We're requesting help in the form of: library users testing and reporting issues, authors updating libraries, and engineers experienced within this domain assisting others with making their libraries compatible. Resources, links, and additional context are below.
Important
The current status of many of the most popular libraries is tracked on React Native Directory.
As shared in the New Architecture landing page, 2024 is the year that the New Architecture will be rolled out to all React Native users.
In order for developers to be able to begin transitioning their existing projects to the New Architecture, it's important that the libraries they depend on are compatible.
There have been previous efforts to expand library support for the New Architecture, which helped to inform changes that were needed to make this process easier for library maintainers.
In React Native 0.74, there are various Interop Layers enabled by default which allows many libraries to work without any changes — however, it's not perfect and some libraries will need to be updated to account for its quirks.
React Native 0.74 also enables bridgeless mode by default, which is a key feature of the New Architecture and may require changes to some libraries.
This discussion is a call for support in migrating third party React Native libraries, in this final push to get the New Architecture shipped.
Kicking off the initiative with the most frequently installed libraries
Meta and Expo kicked off this effort by identifying the 400 most installed libraries on Expo's CI service (EAS Build), and then filtering those down to those that depended on native code. We believe this is a good indicator of which are the most popular libraries in the React Native ecosystem as a whole.
We proceeded to either work on testing and fixing the libraries ourselves, or reached out to the maintainers of those libraries to ask for support. Many of those folks kindly agreed to help, and we've been working together to get their libraries updated.
📈 🔗 The current status of these libraries is tracked
in the "New Architecture support in popular libraries" spreadsheeton React Native Directory.This list includes the most popular libraries in the ecosystem, including libraries from Software Mansion such as react-native-reanimated and react-native-screens, libraries in the Expo SDK such as expo-updates, service libraries like react-native-firebase, and many others.
As of Wednesday, June 26, 2024, >61% of the the 400 most installed libraries are compatible.
How you can help
There are a few ways you can help with this effort, depending on your experience and interests:
Be sure to refer to the React Native Directory to see which libraries are already supported. Additionally, you can search in this discussion to see if anyone has already opened a thread for the library you're interested in.
The libraries that are most likely to require updates are those that ship or depend on third party native code. Libraries that only use JavaScript or React Native core APIs are expected to work without any changes (provided that they do not use private/undocumented APIs).
Resources to help you get started
Opening a thread for a library
Discussion title
Use the library name, eg: react-native-safe-area-context.
Discussion body
Provide information in the following format (where "New Architecture" means with bridgeless also enabled):
Below this, share any questions, comments, or concerns you have.
Beta Was this translation helpful? Give feedback.
All reactions