Select Page

Ever since its release in November of 2016, there’s been a significant amount of buzz about React and React Native in the development community.

For the unaware, React is an open source JavaScript library by Facebook currently used on many major websites. However, its sister project, React Native, offers app developers the ability to create native apps using only JavaScript.

The potential to combine HTML and JavaScript development is huge for any web developer, particularly after the success of React to build website interfaces. React Native allows you to create React components that directly translate to native components. These components can then be reused in future areas of your application which retaining their styling; they are essentially the building blocks of your app.

The advantages of using React Native over traditional native development methods are numerous. Components will render consistently across multiple platforms with React Native, while using other similar solutions may lead to inconsistent performance, a real risk with the increasingly wide pool of devices on the market. While development with other non-native frameworks also involve JavaScript, they tend to run in a webview embedded in a native app, further complicating the process.  React Native runs an embedded instance of JavaScriptCore that communicates with platform-specific native components.

React Native doesn’t only change the steps necessary to create a workable native app; it significantly alters the existing paradigm by emphasizing a declarative syntax, functional programming, and one-way data flow. This also makes it much easier to isolate problems and tackle bugs when moving from state to state. With React Native’s view declarations, it becomes much easier to manage any possible contingency when users operate your app.

Based on my experience with React Native compared to other similar frameworks, it really feels as if the former bridges the gap between Android and iOS much more adroitly than the latter. Too often, existing frameworks talk about making an app seem native to both platforms, only for resulting apps to feel like they belong on neither.

Additionally, at its core, React Native is JavaScript. Fundamentally, the platform is not particularly dissimilar to React.js, giving newcomers with previous development experience an easier time of adapting to it. Of course, it also improves efficiency and allows you to carry over techniques and shortcuts that you are already familiar with.

As it is still React, Native enables developers to easily integrate existing JavaScript/React.js  libraries, something that is encouraged by Facebook. Some are more suited to work with React than others, with Redux and MobX gaining attention for their ability to simplify the management of your app’s state.

There’s certainly a lot going for React. As an iOS developer, I appreciate its ability to widen the potential platforms that I design for without a lot of input on my end. And, given its relative recency, I look forward to seeing how the React Native community continues to galvanize the field of mobile development.