React Native checks all our clients’ boxes. It promises to save developers time and clients money. It promises to make training developers easier. And most importantly, it promises to create both iOS and Android apps from one set of code. It’s no surprise then that React Native is growing fast. But at Table XI, we’ve seen a lot of cross platform solutions with big promises. And while we love new tools, we tend to be cautious of the risks.
That’s why we’ve been testing React Native.
One of our longest-running clients, Dickson, came to us wanting an Android app to go with the iOS app we built 3 years ago. We figured this would be a perfect low-risk opportunity to test out some of React Native’s promises. We’d build an app for Android, and, if things went well, we could then use the same codebase to upgrade the iOS app. Here’s what we’ve learned so far, so you can decide if React Native is right for you …
How React Native Works
React is a framework for JavaScript, the same way Rails is a framework for Ruby. It provides code modules and logic that make writing an application in JavaScript much faster. React Native runs your JavaScript code directly within iOS and Android, leaving you with two apps from a single, unified code base.
Facebook adapted its React web framework into React Native after it faced challenges building mobile apps with HTML5. It has been testing React Native for over a year now, and made the framework open source in April 2015. The new framework included a lot of potential benefits …
React Native makes it easier to train web developers
Table XI started with a focus on web development, so we have a lot of excellent web developers who are extremely comfortable and proficient writing Javascript — plus a few who have worked with React on their web projects. With this experience, it’s a lot quicker for us to train them up on React Native, which uses so much of the logic and code they’re already familiar with, than it would be for us to teach them native development in Swift for iOS or Java for Android. We’ve already transitioned three developers into working on React Native with minimal guidance.
A single codebase makes it easier to update the apps
Aside from the development time it would save you at the start, using one set of code for both Android and iOS apps means only running maintenance on one set of code. You wouldn’t have to worry about the apps displaying different information or having different bugs — you’d make updates in one place to keep both experiences working.
React Native is straightforward and requires less code
In other native languages like Swift or Java, there’s a lot of boilerplate code that’s needed to do simple things. React Native strips that down, so the codebase isn’t as cluttered and developers can work faster. It also simplifies the connection between the data on a server and the view on your phone screen, so information is updated automatically and there are fewer places where the code can fail.
React Native gives you two apps for less cost
React Native’s cross-platform promise — that you get two apps from one set of code — doesn’t quite mean that you get two apps for the price of one. It’s more like two apps for the cost of one-and-a-quarter, since there’s additional development required. But that’s still a lot less than what you’d pay for individual Android and iOS apps. For clients like Dickson, who need to run both Android and iOS apps, the cost savings from a working cross-platform solution could be huge.
Finding developers who don’t need training is a challenge
React Native is a newer framework, so it’s still a fairly niche skill. Finding a developer with the experience needed to hit the ground running is just as tough as hiring a great Swift or Java developer. At Table XI we’ve had success transitioning people with a background in Javascript and React, but it also helps to have some mobile experience. Of the three people we trained, two already had a mobile background.