React Native Performance
The following course is designed for developers who have production experience with React Native. The scope dives deep into the native side of the framework. It’s a very low level in terms of React Native development. The course tackles a lot of the iOS and Android application development topics. It’s perfect for gaining a wide overview of mobile app creation, and lets you look at React Native in a different way.
a. React performance techniques
Optimizing React code is crucial for well made React Native apps. In the beginning of this training we’ll explain the life cycles of React and the best ways to consume them to achieve performance boosts. After that, we’ll show some patterns and anti-patterns used in daily React development, which significantly affect performance.
b. JavaScript debugging and profiling
Writing JavaScript code is a major part of React Native development. As with any other language, sometimes it’s easy to introduce a shiny line of code that could kill performance. In this section we’ll introduce tools that will help participants diagnose their code and eliminate bottlenecks.
c. Understanding the communication between JS & Native
Understanding the communication between JS and Native is crucial for optimising React Native performance. We want to make every participant aware of how it works, what it means to block a bridge and how we count FPS. Additionally, we will compare an initialised React Native app with native apps, including a demonstration of native tools that work well with React Native.
d. Diving deep into profiling in Native IDEs (Xcode, Android Studio)
Apps written in React Native are fully native apps. It means that the tools used by native developers could be helpful for React Native developers. We would like to focus on things like UI Inspectors in Xcode and Android Studio, Xcode’s Instruments and Android Profiler.
e. Native debugging techniques
Sometimes debugging the dev build in Chrome or generally debugging JavaScript is not enough. We want all participants to be aware of the native debugging techniques, which include reading the logcat and xcode console, reading the device’s console, placing breakpoints in native code and inspecting the UI.
f. Bundling JS + RAM bundles
Exploring the process of bundling JavaScript. We would like to highlight the way metro bundles JS for development and for production. We’ll show what is used under the hood and how to lazy-load expensive screens using inline requires and RAM bundles.
g. Using custom JSC for Android
JavaScript Core bundled with RN Android pre 0.59 is 4 years old. We’ll show how to replace it with a new version to gain a “free” performance boost for Android in less than 10 minutes.