The modern era of cross-platform mobile and web development favors the “learn once and write anywhere” paradigm. In short: Build your application once and deploy it anywhere. Though we haven’t yet arrived at this magical intersection of technologies, we’ve made some great strides in that direction. Specifically, the ubiquity of JavaScript, its foray into backend development, and a robust open source movement have driven the language to a unique position in the development stack. Entire multi-tier applications can be developed using only JavaScript, a once unheard of proposition.
This trend towards cross-platform development can be seen in other languages as well. For example, Apple has open-sourced Swift, thus opening doors for independent developers who could bring the language to other platforms and use it beyond Apple’s closed ecosystem.
But despite their efforts, it doesn’t really seem that JavaScript has anything to fear. Many existing technologies, such as React, a JavaScript library for building user interfaces created by Facebook, or AngularJS, a web application framework by Google, are used every day by large corporations, startups, and independent developers to create mission-critical applications characterized by their speed, rapid development, and native user interfaces. Facebook best-demonstrated the advantages of these cross-platform development technologies by building their first native React application for both Android and iOS in just five months.
If that sounds impressive, wait until you hear about the giant leap forward that is NativeScript. A newer entrant to the field, NativeScript is delivering on the promise of true native mobile app development in JavaScript. This JS-based runtime abstracts platform specific functionality into a unified set of libraries. iOS and Android applications built using NativeScript exhibit native performance and use the same native user interface components that users are familiar with. That last part is a key differentiator for NativeScript best illustrated with some sample code:
<Button text="Make Waffles" tap="makeWaffles" />
We’ve just created a button UI element. What is remarkable here is that this code will compile to a UIButton object in iOS and an android.widget.Button on Android. These are true native controls, not re-implementations and not running in a WebView. Plus the support for these native controls is comprehensive. The team behind NativeScript has been fanatical about maintaining parity with the underlying native APIs.
NativeScript also plans to support the AngularJS framework out-of-the-box (currently in beta). Not only will we share code between web and mobile projects, but porting an existing web app to a truly native experience will become a lot less expensive.
JavaScript adoption is accelerating and we don’t foresee it slowing anytime soon. The advent of truly native app development in pure JS has our attention and we’re excited to help our clients benefit from it. Enterprises that standardize on JavaScript stand to reap considerable rewards in terms of reduced development costs, larger pools of developer resources, and a rich open source community. The line between web and mobile apps is blurring, and the technology to build them is consolidating. For the time being, JavaScript is the king.
A core mission at Convective is to help our clients select the most suitable technology for their project. If we can help with yours please contact us!