React Native FAQ

Still uncertain whether to choose React Native as the framework for your mobile app? Belitsoft will help you out. We selected and answered the most common questions arising when people consider using React Native in a project.
May 14, 2018

What is React Native?

React Native is a JavaScript framework for writing native iOS and Android applications that was launched by Facebook in 2015. Even though the tool is relatively young, it has powered some of the world’s most complex systems at companies like Instagram, Tesla, Skype, Vogue, and many others. Moreover, its open-source libraries grow with each coming year, making it a more beneficial solution for mobile development.

who's using react native

What is the difference between React and React Native?

Developed and introduced by Facebook in 2013, React is a JS library used to create user interfaces. Concerning the question why people often confuse React and React Native, the answer is that they are very close relatives. While React is basically a library for the View part of web apps, React Native is an additional extension of React, aimed at producing mobile apps for iOS and Android. If you are a tech-savvy user who is looking for a more detailed explanation, read our blog.

Can React Native replace native technologies?

If you want to build an app that doesn’t use a lot of mobile-specific or complex functionality, React Native and its community libraries should cover most if not all of your requirements. However, if the desired features are not yet supported, developers end up writing native modules. You can also rely on open source projects to provide native bridges for you, but that does not guarantee you’re finding a viable solution.

react native bridge

Native modules are a way of bridging native programming and React Native code. These modules need to be written in Java/Kotlin or Swift/Objective-C depending on the mobile platform. They can’t be reused across two platforms but they aim at improving performance in computationally heavy operations like image editing or video playback. Perhaps React Native will not work for the next mobile Photoshop but it is enough if you aren’t aiming at brute-force demanding tasks.

“If you are a huge company or you are flush with cash, the old thinking was that as long as you threw enough money at native application development, you did not have anything to worry about. This is no longer the case,” Nader Dabit, Developer Advocate at AWS Mobile, said.

Facebook was facing problems with their native app that money could not fix. The app had gotten so large and complex that they were seeing compilation times of up to 15 minutes for their mobile app. This means that even testing minor UI changes, like moving something around by a couple of points, could take hours or even days. In addition to the long compilation times, any slight update needed to be implemented and tested in two completely different environments (iOS and Android) with teams working with different languages and frameworks.

Since releasing React Native on iOS and Android, the Facebook team have been improving listview scrolling performance, memory efficiency, UI responsiveness, and app startup time.

“React Native [...] leads to more concise, easier-to-understand code; fast iteration without a compile cycle; and easy sharing of code across multiple platforms. You can ship faster and focus on details that really matter, making your app look and feel fantastic,” Facebook engineering stated.

Is it possible to use React Native with an existing app written in Objective-C/Swift/Java?

Suppose you have an Android app built on Java. You want to create a version which works for iOS too, but you are low on funds and/or time. React Native will be the best choice for code sharing. Thus, you can write one version for both iOS and Android apps which saves your development team more time and resources.

The very first challenge is almost a complete project rewrite to JavaScript. The solution suits best when you plan to work with React Native to create the app for a different mobile platform in the future. When you are lacking native developers, you can choose React Native and spend fewer resources than on separate iOS and Android app.

“It may not be you, but many people still doubt that RN is the right tool for serious production environments, especially in the enterprise world, where applications will live for many years and you have to think on the long run, where choosing the wrong tool could cost a lot,” Juan Rodriguez, Full-stack developer, said.

However, there are many examples of how world-known companies migrated to React Native. Artsy engineering, for example, chose the approach to update their 3 years old iOS app that was created in Objective-C / Swift. The framework was useful for the company intending to support other platforms in the future without creating more teams.

Bloomberg, for its part, rebuilt the company’s consumer app for iOS and Android with React Native. The framework was considered as a first-rate tool to build native apps simultaneously for both iOS and Android platforms in comparison with other free software projects available in the modern market. By using React Native, developers modified the interactive animation by adding a parallax of images in the news feed, introduced a feature to swipe a headline to share or bookmark an article as well as allowed access to live TV or event feeds for on-demand viewing.

“React Native is the best out there,” Gabriel Lew, Senior Software Engineer at Bloomberg said. “Expect it to appear in other Bloomberg mobile apps in the future.”

For example, you developed Android native and iOS React Native apps. After some time, you decided to make some React Native functionality also available for Android. You can be sure React Native allows adding new features, screens, views, etc. to existing native apps. However, the integration steps are different depending on what platform you’re targeting. It might take some time to determine the optimal way to tie React Native and native together while preserving the performance.

Airbnb engineering introduced React Native into an iOS and Android code base in 2016. They developed, for example, Lottie - an open-source library that facilitates adding animation to native apps. The tool allows engineers to build richer animation without rewriting the code.

airbnb-react native-lottie

Delivery.com used React Native when integrating into the existing iOS app and built new views using JavaScript. The management was so satisfied with React Native outputs that they approved the development of a full-on Android version with the framework.

The above-mentioned examples show that React Native can be used by companies of all sizes from a long-term perspective. Do you still doubt? Read on top 20 case studies of migrating to React Native in our blog.

What are the key advantages of using React Native over native approach?

The beauty of React Native is you only have to build your app once, in JavaScript. Where traditional development of iOS and Android apps requires two versions being produced from scratch, React Native enables using one codebase. This saves time on developing the apps and makes maintenance leaner because your developers don’t have to do the same job twice.

native vs react native

“Native implementation is great in theory, but practically, we need to think about productivity/code sharing/time-to-market, which is where a cross-platform framework like React Native comes in,” Keertimaan Tenneti, Senior Engineering Manager at Walmart Global eCommerce, said.

For companies that build and maintain their own apps, this approach effectively cuts the development cost in half. You no longer need separate teams for iOS and Android development. In addition, if you have a web app already written with React, you can reuse that existing code. Depending on the functionalities of your app, at least 90% of the codebase can be shared across both platforms. Since all the versions of your software are written in mostly the same code, updating and adding features becomes a lot quicker.

Further speeding up development is the existence of an open-source library of pre-built components. Thus, you don’t have to spend time writing code to add extra features to your app. There’s probably someone who has already shared that functionality with the community. As a result, experienced developers can get a basic React Native app up and running in just a matter of hours using pre-built components.

If you need a React Native development team, let us know. No strings attached.

Does React Native mean you don’t need native developers?

As the React community grows, some features are already available. Thus, your team can basically apply the existing modules or, if they have necessary experience, write custom modules themselves. However, at some point during the project development, you have to get help from native coders.

“To really shine with React Native, you need native experience. JavaScript has not eaten everything yet. However, you don't need a team of native experts,” Orta Therox, Engineer at Artsy, said. “For example, we expect to be able to get quite far with Android support based on our work in React Native, but to make it amazing, we will need someone with history and context in the space.”

After a year of using React Native in production, Facebook introduced Ads Manager - their first fully RN based, cross-platform app. The key purpose was to develop a program to let the millions of users manage their accounts and create new ads on the go.

Facebook developed the iOS version first. Adding some features posed a challenge, for example, the image editor, empowering advertisers to zoom and crop photos, or the map view, enabling them to target people within a certain radius of a location. However, native iOS engineers helped to bridge features that have become available in React Native, such as providing access to the phone’s camera roll. They also worked for bundling the app with some of the Facebook’s existing iOS libraries to perform authentication, analytics, crash reporting, networking, and push notifications.

“The React Native team developed the platform alongside our app, and exposed the native components and APIs that we needed to make it happen. Those components will benefit everyone building an app in the future,” Philipp von Weitershausen, Ex-Software Engineer at Facebook, said. “Even if we'd had to build out a few components ourselves, using React Native over pure native still would've been worth it. We would've had to write those components anyway, and they probably wouldn't have been reusable by other teams down the road.”

What makes React Native different from Ionic / Cordova / PhoneGap?

Ionic, Cordova and PhoneGap are for hybrid apps. This means using HTML/CSS/ JavaScript and having the mobile browser parse and run your app as though it’s a webpage. This approach can get the job done, but the user experience always suffers.

Unlike Ionic and friends, React Native doesn’t use WebView (a mobile engine that “converts” web pages to mobile apps). Whereas apps built with React Native are rendered using native components which allows for smoother animation and native look because they will conform to the standards imposed by the operating system.

“React Native brings what developers are used to from React on the web — declarative self-contained UI components and fast development cycles — to the mobile platform, while retaining the speed, fidelity, and feel of native applications,” Philipp von Weitershausen, Ex-Software Engineer at Facebook, said.

To test React Native capabilities, Ilya Pirozhenko, Full stack web developer, decided to build an  Android client for LessPass password manager. Rather than storing passwords on user’s device, the app recalculates them on-demand by means of a hash function. It receives url, login and master password as an input and generates the identification number to use. Thus, the client is quite simple requiring 3 inputs and one trigger button.

lesspass react native

Pirozhenko was satisfied with performance results but disappointed with React Native libraries. He recommends using Cordova for building simple apps that require no complex interactions with a platform. Besides, LessPass engineering used Cordova to perform the same task which has taken them 30 minutes.

“If you’re looking to build an MVP, prototype, or are not worried about the user experience mimicking that of a native app, then a hybrid app may work for you, keeping in mind the entire project will need to be rewritten if you do end up wanting to go native,” Nader Dabit, Developer Advocate at AWS Mobile, said.

Conclusion

If your company is looking to cut costs and speed up development time without compromising on quality or performance, React Native is just what you need. This approach allows writing a regular React-based app but with native controls, resulting in smooth performance and native user experience.

You can migrate to React Native from Java or Swift by adding extra functionality through native modules. This makes React Native a perfect fit for projects where product owners want to improve an app they already have without building it from scratch.

Recorded by Kate Fastrich

Blog writers

Subscribe to Belitsoft's Blog for Entrepreneurs

Join successful software startup founders! Get insights from growing companies like, where to get an idea, how to validate it, how to launch, and how to hire people - everything. Enter your email address below (no spam):

Email *

RECOMMENDED FOR YOU

Lead Generation Design of The Best SaaS Websites

If clothes make the man, the design makes the website. That's where potential customers start evaluating a product. The SaaS website can (and should) be an online lead-generation machine, so each component of it has to be as good as possible. As people generally remember the first and the last thing they see, having impressive header and footer can go a long way towards making your product successful. What do some of the best SaaS companies do with their websites’ headers/footers? Look at this list to get and keep in mind some ideas for custom software development while building or redesigning your SaaS website. ...

PHP 7 vs Node.js

Our team is experienced both in PHP programming and Node.js development. We have a portfolio with both PHP-based applications and Node.js-based applications as well as mixed ones. What do we take into account when considering which tool to use in custom software development? ...

The Top 10 Advantages Of Laravel for Cost-Effective Web Development

Laravel framework is very popular for custom software development. It is the Most Starred PHP Framework on Github: more than 35 000 developers from all over the world (mostly from the USA) greatly appreciate robust features of this platform. Based on data of the BuiltWith, Laravel's popular websites verticals include Business, Entertainment, Media, News, Shopping, Technology, Vehicles. Why is Laravel so popular? ...

100% Remote Million-Dollar SaaS Companies

Companies that hire remote (distributed, virtual, dispersed, or dedicated) workers and do it well seem to have a huge leg up on the competition. Let’s learn how these successful SaaS companies use global talents to increase software quality and reduce the cost of rent and office supplies: Basecamp, Buffer, Chargify, Convertkit, Ghost(pro), Groove, Hubstaff, Invision, Olark, and Zapier. As the company where you can find a remote PHP developer, we believe that you could utilize their experience and expertise to build your own full remote SaaS company. ...

SaaS Founders Who Became Rich Starting With MVP

Belitsoft has a huge experience in MVP software development for startups and prototypes for existing brands. MVP is a minimal version of the product with the minimum set of features that is enough to deploy and test the key hypothesis to solve problems of this product’ potential customers. Experts suggest that, in B2B, it’s not an MVP until you sell it. Viable means you can sell it. ...

Profitable SaaS Startup Ideas

The way to get profitable startup idea is not to try to think of startup ideas (including SaaS development). It's to look for problems, preferably problems you have yourself.  In fact, for many entrepreneurs, successful business ideas start out as solutions designed to address a challenge they face personally. Solving the problem that frustrates you may be one of the best ways of finding an idea for your startup. Look at these software developers who turned their problem into success.  ...

Get A Free Quote

Do you have a software development project to implement? We have people to work on it.
We will be glad to answer all your questions as well as estimate any project of yours.
Use the form below to describe the project and we will get in touch with you within 1 business day.

Call us:
Phone - USA
Phone - BELARUS
Skype
EMAIL US:
Contact form