Should you hire a React Native developer for your next project?
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, yes. 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
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
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
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
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
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?
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 — contact us, and we will be happy to help you.