In this conversation, Simon Grimm interviews Oskar Franco about the new architecture in React Native. They discuss the current bridge concept, the need for a new architecture, and the three main components of the new architecture: Fabric, JSI, and CodeGen. They also talk about the challenges and benefits of migrating to the new architecture, the use of host objects, and how to create a new architecture-ready native module with JSI. In this conversation, Oscar Franco discusses different module systems in React Native, including Turbo Modules, Expo Modules, and Nitro Modules. He explains that Turbo Modules came with a new architecture and offer benefits such as code generation and lazy initialization. Expo Modules are easy to initialize but may have performance issues for certain use cases. Nitro Modules, are considered the fastest alternative. Oscar also talks about using Rust in React Native and the benefits it provides, such as memory safety and better tooling. He created the OP-SQLite library, which is claimed to be the fastest SQLite library for React Native.
Learn React Native - https://galaxies.dev
Oscar Franco
Links
Takeaways
- The current bridge concept in React Native uses JSON serialization, which can become a bottleneck for performance.
- The new architecture in React Native includes Fabric, JSI, and CodeGen, which aim to improve performance and provide better interoperability between JavaScript and native code.
- Migrating to the new architecture can be challenging, especially for larger projects and dependencies that are not updated for the new architecture.
- The use of host objects allows for the creation of hybrid objects that have both native and JavaScript functionality.
- Creating a new architecture-ready native module with JSI can be facilitated by using tools like React Native Builder Bob.
- Turbo Modules offer benefits such as code generation and lazy initialization, but setting them up can be painful.
- Expo Modules are easy to initialize and portable, but they may have performance issues for certain use cases.
- Nitro Modules, developed by Marc Rousavy, are considered the fastest alternative.
- Rust is a memory-safe language with integrated tooling and is becoming popular for writing SDKs for React Native.
- OP-SQLite is a fast SQLite library for React Native that uses host objects for improved performance.