React Native is the best option, sometimes
Many people are wondering whether to bet on React Native or not. That’s not the right question, however. React Native’s benefits have already been proven. The real question is: when is React Native a viable, or even the best, option?
React Native is the cross-platform mobile app technology everyone’s talking about. It has become so widely used that, for example, over 14% of the top 500 Google Play Store (U.S.) app installs contain the framework, including giants like Instagram, Messenger and Uber [SRC]. Furthermore, Play Store’s Best app of 2018, Drops, is built with React Native [SRC].
At Qvik, we have worked with React Native for the past 3 years. We’ve seen virtually everything that’s possible to do with React Native, from spearheading Apple Pay in Finland to voice synchronizing with live TV broadcasts. Regardless, I’ll just lay down the data and try to avoid too much bias. ‘Cause results are what really matter.
Many big players have put their chips on the table for React Native, yet some have already folded. In the most prominent example, AirBnB sunset React Native after having spent two full years integrating it into their mobile app. Despite a largely positive experience with the framework, the added upkeep ended up being too much for a now-fragmented team [SRC]. React Native wasn’t perfect for AirBnB, but that doesn’t mean it couldn’t be for you.
What’s better with React Native
React Native’s unique selling point is attractive: write code once and ship it for both Android and iOS, fully native. In a typical case, based on our experience‚ over 98% of the code is shared between iOS and Android. React Native isn’t the first to accomplish this, though. Frameworks like Xamarin and Cordova are years ahead, and Google’s Flutter has recently entered the scene to offer a worthy challenge. However, most competing technologies lack versatility, performance, ease of adaptation or community.
Benefits, if it fits
The benefits of using React Native are considerable. Apps built on React Native are written in JavaScript, the most popular programming language in the world [SRC]. React, the engine powering React Native, is the best loved framework in its domain [SRC]. For these reasons, developers can leverage a wide range of tried and true third-party solutions.
Recruitment is very fluid as the job market is teeming with JS and React developers. Training JavaScript oriented web developers for mobile is a more viable option than ever. React and the React Native ecosystem enjoy the support of Facebook and possibly the strongest framework community in the world.
React Native is powerful. In most cases, it takes less development work than programming two separate native apps, especially for the initial release. What’s more, it’s easier to maintain and synchronize a single codebase between the two platforms.
A potent synergy between respectable mobile app and web development is finally there. That’s why we have witnessed the birth of “React only” consultancies and internal development strategies. It simply works.
Pitfalls, if it falls
While React Native is easy to get started with‚ advanced use requires a wide array of skills. Any developer worth their salt will have to be familiar with not only JavaScript and React, but also Apple’s iOS and Google’s Android ecosystems. Extensive or special native-level integrations also demand expertise in Objective-C and Java or Kotlin. Partly for these reasons, some have chosen to incorporate React Native as an additional module to handle the simpler parts of their existing apps. This practice has proven fatal [SRC], as it often fragments the development team and makes codebase maintenance a drag.
While React Native can produce the same functionality for Android and iOS, the actual outcome might not match Apple’s or Google’s design guidelines to the last pixel. The framework is also one step behind in supporting new native features.
The toughest challenge in starting with React Native is not technical, however. Many mobile developers have no desire to work with JavaScript, and most React developers feel intimidated by the mobile app industry. It’s crucial to find comfortable ground for the whole team within React Native’s domain to ensure project success.
Yay or nay
Like any other technology, React Native is not a universal solution. It’s not the right choice for all cases. Here’s our carefully brewed formula for making the right decision.
Use React Native, but think twice whether…
You care about following OS design guidelines exactly.
You plan on doing cutting-edge native level stuff.
You want to incorporate React Native into an existing app.
Your team lacks either React or native mobile experience.
You want to make an app for something else than smartphones or tablets.
Your team is motivated for it.
We at Qvik continue to invest in React Native – and React as well – as it has survived the acid test of production and proven itself both powerful and efficient. Perhaps you should give it a go, too!
Illustration: Aija Malmioja