8 Months With React Native

React Native has made developing Checkverse much faster. It allowed me to build an awesome app as a sole developer and get it on the App Store and Google Play.

I’m not much of an idealist. I like to get things done. When React Native debuted last year I was stoked. I’d been using React for web development at CommerceHub with great success. React’s componentized approach was a godsend for my team when we were working to iterate quickly and release continuously. Everything was easy to reason about and client-side programming became fun.

When I left CommerceHub to pursue developing Checkverse, I knew that React Native was going to be a big part of it.

What’s React Native?

React Native takes takes the component-based, one-pass rendering approach used by React for the web and ports it so you can develop native apps.

Real native apps? Yes. You still program in JavaScript with React Native, but it then communicates with the underlying native components and tells them what to do. As a result you can get nice performance and transitions while still writing very portable JS code. As a result, Checkverse is available for both iOS and Android with most of its code being dual-platform.

Are there things it can’t do?

Not really. If you need to do something specific to the platform or you need a piece to be super performant, you can code them in Swift (for iOS) or Java (for Android) and then pretty seamlessly bridge between your native code and your React components. For Checkverse I’ve written a few native modules to help with image manipulation as well as leveraged several others from the open source community.

How much support does it have?

When working mostly in the web development world, there was a lot of fear of framework churn. Developers were very concerned that a framework they relied upon would stop getting updates or disappear the next day. React Native has not been like that. It’s community is extremely active and shows no signs of slowing.

The React Native team is super busy. Every two weeks a new version is released with a plethora of new features and bug fixes. There have been times that this has introduced small bugs, but they have been pretty easy to work around in the meantime. The incredible ease and speed of development outweighs any cons of the rapidly improving framework.

Should I use it?

As I said, React Native is getting better and better everyday. The kinks I first encountered no longer exist, but it is a new framework that requires learning and it does still have some rough edges (that are regularly getting cleaned up). There will be times that you need to roll-up your sleeves and figure things our or do some code diving, but again the speed of the happy path is so fast that it’s been a major success for me.

If you’re proficient in Android and iOS development already (which I’m not), maybe you’re already fast enough and are ok with having two codebases to support. The only thing I’d say is that I’ve been able to make changes for both apps easily and release often as a single developer because of React Native.

For most apps, I think starting with React Native is a fantastic idea. You can slowly transform it bit-by-bit into a fully native app if you need to and keep the pieces of your app that are likely to change, written in JS.

All Done

So overall, my experience with React Native has been extremely positive. If you’re interested in giving a shot and have any questions, let me know I’m @RGBz Twitter. Or if you’d like to see React Native in action (and share what you’re doing by checking things off with a photo) try out Checkverse for iPhone or Android.

Your pal,