Facebook just open-sourced its React Native framework for building mobile apps. React Native promises to let developers write JavaScript while still delivering a real native user interface. That’s a description that might cause non-technical readers to shrug, but I believe this announcement has some profound implications. React Native will soon transform the entire mobile app development industry, affecting everyone who owns a smart device.
A Truce in the HTML vs. Native War
For many years, mobile app developers have had to make a uniquely difficult choice: Do I develop my apps using the native tools from Apple or Google, or do I build my app using some sort of cross-platform solution?
It’s widely accepted that native tools are needed for developers to create the best user experience. They produce faster, neater apps that look and behave the way users expect for each platform.The downside is that those tools are quite hard to learn and time-consuming to use, especially compared to tools used to build web sites. Native tools are also based on completely incompatible programming languages, meaning an app needs to be developed twice or more to run on iOS, Android and other platforms. This is an obvious cost-driver and major pain for the entire industry.
Cross-platform solutions, on the other hand, have mostly been based on web technologies such as HTML, CSS and JavaScript. All mobile platforms can display web pages, which means you only need to develop one version of an app with web-based tools using a much more rapid workflow. In theory, that is.
In practice, this approach is riddled with performance and compatibility issues, often producing awkward user experiences, and power-consuming apps that warm your device and exhaust your battery. Whenever you get frustrated trying to use a mobile app that feels like a glorified web page, this is typically the reason.
React Native shows strong thought leadership beyond making native user interfaces available to JavaScript developers.
React Native is a new tool that blends these two existing approaches. While allowing developers to write JavaScript, a very popular entry-level language that can run on all mobile devices, it displays the user interface using real native components. This is an attractive lifeline for JavaScript developers. Many of them have dreaded the day they’d finally need to learn the more complicated Objective-C, Swift and Java languages to take the leap into the native apps world.
Although there is still a lot for the platform to prove, React Native shows us we won’t have to make the hard choice between HTML and native for app user interfaces for much longer. Quality native UI is finally available to all those die-hard developers of JavaScript.
Better, More Creative Apps
Digging a bit deeper, React Native shows strong thought leadership beyond making native user interfaces available to JavaScript developers. Perhaps more importantly,Facebook’s deep dive presentation last January presents a completely new workflow, capable of shaving countless hours off a large app project while giving app developers a far more satisfying production experience.
While web developers are able to make changes to code and see the results of those changes almost instantly in a web browser, native app developers must spend minutes waiting for their tools to compile, deploy and launch on a mobile device. This isn’t just a time suck; it also kills the urge to be creative and experiment with new ideas. Corners are cut and developers settle for sub-par results, simply because tweaking and polishing takes so long.
In the years to come, expect cleaner and more responsive apps.
React Native introduces a separation between the native user interface and the logic that drives it, using what is popularly called a “reactive” approach. While the user interface runs on the mobile device, the logic can run anywhere, like in the browser of developers’ computers. This means they can use the tools and workflow from web development. Make a change, see the results instantly on the device or in an emulator; make apps faster, or spend extra time trying out new ideas.
While this alone might not convince everyone to jump to JavaScript and browser tools, what React Native has accomplished is certainly a big inspiration to all tool developers. With an exploding mobile app industry and high demand for developer hours, waiting for computers to recompile and redeploy our apps really needs to become a thing of the past.
An Open, Inspirational Codebase for a New Mobile Era
Now that Facebook has open-sourced the React Native code base, it’s free and available to all, so we can expect both its code and its ideas to seep into other tools and development platforms. The same thing happened with React Native’s predecessor, React.js, a framework for building web-based user interfaces. While being a popular framework in and of itself, the ideas and concepts from React.js have also exerted a strong influence on other frameworks.
What’s all this mean for the end user? In the years to come, expect cleaner and more responsive apps, even for apps produced on a shoestring. High-quality app development will become cheaper, and app developers will become more productiveand creative.
The app industry still suffers under many of the same pains we’ve had since the invention of the smartphone: double work on iOS and Android, difficult-to-use tools and slow development iterations. But now, thanks to Facebook, the path to the new era is clear: Better tools, new ideas and open source codebases.
No comments:
Post a Comment