I wrote this article to answer one of the most frequently asked questions while talking about React Native on business meetings:
"What makes RN the best option for my app?"
I've decided to take a while and make research, together with our developers, to find out when React Native is an actual good technology choice.
React Native is an open-source framework to build mobile apps with React.
The whole aim of RN is to make it easier for cross-platform development, as you don’t have to develop iOS, Android and Windows separately.
All you need is one codebase to create an awesome app that works on all operating systems.
However, we all know cross-platform development has cons in comparison with native apps.
So, when does it make sense to use React Native?
When your app is following regular design principles
I have to admit that the great thing about native development is that it’s doing better with apps that are very demanding design-wise.
But let’s be honest. We don’t need any complex designs and extreme interactions, or animations to make things happen and make people click a purchase button.
We can be still great with a regular, minimalistic “look and feel”, as long as we fix our customers’ problem with the speed and efficiency they expect. No fancy design needed.
Of course, fun interactions can improve user-experience at some point, but in most cases, instead of spending money on two native developers that need a lot of time (and probably a help of designer) to make it happen, you can just use React Native and get a great user-minded interface, that will just make your app efficient.
More than that, thanks to a great community and modularity, you can easily use many ready-to-use projects or components that already has a proven record for being efficient.
Last, but not least, technology is constantly moving and changing. Don’t forget that many things we take for granted today, was considered impossible two years ago.
I personally believe that React Native is a great tool for 95% of B2B mobile apps and 60% B2C mobile apps.
When you want to release iOS and Android apps at the same time
Let’s get back to the moment I wrote: “instead of spending money on two native developers…”.
If you’re going to be releasing your app on both Android and iOS, React Native will prove helpful as you’ll be able to repurpose a lot of your code rather than having to start from scratch on each platform.
That’ll save you both time and money, and allows you to go out with a MVP sooner.
More than that, it’s going to be quicker to train iOS and Android (or any other) team in React than to train new iOS or Android developers separately.
When you want to cut development time
This is not related to the previous point.
I’m talking here about the overall development experience of creating apps with React Native. Big players already learned that development is just easier and more productive with it.
For example, Shopify went full gas with switching from native development to React Native.
What they discover?
"[…]in rewriting the Arrive app in React Native, the team felt that they were twice as productive than using native development—even just on one mobile platform."
When you don’t want to double or triple your dev team
Speaking of developer’s productivity, would you like one guy to make one app that works on both mobile and web?
Can do.
React Native is a subset of React, and as long as you are not using any modules that need typical native functionalities, you can build an app that will work on both mobile and web platforms with the similar UI.
When you don’t have many animations
React Native is there to help you create truly native experiences, as it allows JavaScript code to interact with native components via a mechanism known as the bridge.
Although, the bridge does cause issues when it comes to things like animations.
As React Native is open-source, it’s constantly improving as third parties are busy building solutions that benefit everyone. Plus, Facebook is working on changes to improve Bridge performance.
However, finally, someone has to do those animations, which means you need another person in your team, and it won’t be quick, nor cheap, but this you need to calculate yourself.
If animations are not crucial to run your business, there is just no one reason to go for native development.
Points for using React Native
If you’re still not sure if React Native makes sense, here are some benefits for you to keep in mind. If you’re looking for:
- Quicker development times
- Smaller development teams
- Quicker regression tests
- Bugs that get fixed easier
- Easy and intuitive interface
- Access to many ready-to-use templates and modules
- Development cost-efficiency
…then, React Native makes sense to you.
Conclusion
In fact, there is not much to be added in the conclusion, as it seems to be very obvious:
- If you are a big company, or a game, that has a wish to use complicated and demanding designs, or interactions, that can afford two different developers and a designer at the same time - go native.
- Other - go for React Native. Your business will be more than fine.