Hello, everyone. It's fantastic to be here today to talk about something that affects every developer at some point in their journey, that is performance. As we all know, mobile users expect seamless, fast experiences. Even a small lack can lead to frustration and abandonment.
My talk today, from lack to lightening, boosting the React Native app performance, will explore the optimization techniques to help you build apps that are not just functional, but delightfully fast. Whether you're troubleshooting bottlenecks or planning for optimizing, this will help you to equip with the practical strategies, tools, and examples that you can apply. Let's get started.
I'm Swetha. I'm working as a senior software engineer at Replik. I love trekking, I love bike riding, and I love animals, and I'm from India. Let's start by understanding why performance is a top priority for mobile apps. Studies show that 53% of users abandon an app if it takes longer than three seconds to load. 80% of users abandon the app that lag or crash. And the effects don't stop there. Every second of lag reduces conversion by 7%. And when app performs poorly, users churn, app ratings plummet, and businesses lose revenue. So, as a developer, our goal is to create apps that feel instantaneous and intuitive. To achieve that, we need to maintain a smooth 60 frames per second, or FPS. When we drop below 30 FPS, users start noticing, and that directly impacts the engagement and the retention. Today we'll focus on actionable ways to overcome these performance challenges.
But before we move over there, let's have an overview of the React Native architecture. The React Native promise of cross-platform development is built on its architecture, but this flexibility comes with a few challenges. In the legacy model, the React Native relies on a bridge to communicate between the JavaScript thread and the native thread asynchronously. This requires JSON serialization, which adds overhead and latency, especially for large data uploads. Here is a visual representation of what I just talked about, where this is a bridge which is used to communicate between the JavaScript thread and the native threads, and this all happens asynchronously, which requires JSON serialization.
Now, the new architecture. This features JSI, the JavaScript interface, fabric renderer, and turbo modules, which replaces the bridge. Now, JSI allows direct synchronous communication, unlocking significant performance improvements. These architectural shifts form the foundation for many of the techniques we'll discuss today. And here is a visual representation of what I was just talking about, the JSI, the fabric, the turbo modules, interacting, making the communication between the React and the native site.
Comments