DEV Community

Cover image for React Native FAQ for 2021: All You Need to Know
tomgrabski for Pagepro

Posted on • Originally published at pagepro.co

React Native FAQ for 2021: All You Need to Know

It's really hard to find reliable answers to the most common questions in one place when it comes to modern technologies – like React Native. This is the main reason behind this FAQ in which we cover the definition of React Native, its pros and cons, and other things you should know about it.

What is React Native?

You probably know React Native development as an open-source mobile app platform created in JavaScript that is taking the mobile app development market by the storm.

It has a number of great advantages that are saving you many development costs and makes your app truly outstanding.

However, like any other platform, it has its cons as well.

So, before you add it to your tech stack, let's go over the FAQ that I think every developer should be familiar with.

Why did we need React Native?

People designing an app on a big piece of paper

Before React Native arrived at the market, people wanted to build mobile apps mostly in native platforms.

It was mainly related to the high performance, and great customized user experience.

But they had their limitations as well.

For instance, native development environments were only working for a certain OS. That means, in order to develop applications for different platforms, you need a help of different developers.

Thanks to React Native, developers could work around a single tool to develop cross-platform applications with a truly native experience.

More than that, cross-platform development and React community is constantly growing, Many functionalities we consider impossible few years ago, are now working perfectly without a need for native development.

What’s the difference between React and React Native?

The difference is quite simple.

We use React for web apps, and React Native to develop mobile apps.

Where React focuses more on improved UI (User Interface), RN is sharing a common logic layer for all OS. That provides solutions to problems which were being dealt for quite a while now, such as development inefficiency, slower time to deployment and less developer productivity.

It is important to note that React is a library used for web development whereas React Native is a platform.

Another interesting thing is that when you want to use RN, you have everything you need to start a project. On the other hand, creating a new project with React means you have chosen only one of many libraries you will have to use to build a web application.

Who is using React Native?

man holding a phone with an app

You may hear that big players are considering React Native as their development platform more often.

Here's only a small chunk of them:

Apps built in react native

The list goes long and probably will keep on increasing as React Native is delivering the features and support that is hard to find anywhere else.

Can existing apps be migrated to React Native?

The answer is 'yes' as long as your app does not depend on doing heavy computing tasks on the device. Constantly expanding capabilities of React Native allow more and more complex apps to be made using it.

Also by migrating to React Native your app becomes cheaper to maintain because there is only one codebase for both Android and iOS.

What are React Native alternatives?

Its good to know that there are other technologies that aim to achieve the same goal and have different ways of doing it. Here are some examples:

  • NativeScript – developed by Progress and released in 2014, it allows building apps for both iOS and Android using Angular, Vue or vanilla JS, CSS and HTML
  • Cordova – created by Nitobi, later bought by Adobe. Used to make hybrid apps that instead of using native components wrap what is essentially a web application with access to the device's native API's
  • Flutter one of the youngest technologies, which was published in 2017 by Google. Used to make apps for both iOS and Android using Dart language
  • Xamarin – owned by Microsoft, allows developers to build apps for iOS and Android using C#

Can apps for iOS and Android look or behave differently?

Yes! But this comes at a cost because different code has to be written for both platforms. And even then it's much cheaper than developing two native apps.

React Native was built in a way that separates Android and iOS logic, so it's possible to make them look and work differently while still being able to share most of the functionality between both platforms.

Pros and Cons of React Native

man is making a list on a notepad

The most important advantages of React Native are the ones regarding development efficiency and economy.

Although there are still some areas that native development is doing better, you may want to consider very carefully when React Native is a good choice for you specifically. You can read about it in another article.

Pros

  • Development speed and cost – what developers love about React is that they’re able to reuse and recycle components developed before by them and wide React Native ecosystem. They can also share their codebase and make them work faster.
  • Works everywhere – Once you learn (or hire) React Native, you can build apps for iOS, Android, and Windows.
  • User Experience – as long as you are not using extremely complicated designs and interactions, you are still able to build high-performance apps and deliver absolutely great user experience.
  • Faster time to market – you can arrive on the market much faster to test your MVP, get feedback and adapt changes accordingly without a need for a big investment.
  • Help on demand – React Native community is massive. Many problems that you may face during development, may already be fixed somewhere out there.
  • Maintenance cost – you only deal with one codebase.
  • React Native apps are visible – they get listed in AppStore and Play Store. Not like PWA.
  • Over The Air Updates – allow you to quickly update your app without the need to wait for App Store/Google Play to accept your changes.

Cons

  • Performance is still lower than native – React Native is not able to use all the blessings and potential of a specific platform. Native apps, on the other hand, can really maximize functionalities and deliver the ultimate user experience in the result.
  • Not efficient design-wise – if you consider complicated designs or advanced interactions as a crucial part of your business advantage, you should definitely go for native development, but this is something that is slowly changing and more apps based on React Native with complex UI start to appear.
  • Custom modules – you can access many custom modules, yet, there may be a need for some specific components that you will have to build from scratch yourself.

Other things you should know before choosing React Native

men playing chess

There are still few things you should know about React Native and its features.

It's easy to work with – experienced developers will definitely appreciate the development experience. Meaningful error messages, time-saving and robust tools make it a premium choice over other platforms.

You can preview changes – you don’t have to rebuild the application, again and again, to see changes. It saves a lot of time and makes things quick and efficient. Hit “Command+R” to refresh the application.

Quick iteration cycles – which just simply adds more value.

Intelligent debugging tools – and error reporting mechanisms. Give it an advantage over others and allows developers to focus more on the productive part.

Easier to debug – uses Flipper as default.

Keep things minimal and worthy – it doesn’t force you to work in Xcode or Android Studio for iOS or Android apps respectively.

A large community of developers – who are contributing day in, day out.

Code reusability – developers can easily integrate 90% of the native framework and reuse the code for any platform. This feature not only saves time but also helps to cut down the cost of building two apps. Cool thing is that you can use the web app code (written in React) for mobile apps.

Pre-developed components – numerous open-source libraries are available to accelerate your work.

Live reloading feature – it helps to compile and read the file from the point where the developer made changes. Then a new file is offered to the stimulator which automatically reads the file from the beginning.

Compatible with third-party plugins – and does not require high memory to process. You don't need any specific web views functions and all native modules are linked with the plugin through the framework. Smoother running and faster loading are key features for it.

Transform web projects into mobile applications – work done on this platform is easy to understand, and anyone can work around it although they were not previously engaged in it. It increases flexibility and web updates become consistent.

Smoother and faster UI – as compared to classic hybrid ones. The interface created through React Native is highly responsive and feels fluid.

Further readings

Summary

React Native is an exciting framework that enables web developers to create mobile applications that have knowledge in React and JavaScript.

It enables faster mobile development and efficient code sharing for all operating systems without compromising on the quality of the product.

High efficiency and low costing are also the attributes that make work exciting for armies of developers.

Supported by the biggest players on the market, this technology will probably stand a test of time and will only get better.

Top comments (0)