React Native could be good for everyone

As a native app developer for iOS I have been curiously watching the swell of interest in Facebook’s React Native technology platform that aims to allow developers who are already familiar with the widely popular React web framework to use similar tools to build native mobile apps. There are interesting things about the technology itself but what I find most fascinating is what a technology like this signals in the broader landscape of mobile development.

For those unfamiliar with React Native, it essentially lets developers who are already familiar with the tools of web development (Javascript and markup), and specifically the React web development framework, use the same language and methodology to write native mobile apps instead of mobile responsive web sites. Although there have been similar tools in the past, NativeScript, PhoneGap, Appcelerator, etc., in a relatively short time React Native has caught a significant portion of the mindshare. This is partly because it’s web-based cousin, React, has been so positive, partly because it’s created by Facebook, and partly because it solves a real problem the software development community in general is having, the problem of talent.

The biggest problem any technology company faces is hiring and retaining developers. That problem is even worse in mobile where the demand has been so strong and has increased in such a short time, that there just aren’t enough developers to fill the seats. And the problem doesn’t seem to be getting any better. Not only is there pressure to build new, useful mobile platforms, but the web hasn’t gone away and web developers are still needed. Many web developers, too, aren’t interested in learning a new language and a new platform and prefer to use web technologies. For this very real problem, React Native can be a great solution. But first there needs to be a shift in philosophy.

Security and performance concerns mean that mobile development, especially iOS development, is notoriously restrictive relative to PC to web development. If native development represents the entire range of development possibility on mobile devices, then React Native necessarily represents a subset of that because it is an abstraction layer. So technology companies already have to accept that mobile allows them less control, are they willing to limit themselves further by the platform they use to develop the app? My guess is that there are many companies who are willing to make this tradeoff.

There are many tech companies out there who should choose not identify as mobile companies, and that’s perfectly ok. Today, if you ask any tech company if they are Mobile First they will undoubtedly tell you yes. They have to in order to attract enough mobile developers to build their app because mobile developers have a lot of choice where they would like to work and they would much rather work for a company who is as passionate about mobile as they are. But truthfully, these companies never Mobile First, and they never will be Mobile First. Maybe their core business is data or physical goods. Maybe they recognize that they need a mobile presence, but just like every mom and pop bagel shop needs a web site today but doesn’t want to be a web company, maybe these companies should be able to decide that they don’t want to become a mobile company. And for these companies, React Native could be a great solution.

On the web today there exist platforms for non-web companies to have a web presence. Wordpress, Squarespace, and others provide the ability for companies to have a web presence without maintaining a staff of web developers. In the same way I predict we will see a tiered approach to developing mobile apps. Tech companies that aren’t focused on cutting edge mobile development and who need a mobile presence but who don’t feel that mobile is their core business can leverage the people who are already building their web sites to build a good mobile app. The apps don’t have to break new ground, they just have to work well within the existing mobile paradigms, be maintainable, and not cost too much.

For technology companies that do decide to invest in mobile as a core business, they can continue to hire and maintain a staff of native mobile engineers but since there is less pressure on the lower end of the market for these same developers, they might find it easier to find and keep the developers they need to do the cutting edge work. These developers will be happier as well because they won’t get hired on to a company based on the promise that the organization was going to be Mobile First only to find out that the company just wanted a nice app, not a new core platform.

It starts with React Native bringing over web developers to take over the low hanging development work but I see the trend continuing where there may even be templated apps that companies or individuals can publish themselves with hardly any knowledge of the native technologies that power them. As web traffic shifts towards mobile, so can the web developers without the need to retrain and without the need to understand mobile development at a depth that native developers do. Companies that decide to be Mobile First will have done so with a better understanding of what that means, and the developers they employ will be happier working in an organization that places the highest value on their work.

I am a native developer so I’m probably not going to do React Native development any time soon. But I also believe that there is plenty of room for other developers and organizations to make a different decision. I welcome the diversity because diversity is a sign of a healthy and growing ecosystem.