#050 - New Arch, JSI, Native Modules & Rust with Oscar Franco
Listen now
Description
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 Oscar X: https://x.com/ospfrancoOscar website: https://ospfranco.com/Oscar GitHub: https://github.com/ospfrancoOscar YouTube: https://www.youtube.com/@ospfrancoLinks About the New Architecture: https://reactnative.dev/docs/the-new-architecture/landing-pageReact Native Bridgeless Mode for Dummies: https://www.youtube.com/watch?v=K5HBIKAjZ4UReact Native Builder Bob: https://github.com/callstack/react-native-builder-bobOP-Sqlite: https://github.com/OP-Engineering/op-sqliteTakeaways 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.
More Episodes
In this conversation, Simon Grimm and Britta Evans-Fenton discuss the importance of accessibility in React Native and mobile development. Britta shares her personal journey into accessibility, motivated by her grandmother's experience with macular degeneration. They explore the definition of...
Published 11/05/24
What are my top 3 libraries? Which styling solution is the best? How can we build better universal apps for web, iOS and Android? In this special Q&A episode I answered tons of your questions about the current state of React Native, Expo and the future improvements like RSC or Expo DOM...
Published 10/22/24