React Native Pros and Cons in 2020
I see web and mobile development technologies on a crazy race to improve their performance each and every year.
Obviously, that’s great news. Development is becoming faster and easier to execute, cheaper to implement, more user-friendly with less effort, and so on. There is no word we live in great times, when implementing a business idea never been easier and technology is opening the doors of imagination wider than ever before.
However, being a bit subjective, there is one technology I just gone a bit crazy about – React Native – and I would like to talk a bit more about the pros and cons I was able to discover with many developers.
I’ve gathered many articles and spoke to many developers to deliver probably the biggest source of advantages and reasons why you should be add React Native to your tech stack.
What is React Native?
RN is a perfect technology to save on development costs, yet still having truly native performance and user-experience flexibility.
It has a number of great advantages, many awesome “ready-to-go” templates, the army of dedicated contributors, and nations of fans.
Not to mention world leaders as a core users:
Pretty much, all what technology needs to become hot and mature.
Although, like any other platform, it has its pros and cons and shouldn’t be used to execute absolutely every single project there is (yet, many think so). We can see more and more (even native) developers choosing React Native as their core mobile development technology.
But it’s not the choice of developers only.
Thanks to many business advantages (great performance, low production and maintenance cost, more below…) it’s not a surprise that many biggest players on the market are choosing React Native as well.
So what makes it so special for both businesses and developers?
Let’s dive in more deeply into advantages, and meet the pros and cons of React Native.
When to use React Native?
To keep it short, all app makers that want their apps to work on all devices, both Android and iOS operating systems, yet still keep it all in one codebase only.
But before you drop everything and make a decision, mind that React Native is not always a good choice. I will keep it general, but if you want to go more into details, go to my friend’s article below.
Although, React Native is becoming better and better in terms of performance and it seems to get closer to truly native experience, there are still many differences that we should be aware of.
Cross-platform vs native mobile apps
The most important difference between native apps and cross-platform apps is that native apps are made to work on a particular operating system. That means they can use all the blessings of that system, yet it cannot work anywhere else beside.
Although, cross-platform apps been made to work everywhere, they still lack the kind of flexibility and performance on a specific operating system that native apps has.
Take an alligator and a fish. An alligator can walk and swim, but will never swim as good as a fish. On the other hand, fish cannot walk at all. So cross-platform apps are like alligators. They can swim and walk, but will never be as good at swimming, as fishes (native apps).
This is why if you are planning to build a game, or something extremely demanding design-wise, you should make a comparison of cross-platform apps and native apps more closely, to decide what should be your choice, but native apps are still unconquered if it comes to performance, yet React Native is silently getting there.
Just mind that performance differences are only visible in extreme cases, so if this is not absolutely crucial to your business, React Native may appear to be a much better idea from business and development point of view.
Take Shopify, and their decision on going full gas with React Native.
After years of native mobile development, we’ve decided to go full steam ahead building all of our new mobile apps using React Native.Shopify
React Native in 2020
Before I go to actual pros and cons of React Native development I would like to quickly stop and mention what really makes me so exited.
Following the latest Facebook plans about the complete change of React Native architecture, I’m just impatiently waiting for its implementation.
They divided their plan into three phases:
- Native modules
- New renderer
- Better initialization
If plans will make it to reality, there is no doubt it will have a huge impact on the whole world of mobile development.
The shit thing about the future is you need to wait for it, and we prefer to focus on today, so let’s talk about things that are already with us, yet still making React Native the most promising technology to build mobile apps.
If you want to learn more about the future and reasons why, check out my other article:
React Native pros
This list been made to give you an overview, yet it is probably the richest source of React Native development advantages.
We will probably write more about them in different articles, so I’m just going to list them for you, as it goes:
From a business perspective
- Development speed (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 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, or you are not making a heavy game, you are still able to build high-performance apps with an 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 mobile apps are visible – it’s easy to get your apps listed in AppStore and Play Store. Not like PWA.
From development perspective
- 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.
- Changes preview – 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. No specific web views functions are required and 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.
React Native 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.
- Custom modules – many custom modules are already available, yet, there may be a need for some specific components that you will be forced to build from scratch yourself.
- Updating issues – it’s hard to keep the app updated with latest React Native version. Updating RN versions is in most cases complicated process.
Do you know more?
If you found more pros or cons of React Native, share it with me in the comment!
I want to know them all!
Want to elevate your React Native project?