Want to hire a React Native developer? Here are the pros and cons of React Native

Hiring React Native developers to build iOS apps: iPhone with a React Native logo

Should I hire a React Native developer for my next project? Or would working with a native iOS and Android teams prove a wiser decision?

Given the skyrocketing popularity of React Native, you’re probably asking yourself these two questions. So should you give in to the hype and hop on the React Native bandwagon?:) Is React Native that awesome? In our experience, it is. But this doesn’t mean it suits every project.

In the past year, three large brands hired our React Native developers to build their shared code apps. In this post, we’d like to share the experience of our software engineers and look at the key strengths and shortcomings of React Native.

The Strengths of React Native

The primary specialization of our developers hired for React Native projects was in true native development for iOS and Android. Consequently, the points below mostly highlight the benefits of React Native as compared to creating apps with Objective-C, Swift, and Java.

Faster development with 80% of code shared by iOS and Android versions

Technically speaking, you’re still building separate versions of an app for iOS and Android with React Native. Yet, the two versions will share a lot of common JavaScript code.

In fact, simple applications assembled mostly from standard components will share up to 80–90% of JS code. Imagine how much time this is going to save you while building and debugging the app.

No recompiling + hot reloading = magic

demonstartion of hot reloading on React Native

Image credit: Facebook



This might seem like a small thing but it makes developers happier — and happy developers are productive developers, right? With React Native, there’s no need to recompile the code — you just reload it instead. But wait, there’s more! With hot reloading, you can run new code in the same application state. Again, this saves a lot of time.

Instant JS bundle updates

Apple permits developers to update JavaScript code of their application, as long as the said code doesn’t change the purpose of the app. In other words, there’s no need to resubmit your React Native app to AppStore for smaller updates. What’s more, adding such updates is simple with CodePush.

Huge community with numerous third-party libraries

React Native has amassed a large following, which led to the creation of quite a few third-party libraries. There are libraries for intro screens, forms, push notifications, loading indicators, analytics, social sharing, etc.

Besides, the large community implies there’s a vast pool of React Native developers for hire — just make sure you know how to find the good ones;).

Near-native performance, all-native look and feel

You could say React Native is comparable to Xamarin in terms of performance, and it sure is faster than Cordova or Ionic. Basically, its performance is as good as true native for most applications, and pretty darn close to true native for more complex cases.

Another great thing is that React Native modules interact with native iOS and Android modules, providing you with a true native user experience. For instance, the DrawerLayoutAndroid of React Native corresponds to Drawer on Android, and TabBarIOS corresponds to UITabBar on iOS. As a result, you get the same platform-specific subtleties in terms of UI elements and animations.

The Shortcomings of React Native

No cross-platform technology is perfect, and React Native is no exception to this rule. Even though it proved to be the best JavaScript library for cross-platform mobile development in our experience, it has its shortcomings. So what are the major cons that you need to consider before hiring React Native developers?

Near-native performance, again

I guess naming the platform “React Near-Native” would be more fair, but I can see why Facebook’s marketers were against this.

So how close is React Native to Objective-C, Swift, and Java? For standard tasks, it’s literally just as fast. For heavy-lifting tasks like 3D graphics, complex custom animations, and anything that requires a lot of complex computations, you’d be better off writing native code. But hey, the good news is you can use native code along with React Native. Also, you get to decide on the ratio of native to React Native code.

You still need iOS and Android developers for complex projects

React Native promises to combine the user experience of native platforms with the developer experience of building with React on the web. In essence, this implies enabling web engineers to build mobile apps, which is a part of the awesome factor behind this technology. This is mostly true for simple projects.

For anything more complex, it’s wiser to hire iOS/Android developers with expertise in React Native. Alternatively, you can go for technologically diverse teams with iOS/Swift and Android engineers working alongside React Native and/or React developers. According to Wix, 10% of their teams are native devs.

The learning curve isn’t exactly smooth

Even though React Native uses the architecture of React JS, web developers will still have to invest time and effort into learning how native development works. On the other hand, JavaScript and React are not exactly common for iOS, Swift, and Java developers.

The asynchronous architecture of the JavaScript-to-native bridge, in particular, isn’t always easy to come around. Objective-C and Java developers will also spend some time getting used to JavaScript’s dynamic typing.

React Native is still immature

Even though React Native is a major player in the mobile development scene, it has been around for less that two years. Given that it’s still a pretty young technology, no wonder that it’s API might miss bits. This, in fact, is another reason why hiring React Native developers with zero background in Android/iOS, or not having Swift/Objective-C/Java developers in your team isn’t the best idea.

Bottom Line: when hiring React Native developers isn’t a good idea?

Showcase of React Native apps

Image credit: Facebook



Given the range of apps in the React Native showcase, the technology covers parts of Facebook’s own mobile app to payment processing, music streaming, and even VR. But are there apps that React Native can’t handle?

According to our devs’ experience, writing a graphics-intensive game in React Native is unlikely to result in a good investment of time and money. Actually, anything that requires a lot of processing would require an app written in Java or Objective-C/Swift.

So how do you decide if you should hire React Native or true native developers? Start with looking at the apps in the showcase linked above. Just download the ones that are conceptually closer to your next project and see how they perform on your smartphone. An even better idea is to consult a professional — fill in the form or contact us, and we will be happy to help you.