Facebook’s Tom Occhino delivers a presentation about ReactJS.

As much as we may cling to the Web on our PCs, apps are everything in mobile. Now consuming 90% of our mobile time, apps are everything on mobile devices.

Native apps, that is.

Ever since Mark Zuckerberg declared Facebook’s early investments in HTML5 instead of native app development his biggest mistake, the mobile Web has been in steady retreat. 

Until now. Thanks, ironically enough, to Zuckerberg’s army of engineers at Facebook.

Let me explain.

Reacting To The Mobile Web

Just a year after Zuckerberg pronounced HTML5 dead, one of his engineers—Jordan Walke—was hatching ReactJS, a new approach to Web development. 

ReactJS makes app development simple, allows developers to leverage their knowledge of JavaScript, and more. But among its various innovations, one of the most interesting is its use of a virtual DOM, which allows ReactJS to more efficiently update the browser’s DOM, improving performance.

See also: React Native Will Ease, But Not Settle, The Native vs. Web Wars

Then, in 2015, ReactJS went mobile, and was dubbed React Native.

Web enthusiasts like Mozilla’s James Long declares that “React.js is the right way to build apps…. This works. It feels like I’m developing for the Web. But I’m writing a real native app, and you seriously can’t tell the difference.”

Which is fine, so far as it goes. What else is a Web-centric developer going to say?

When An iOS Developer Meets React Native

That’s why I found Marc Shilling’s “Ode to React Native Joy” so compelling. Shilling, who works for app development agency Chalk + Chisel is a hardcore iOS engineer and, seemingly, a very good one.

Forced into using React Native for a project, Shilling fought it:

I was content in my Apple ecosystem bubble. React Native seemed like a fun little experiment, but in my mind any real native app would still need to be written the real native way. It seemed like a waste of time for me to not only learn JavaScript (I had no experience), but an entirely new way of building apps when I was already beginning to master building them the “real” way.

Part of the impetus for trying out React Native was the need to have “a clear path going forward to make this app available for Android as well.” As much as Shilling likes iOS development, native Android development is “not great.” In theory, writing in React allows a developer to apply the same code base to two different platforms.

As it turns out, the theory works.

Despite some teething pains as he learned the React way, Shilling has shifted completely in his thinking around app development: “Fast-forward a couple of months, and I’m confident enough to say I may never write an iOS app in Objective-C or Swift again.”

Native No More?

And after using the Discovery VR app that he and his team built (it’s kind of awesome), you may never know whether you’re using a Web or native app again. 

The distinction becomes meaningless in React Native.

There are still improvements to be made in React land. Better documentation and tooling, for example. But if Shilling’s experience is emblematic of what other developers can achieve, the meaning of “native app development” may completely change over the next few years.

Photo courtesy of Facebook