The dream of having one single framework to cover all platforms has been amongst us for years, and for a lot of us, getting here seemed nearly impossible.
A few years later, React Native has massively grown since it was open-sourced by Facebook back in 2015. Today, huge players like Facebook, Bloomberg, Uber Eats and Walmart have chosen React Native to build their mobile apps.
So, what’s better for your next great mobile app, React Native, or Native App Development?
A few months ago we had this very same discussion in house, with one of our partners. We were looking at two different apps, that could both be developed native or cross-platform. One involved sole iOS development and the other one was supposed to function on both platforms, Android and iOS. Now, most of our clients expect that in this kind of situations we deliver a straight, upfront answer with solid information to sustain our position. The truth the answer to this question depends on the project you are planning to build.
Taking the case of a mobile application that we would want to work on both platforms both iOS and Android, React Native comes in handy as a streamlined, cross-platform framework that allows you to develop two different apps, with the same codebase without compromising on your user’s experience. This simply means you don’t have to create an iOS and Android app separately and instead, one single codebase will have the output of two different apps. It also means that when there’s a bug, we’d only need to fix it once, which makes this whole React Native game loved by teams of developers around the world.
To cut to the chase and get a few things clear from the start, if you are only looking to build an iOS mobile application, building it in React Native makes zero sense.
So, yes, React Native is not an all size fits all framework, and there are cases in which we do not recommend cross-platform development as the best option. Switching the angle, if you are looking to build an iOS mobile application and later on add an Android one to it, the approach isn’t the same.
From our perspective, React Native comes with a huge advantage of cutting down on development costs. Our experience tells us that in most cases, the development cost is reduced by 30% per platform.
Besides this great competitive advantage React Native brings to the table, there are a few essential things we would want you to consider before making any decision regarding the tech stack of your mobile app. These are also some of the most frequently asked questions we get regarding React Native. Grab a cup of your favourite coffee and read this through with us.
Does React Native influence the look & feel of my mobile app?
The right answer is that it depends on the overall complexity of the user experience.
One considerable advantage that native mobile apps bring to the table is access to all mainly native functionalities, as well as some other animation tools. There is no middle ground, and you can take advantage of everything the platform has to offer. For some apps, which are a little bit more sophisticated in their UX, this might improve the overall user experience the app has to offer. Although React Native has the Animated API, which is a pretty good solution, some say it is still far behind the native capabilities.
In a nutshell, React Native simply does not provide all the power for complex animations and UX like a native app would. Still, for simple-looking apps, unless the quality of the code is poor, the user should not be able to tell the difference.
Does React Native influence the future scalability of my mobile app?
We recommend getting into scalability as a point of discussion long before actually starting to build an app. It not only gives your digital product a good start, but it helps in making sure you won’t have to support the financial costs of possibly rewriting your app later in time, as the product gets more traction.
By now, React Native should have all the capabilities of scaling with about 80% of the apps on the market. Having said this, there is no reason React Native should stand in the way of your app’s scalability, and there are a few good examples out there on the market to prove it.
Why are some people disappointed by React Native?
Because for apps that are resource-intensive and require a lot of interaction, Java, Swift and Objective-C might be better options. Messaging apps like Facebook Messenger can be a good example here, as in most cases, they allow a high degree of customisation and have a lot of background processing.
Also, there are apps like battery monitors and media players or various antivirus software that are more suitable for native languages.
Airbnb ditched React Native. Should I too?
The short answer is — no — but it gets more complicated than this.
If we take a look at the case of Airbnb, they ditched React Native after trying to introduce it in a reasonably big app, already written in native code.
Around 2009, Airbnb was just a web-based platform, with increasing traffic on mobile devices.
In 2012, the Airbnb development team realised that in order to keep pace with the increasing traffic they were having on mobile devices, they would eventually have to start investing in a team of iOS and Android developers. For almost four years, their team built iOS and Android apps using dedicated mobile development resources.
Four years later, in 2016 the landscape has shifted in such a way that they had to come with a faster solution to the increasingly mobile need on the market. Already having a fairly big team of experienced React resources from their web development teams, switching to React Native instead of hiring iOS and Android developers, seemed like a good idea. They started introducing React Native into their already existing code base and up to this day, 15–20% of their apps were written in React Native.
In 2019, Airbnb realised it takes more time and resource to introduce React Native into an already existing codebase, as often times they were bumping into functionality gaps that needed to be filled with native code.
Taking the case of Airbnb, transitioning from 0 to 1 was far costly than expected. The point here?
If you are trying to introduce React Native into an already existing codebase, expect to invest such amount of energy and time, it might not even be sustainable anymore.
Summing this up, React Native should, by now, have all the capabilities of covering functionalities for at least 80% on the market. To this day, it has been widely used by a lot of big brands that are out there and in some cases, it might be the smartest option for developing a mobile app for both Android and iOS.