React Native

What is React Native

React Native lets you build native iOS and Android apps using JavaScript. It was developed by Facebook out of React.

The cool thing is that you can share a lot of code between iOS and Android. I estimate that it’s about 10% extra development time to convert an app for another platform. Before, you had to rewrite the entire codebase from scratch.

React Native is just a ‘frontend’. If your app needs to have users etc. it’ll need a backend to run the server code and connect to a database.

How does it compare to Hybrid / Cordova apps?

Cordova apps are basically a web view that’s made fullscreen. The user interacts directly with web technologies. This makes development easier, but the performance will never quite be as good.

Facebook famously bet big on hybrid apps, but gave up on them during development. This motivated them to create React Native.

Although you write in JavaScript using similar patterns as you would for creating a website, the code gets compiled to native iOS or Android code. This means the user experience and battery life is the best it can possibly be.

React Native is very much still under development, but the community is huge and the core repos is maintained by Facebook, so it’s not going anywhere soon.

Should I use React Native or Cordova for my startup?

This comes down to two main questions:

How important is the user experience?

How big is your budget?

If you’re making a B2B (business to business) app for warehouse inventory, having a slightly worse performance will probably not affect your business model.

If you’re app is B2C (business to consumer) where users are expected to spend large amounts of time on the app and recommend it to their friends, then you’ll probably get frustrated with Cordova.

Developers tend to say that it’s easy to get to 90% with Cordova, but near-impossible to get the last 10% finished.

With regards to budget, React Native costs about 25-50% more in terms of development time, however this is assuming a Cordova app that still has performance issues.

Is it easy to get my app in the Play Store and App store?

The finished app is just like any other app. For those of you who don’t know, the Play Store is fairly simple and the App Store can be quite fussy and will take a couple of weeks to process your app.