---
title: "React Native: Pros and Cons"
description: "If you have recently considered developing a mobile application, you have likely heard of React Native. Developers either love it or hate it. But here is a short guide for those are looking to make a business decision whether to use React Native or not bother. Actually, I am going to save your time and jump right to my conclusion: the only good reason to use React Native is to save money in a short term."
url: https://manytomany.co/blog/react-native-pros-and-cons/
published: 2018-07-19
---

# React Native: Pros and Cons

19 July 2018

This is an archived article from the website of Factorial Complexity Ltd., an older incarnation of many-to-many. Information may be outdated or inaccurate.

![Cover image for React Native: Pros and Cons](https://drw9cjciukmjl.cloudfront.net/blog/react-native-pros-and-cons/react-native-pros-and-cons-cover.jpg)

If you have recently considered developing a mobile application, you have likely heard of [React Native](https://facebook.github.io/react-native/). Developers either love it or hate it. But here is a short guide for those are looking to make a business decision whether to use React Native or not bother.

Actually, I am going to save your time and jump right to my conclusion: **the only good reason to use React Native is to save money in the short term**.

Now, here is a long story…

A year ago I talked about the pros and cons of [cross-platform VS fully native](https://www.factorialcomplexity.com/blog/2017/02/24/mobile-development-cross-platform-vs-full-native.html) mobile development in general. Since then React Native proved itself to be the best cross-platform iOS/Android solution available.

> ”Hybrid” HTML5 solutions like _Cordova_ or _Ionic_ are not even worth bothering. They are extremely slow. Why spend time building something, that doesn’t look good and work like a total crap comparing to native apps?
>
> _Xamarin_ was invented, so .NET developers could build mobile apps for enterprise products they were working on. If you represent a big corporation and have hundreds of .NET developers in India or Eastern Europe working for you, you should definitely consider Xamarin.
>
> _[Flutter](https://flutter.io/)_ is promising, but is still at very early stages of development. _[NativeScript](https://github.com/NativeScript/NativeScript)_ is just like React Native but less mature and less supported (good luck finding someone who actually knows it).

So React Native _is_ the best, but it is “the best of the worst” kind of “best”. The simple truth is: there is no and there is never going to be any cross-platform iOS/Android framework that will allow building applications with the same quality as a fully native solution. Here are the benefits you can expect to get if you decide to go with React Native on your project:

1.  Around **30% savings in development cost** compared to building two applications separately for iOS and Android. This number is approximate and will vary from project to project, but it will never be even close to 50%. Developers will still have to test on both platforms, deal with quirks and limitations on both platforms and adapt UI to both platforms.

2.  **Faster prototyping**. It is arguable, but from my experience it is faster to build _something_ with React Native, comparing to native. Also, this “something” will work on both iOS and Android.

3.  **The same codebase** for iOS and Android is a pro in its own right. A good looking application will end up with a bunch of `if (Platform.OS === ‘something’)` here and there in UI layer. But at least business logic can be easily reused and covered with unit tests. To get this advantage you’ll need a well-designed architecture.

There may be some other advantages for specific cases, but universally that’s pretty much it. Now here are the potentially bad things:

1.  **Increased support cost**. React Native is still technically not “released” (framework versions still start with “0.”). This means API is subject to incompatible changes after each release and constant maintenance work is required just for that. This doesn’t sound that bad if you only think about the core framework, but there are also third-party dependencies, which your developers will be tempted to use. That complicates things by an order of magnitude.

2.  It is still **hard to find good React Native developers**. Building high quality, maintainable code with React Native is challenging. For various reasons, an average React Native developer is generally less skilled than a native developer. _(Factorial Complexity, however, does have some good engineers with relevant experience. [Contact us](https://www.factorialcomplexity.com/contacts.html) for more details)._

3.  If you want a **truly native look and feel for your application**, you will eventually end up **spending as much as you would** if you started **with native** (or even more than that). Building React Native application always involves some trade-offs. Developers will either go with less sophisticated UI/UX decisions or build the same thing twice for iOS and Android. Poor look and feel may deter users and they will go to your competitors.

As it may be expected, there are too many variables to say for sure if your project would win or lose from using React Native in the end. In general, you should definitely consider React Native if:

-   You are really tight on money right now (but who isn’t?).
-   You are ok with paying your development team for regular maintenance.
-   You are building a **very** small prototype or MVP (like a maximum of 6 weeks of work).
-   It is **really** crucial for your product to have both platforms from the very beginning (otherwise, just build MVP for one platform, then port to another one - in many cases this will be at least as cheap as React Native).

![Vitalii](https://manytomany.co/vitalii-yellow.png)

## Hi. I'm Vitalii.

I’m a software developer, technical manager and solo entrepreneur. I have been building software products all my life. I am offering **CTO as a Service** at many-to-many.

## Contact me

Let me know what are you looking for. I will reach out to you via the provided email with quote and follow up questions. Alternatively, [book a call](https://calendly.com/many-to-many/intro) or reach me directy by email [hello@manytomany.co](mailto:hello@manytomany.co).

Or using your preferred messaging app:

 [![WhatsApp QR Code](https://manytomany.co/qr/qr-whatsapp.png)](https://wa.me/qr/QH6GQNCO5CZEO1)[WhatsApp](https://wa.me/qr/QH6GQNCO5CZEO1)

 [![Telegram QR Code](https://manytomany.co/qr/qr-telegram.png)](https://t.me/wicharek)[Telegram](https://t.me/wicharek)
