Back

To go (or not to go) React Native way in 2020

You won’t find here anything about how cool guys like Facebook and Netflix benefited from this JavaScript framework.

Instead, we’ll tell you about its strong and weak sides (every technology has both) and provide a few use case scenarios to consider. Go ahead and figure out why ‘Create React Native App’ is definitely a good idea! 

Advantages

One shared codebase. Actually, with this framework, 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.

The same performance as with native technologies. 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.

Fast initialization time. A couple of years ago, Airbnb states that initializing a React Native app took a fair amount of time — because they had to load one gigantic JavaScript blob at runtime. And, yes, back to 2018, this was definitely a thing, especially for apps that have lots of different screens. The good news is that some changes have occurred. Today the devs can use RAM bundles + inline requires — this allows to load only what is required, and hence, drastically improves the app’s load time. On the Android side of things, the same result can be achieved with Hermes JS Engine.

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?

Problems with React Native

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 constantly monitoring the newest RN versions and libraries.

Not made for 3D games. Or something that requires physics and heavy graphics.

Hard to implement super complex animations. If you need something absolutely unique and crazy, it’s likely that the devs will have to dig into the native code. Although, if you want to validate a business idea with an MVP, this framework is still a really good fit.


So, what’s the verdict, guys?

The choice actually depends on the specifics of your future app. To summarize the above, you should create React Native app if:

  • You need an MVP. If you want to test business hypotheses with a fully-functioning and sexy minimum viable product, this framework is definitely the way to go. Why create React Native MVP? Because with this technology, you can quickly get initial feedback by delivering a solution that runs on both platforms.
  • You need a social app. The framework is suitable for features like camera access, fingerprint, geolocation, and maps.
  • There’s nothing about complex animations. 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 you’re not going to do anything crazy in terms of animations (which refers to 95% of apps), we highly recommend giving it a try.