featured

Facebooks’ React Native radically simplifies app development

By Marc Schenker Posted Mar. 27, 2015 Reading time: 4 minutes

Facebook fans and app-development enthusiasts can at last rejoice: the company’s much-hyped, and recently announced, framework project was unveiled yesterday at Facebook’s F8 Developer Conference. React Native is a radical departure from how mobile, UI app development is usually done.

When this open source project was first announced, it received excited reactions from developers. React Native is a new approach because it allows developers to write code and then glance at the results in just a few seconds. Naturally, this is more appealing to some than having to first recompile the whole app, as has been the case traditionally, to see development results.

In spite of its hype as a radical change in app development, React Native does share some similarities with conventional, best practices. For instance, it’s still based on JavaScript, just like other hybrid techniques.

However, where this app-building framework is markedly different is its removal of a cross-platform wrapper. This is usually where developers access native functions on various devices. Instead, React Native encourages developers to use JSX, which is a Facebook JavaScript variant, to “hook” to native widgets. Then, developers can access the apps natively and observe the same behavior, look, performance and feel as “true” native apps.

However if you think that React Native is a full-fledged framework for this type of app development, think again. Facebook likes to throw us a curveball: the company likes to refer to this framework as a tool that developers can rely on to actually see apps built with the Model View Controller architecture. It’s no surprise, then, that Facebook is already hard at work creating companion tools like Relay and GraphQL.

 

A new design philosophy

The point of React Native is that Facebook wants designers to think about app creation in a whole, new way. React Native does this by introducing a framework that’s really based on the idea of “learn once” and “write anywhere.” In other words, React Native can empower app developers to become acquainted with it and then take that knowledge to easily and efficiently develop apps on different platforms.

In theory, app developers can create an app for iOS and then use what they’ve learned in that process to nimbly develop and build an Android app. Instead of building an app and then adapting it to various operating systems, React Native allows them to take their knowledge of the framework and build apps on different platforms from scratch. Facebook believes that this approach will make the entire app-development process simpler and more effective. After all, when developers can learn React Native once, they will all be on the same page when they move from one operating system to the next.

Before Android developers start getting too excited, there’s a caveat to this news, unfortunately: Right now, Android support isn’t yet available. React Native can only be used with iOS, but Facebook is working on Android support as I write; stay tuned…

 

The origins of React Native

If you’re wondering about the history of this framework, it goes back to Facebook’s React technology, which is a JavaScript library intended for user-interface creation. What’s quite remarkable about React is that it’s been around for just under two years though it’s already become quite popular in that short time. What sets apart this technology is how it accommodates logic and presentation at the same time, which is another bold move on Facebook’s part.

React technology is founded on code units that behave like classes. These components then absorb data and create HTML based upon said data. Further still, single components even offer developers specific functionality, which allows them to be used together for different projects. This has the overall effect of promoting reuse as well as streamlining the thinking behind programming logic.

 

What Facebook’s saying

It’s both helpful and instructive to read what the Facebook people are saying about their project launch. React Native project leader, Tom Occhino, wrote that the framework grants designers unprecedented freedom. Highlighting the fact that its components are uninterrupted functions that reflect what developers are looking at, Occhino stressed how developers can skip the usual step of reading from the basic, rendered-view implementation before writing to it.

On the React Native website, Facebook also pointed out that designers are empowered to utilize fundamental platform components like UI Navigation Controller for iOS and UI Tab Bar. As a result, this creates apps that feature a uniform look and feel that’s consistent with the entire platform. It also raises the bar in terms of quality. Designers can be glad that components are effortlessly included into an app through their React Native counterpart components, those being Navigator IOS and Tab Bar IOS.

Initial reaction to Facebook’s new framework has been generally positive, and it’s helped that the positive reaction came from people like Mozilla developer James Long. Of course, now that React Native is widely available, only time will tell how it’s really received. At this point, reaction has been pretty much divided into two camps: those who welcome this news with arms wide open and those who are skeptical and even critical of this ambitious change in app development from Facebook.

The big takeaway from this is how Facebook’s React Native is looking to significantly change the JavaScript-development industry, for better or worse. When you take this news with the NativeScript project from Telerik, it certainly seems that JavaScript developers are in for some eventful times.

To hear Facebook put it—and, yes, we’re mindful of the fact that they have to toot their own horn when announcing their new project’s wide release—they’re very enthusiastic about what this means for the design industry. Occhino doubled down on the hype, telling the world how “excited” the company’s been to make React Native available for all on GitHub and release it as an open-source tool for iOS.

He went on to reassure the world that Android support is coming soon—how soon is anyone’s guess, though—and that Facebook plans to keep at it with the React for the Web initiative. The company’s plan seems to have been to release iOS support as early as possible to collect as much feedback as possible from early users of this framework, and then take that information and put it to good use for Android support down the line.

 

What the future holds

As with all new design releases, early adoptors are always reminded that what they’re getting their hands on is far from perfect. So when you’re experimenting with React Native, don’t be surprised if something’s either not yet implemented the way you think it should be or if something’s downright working improperly. In either situation, Facebook has you covered because it’s inviting all early users to give as much feedback as possible from the get go.

Aa