Back

To go (or not to go) React Native way

You won’t find here anything about how cool guys like Facebook and Netflix benefited from React Native.

Instead, just strong and weak sides of that JavaScript framework (as any other technology has) and certain use cases to consider. And we are here to tell you about that:)

Perks

One shared codebase. Actually, with React Native you’re building two separate app versions (IOS and Android). Yes, the two app versions that share 65–70% of JavaScript code. The same codebase gives you easier maintenance and fewer bugs to worry about (because the total amount of code is almost twice less). It saves extra days and weeks you that could spend on new functionality.

Damn close to native performance. Unlike other cross-platform options, like Cordova, Ionic or Titanium that emulate browser app (it’s like having a simulated responsive web app in app market), React Native runs native APIs. There are no tap or scrolling issues, and UI feels like a native app, not like a browser inside the app shell.

So, Swipe in React Native would be completely the same as if you had implemented it in Swift or Java – Source

There are tons of other UI-tool kits and libraries that help you handle performance challenges during the development stages just like in any other mature framework. And as always, you’ll only have to make sure that the library bundles you’re gonna use are frequently updated + don’t forget to study the backlog of existing issues for them.

Quick talent search. There’s no need to waste the whole weekend sitting in front of a laptop and searching for Swift and Java gurus. Simply find a sucker for JavaScript (it’s not a big issue when dealing with the most popular language) and there you go. Finding one who knows React will be already great. Just ensure you know how to choose ‘the good’ ones from the candidate list.

Huge community. It’s all about developers’ happiness. When a developer cannot handle bugs through googling, the community comes to help. It means that anyone may open an issue on Github — and some magic happens — there’s a ready-to-use solution from someone who’s already faced the same problem before. The happier the devs are, the easier your life is smoother the project development goes.

That’s all fine and dandy, if focusing solely on superpowers, we would be like door-to-door salesmen. Salesmen who sell shit and try to convince you it’s sweet.

You’d better off see things from all angles. React Native is in no way perfect

Hi there! Wanna find the best app-building tool?

Gotchas

Immature framework. It’s not version 1.0.0 yet, so there
are plenty of missing components and constant updates. For a developer, it means spending much time and efforts to find already-made solutions and incorporate new releases. As for custom stuff (super unique features), he would have to build them on his own and might need Swift and Java experience.

Works poorly with complex animations. Here a dev most likely needs to dig into the native code. Doubt that for MVPs it’s the main concern, though.

Not made for 3D games. Or something that requires physics and heavy graphics, so here you would also have to rely on native mobile app devs.


So, what’s the verdict, guys?

The choice actually depends on the specifics of your future app. To summarize the above, you can opt for React Native when:

  • You need an MVP. Say, you wanna start out with just a fancy prototype that lets you test the concept for both platforms and collect initial feedback. For cheap and as quick as possible.
  • You need a social app. The framework is suitable for features like camera access, fingerprint, geolocation, and maps.
  • There’s nothing about animation-intensive apps. You can easily build nice UX animations with React Native, but when it comes to some outrage stuff like zoom in/out of 10000 objects on a single screen, you’d better stick to native. However, if your app has only UX interactions and transitions between screens —this framework is a solid option.