Should I use React Native?

Eliezer Steinbock
8 min readMar 9, 2019

A friend of mine looking to start a company has asked me to help him on the tech side.

He is in the process of raising seed funding and comes from a non-technical background. He is building an app that will need to be available across web, iOS, and Android. How should he go about building the app?

I’m a full stack freelance developer with a focus on Javascript. I mostly React for the frontend work I do. I also run a popular fantasy football game. The mobile apps for this game are written in React Native (both Android and iOS).

The question of whether to use React Native is something I have thought about a lot in the past. Having used it in production and seeing friend’s use it and our pain points.

Benefits of React Native

The core benefit of using React Native is that you can share code between iOS and Android instead of writing and maintaining two completely separate codebases. Beyond this, you can also reuse parts of your web app. If you use React Native Web you can share even more code between the three platforms. Potentially the whole thing.

Another benefit is faster app updates. Your app does not have to go through the app review process. Instead you can make over the air (OTA) updates using Expo or CodePush (except for when updating native code).

Disadvantages of React Native

The biggest disadvantage of using React Native is performance. React Native is not native. People starting out with React Native often get excited about being able to write “native” code and deploy it so easily. You can find many benchmarks online regarding React Native performance. I would advice against taking these articles too seriously. The benchmarks are often written for unrealistic use cases and do not depict how a real app will perform as well as the challenges involved in optimising performance. The best way to judge React Native apps is to take a look at apps in the wild which we will do below.

React Native suffers from slow startup performance due to loading the Javascript bundle, and can also suffer from performance while running. The main pain point of performance issues happen in the bridge between the Javascript code and the native code.

Eliezer Steinbock

Founder: Skilled.co.il & Draft Fantasy. Full stack JavaScript Engineer. https://elie.tech