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?
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.