Is React Native Right for my App?
The pros and cons of developing your app in React Native
We wanted to create a resource to point our clients to when deciding if React Native, one of our favorite mobile development frameworks, is right for their app and company.
We’ve laid out the things that make React Native great, as well as where it falls short so that you can decide if React Native is right for you.
What is React Native?
If you’re not familiar, React Native is a mobile development framework. It is not a language, but rather a set of libraries within the language JavaScript.
Rather than building apps the traditional way, building one app for iOS and one app for Android, React Native allows developers to build one application that exports to both iOS and Android.
To be clear, React Native is NOT a hybrid-app, a web-based app built in HTML/CSS/JavaScript inside of a native downloadable browser. This is an important distinction because, even though they “look” like native apps, hybrid apps are slow and cannot always access native phone components in the same, user-friendly fashion that a true native application can.
With React Native, you end up with two truly native applications, maximizing your app’s effectiveness and user-experience.
Why React Native?
We love React Native because it saves our clients time and money. It’s an efficient way to launch an app given that it is a single codebase rather than a Swift codebase for Apple and Java codebase for Android.
Our clients benefit because they only need to pay for one app to be built and only need to worry about staffing and supporting one mobile development team. They can get to market quicker and more cost-efficient and still reach both smartphone markets.
Benefits of React Native
From a business perspective, React Native seems like a no-brainer. But what about from a technical perspective? There are tons of different languages and frameworks to choose from. What makes React Native better than others?
A Growing Community
Our developers love React Native because even though it’s somewhat new, its popularity has grown to a solid community of supporters, contributors, and talent pool.
While we love to be on the cutting edge of new technologies, we never recommend to clients a language or framework that is too new. We want to ensure that our clients will have online community support to turn to as well as access to potential employees with the proper skill sets when building their team.
A Good Technology to Bet On
When you build an app using new technologies, you are making a bet. It’s entirely possible that one day the creators of your framework can stop supporting what they’ve made, leaving you to re-write a lot of code.
React Native was created by Facebook and is the framework for many popular apps like the Facebook app (obviously), Instagram, Walmart, Tesla, and Airbnb. Having major players dependant on the same technology you are using is great reassurance that its creators will continue supporting and improving.
A Familiar Framework
While React Native is not exactly the same as React.JS or even regular JavaScript, JavaScript developers (one of the most popular programming languages) and even Android and iOS developers will have a fairly easy time pickup up the React Native framework.
Over the Air Updates
With traditional native apps, all updates and releases are dependant on the app stores you distribute them through. When you release an update to your app, you have to submit them to both the App Store and Google Play Store, wait for them to update your store listing, after which users can download the update.
This is an issue especially with Apple’s App Store which requires an approval process for each update which can take several days. If you find a critical bug that needs to be fixed, you can’t always afford to wait a couple of days in order to send the fix out to users.
React Native allows for Over the Air updates. This allows you to ship new JavaScript code directly to users without having to go through the app stores. While you still can choose to ship updates through the App and Google Play Store, OTA updates provide an extra layer of reassurance that releases happen quickly.
A Native Experience
As mentioned earlier, React Native gives users a native experience. By hooking into the phone’s native components, your app will have better access and control over things like push notifications, microphone, GPS coordinates, the camera, microphone inputs, and Bluetooth.
When React Native may not be right for you
We understand React Native may not be right for everyone, so we wanted to call out certain areas where React Native may not be the best solutions. If any these apply to you, we’d be more than happy to help you find a better solution.
Custom Graphics and Heavy Animations
Most apps fall into the “typical app” category – i.e. it’s just a user-interface which users tap on buttons to send and receive information.
Some apps, like mobile games, require a lot of custom graphics to be built. Since most of these need to be customized at the native level, you’re better off just building the app in its native languages.
No appetite to Keep Up with Updates
JavaScript is a fast-moving language. There are frequent changes to popular libraries which require consistent updates to prevent code-decay.
This is the case with almost any language out there, so don’t think you’ll be immune by choosing another framework. JavaScript just happens to move extra quickly given its popularity, which can be seen as a good thing.
Dependency on Multiple Platforms
React Native depends on JavaScript, Apple, and Android to work the way it’s intended. If one of these, although unlikely, decides to put up barriers against React Native then you may need to quickly pivot to a different solution.
Is it Right for You?
Now that you know the basics of React Native, you can decide whether or not it’s right for your app. If you want to learn how to get started, don’t hesitate to drop us a line below!