The Future of React Native: Interview with Ram N - a Software Engineer at Facebook
The community behind the React Native framework is taking great efforts to improve its architecture, performance, and flexibility.
Here are the main updates of React Native roadmap we’re all excited about:
- Fabric - UI-layer re-architecture, makes all UI operations expose directly to JavaScript using JSI interface
- TurboModules - allow JS code to load each module when it’s really needed (currently they’re initialized even when they’re not used)
- CodeGen - a tool that automates the compatibility between JS and native side
To dig deeper into this topic, we’ve decided to take an interview with a trusted React Native expert - Ram N.
Ram is a software engineer at Facebook who is working with React Native. Here are the main resources where Ram has shared his knowledge and tech updates.
In this interview, we asked Ram about React Native limitations and updates in 2019 that will change the current state of this framework.
- Ram, tell us please about your experience with React Native. How have you started your journey with this technology?
During my previous job at Microsoft, I was building developer tools for JavaScript-based mobile app development platforms. Back in the day, Apache Cordova - the open source version of Phonegap, was pretty popular and I eventually became a committer in the project.
As React Native began to emerge on the scene, I started working on porting many of the developer tools from Cordova to React Native, including things like the VSCode debugger extension for React Native and Code Push.
Eventually, I moved to Facebook to work on React Native core and started learning the internals of the technology.
- In 2018, React Native community was actively growing. It resulted in a number of upcoming updates and improvements. What are the things you are most excited to see in 2019 and how will they change the current state of React Native?
While Fabric and TurboModules are typically the face of the new architecture of React Native, I am personally excited about the foundational layer that made this possible. It's called the JavaScript Interface (JSI) and is used to directly invoke Java/ObjC methods from JavaScript (similar to an RPC call). This is what makes the new synchronous API possible.
JSI is also very similar to the mechanism used by other frameworks like NativeScript. The difficulty in converting objects between the two types of languages is what makes this process even more challenging.
Most parts of Fabric and TurboModules are already out in the public and I hope to see applications in the wild starting to embrace these technologies in 2019.
3. What are the current limitations in React Native and how to overcome them?
The biggest limitation of React Native today (without the new architecture) is the fully asynchronous nature of communication over the bridge. This has led to issues around having to custom build a declarative language for animations and artificially wrap native objects before exposing them to JavaScript.
I think that most of these problems have been solved by clever libraries like reanimated or virtualized views. There are also many patterns related to performance that are custom to applications. I hope that we are able to bring all this goodness to the standard React Native template so that every app can benefit from it.
4. A lot of people say that hybrid will not be hybrid anymore in 2019. How can React Native transform hybrid mobile development and provide more native experience in the nearest future?
Unlike its predecessors, React Native does not look to replace existing ways to mobile development but augments it greatly.
At Facebook, we consider most of our apps to be true native apps, with React Native being just a framework that helps us develop beautiful apps efficiently. Many large companies are already integrating React Native into their native apps, and I believe that this synergy between native and React Native would help pave the way for the future.
At the end of the day, users experience the app and don't really care about the framework that an app is built on. Thus, I believe that for any mobile framework to be successful, it would need to embrace the platform. I would encourage existing apps built with React Native to continue pushing the boundaries to deliver experiences that rival those built with purely native technologies.
5. How do you think what is the future of React Native in terms of market demand? How popular is it now?
React Native as technology is starting to mature, as we see many popular apps on the app store using it. Many large companies including Facebook, Microsoft, and Amazon have been able to leverage the speed and convenience of React Native to deliver professional apps.
I believe that we have now come to a world where React Native is not just a toy to trigger one's curiosity, but a framework that is used heavily in production.
In the future, with Reactive frameworks catching on, I believe that the web, mobile and developing UI on other platforms will converge, and "react" will be one design pattern that people will use to build applications.
Thank you, Ram, for sharing useful insights about React Native future and potential. We truly believe that React Native community will provide constant improvements to this framework, so it will become even more mature over time.