
Advantages of React Native
The fact that React Native renders using its host platform’s standard rendering APIs
distinguishes it from most existing methods of cross-platform application develop‐
ment, like Cordova or Ionic. Existing methods of writing mobile applications use
combinations of JavaScript, HTML, and CSS and typically render using webviews.
While this approach can work, it also comes with drawbacks, especially around per‐
formance. Additionally, these methods do not usually have access to the host plat‐
form’s set of native UI elements. When these frameworks do try to mimic native UI
elements, the results usually feel just a little off. In addition, reverse-engineering all
the fine details of things like animations takes an enormous amount of effort, and
they can quickly become outdated.
In contrast, React Native actually translates your markup to real, native UI elements,
leveraging existing means of rendering views on whatever platform you are working
with. Additionally, React works separately from the main UI thread, so your applica‐
tion can maintain high performance without sacrificing capability. The update cycle
in React Native is the same as in React: when props or state change, React Native re-
renders the views. The major difference between React Native and React in the
browser is that React Native does this by leveraging the UI libraries of its host plat‐
form, rather than using HTML and CSS markup.
For developers accustomed to working on the web with React, this means you can
write mobile apps with the performance and look and feel of a native application,
while using familiar tools. React Native also represents an improvement over normal
mobile development in two other areas: developer experience and cross-platform
development potential.
Developer Experience
If you’ve developed for mobile before, you might be surprised by how easy React
Native is to work with. The React Native team has baked strong developer tools and
meaningful error messages into the framework so that working with robust tools is a
natural part of your development experience.
For instance, because React Native is “just” JavaScript, you don’t need to rebuild your
application in order to see your changes reflected; instead, you can refresh your appli‐
cation just as you would any other web page. All of those minutes spent waiting for
your application to build can really add up, and in contrast React Native’s quick itera‐
tion cycle feels like a godsend.
Additionally, React Native lets you take advantage of intelligent debugging tools and
error reporting. If you are comfortable with Chrome or Safari’s developer tools
(Figure 1-1), you will be happy to know that you can use them for mobile develop‐
ment as well. Likewise, you can use whatever text editor you prefer for JavaScript
2 | Chapter 1: What Is React Native?