Comparison of Native JavaScript Development Solutions
Abstract
Cordova has for quite some time now been seen as the de facto “native” JavaScript development solution, but with newcomers on the scene such as React Native and NativeScript, is Cordova still the king? This talk will compare each of these native solutions on a variety of factors including ease of use, performance, and end quality of the finished application. You will leave this talk with a greater understanding of the pros and cons of each, and feel well equipped to make a decision for native app development in JavaScript.
Details
The talk will begin with a brief introduction to JavaScript “native” programming, including a brief history and some of the recent innovations that tooling such as React Native and NativeScript have brought onto the scene. At a high level, I’ll discuss how each of them work, and how each of them solve the JavaScript -> Native bridge in slightly different ways, and how each solution can be advantageous for certain situations.
From this point, once it is clear what each of the native JavaScript solutions provide for a native solution—and how they do it!—we will then shift to a “head to head” exercise between each of the frameworks. We will compare three fairly simple applications created in each of the three native solutions across a wide spectrum of factors, including performance, ease of use, extensibility, etc. This section will be demo and code heavy, as I’ll show the actual code base to illustrate and give a better picture as to how each of the solutions work to bridge the gap between native and JavaScript. Additionally, this section will briefly touch on developer experience, including the tooling (e.g. Expo, hot reloading, command line interfaces, etc.), as part of the demos!
With the demos and developer experience illustrated, we can now begin to wrap up with the pros and cons of each solution. Any one solution can be more applicable when certain criteria are met, and I will make it clear what the selection criteria should be when considering a native framework. While it won’t be as simple as a “selection checklist,” the end goal will be to encourage the developer to be feel empowered to make a decision on a native JavaScript solution at the outset of the talk, after weighing the positives, negatives, and developer experience of each.
The attendees will leave with a clear understanding of the three big players in the native JavaScript development scene: Cordova, React Native, and NativeScript. They should feel personally able to make a decision as to whether one of these solutions will fit their use case for native development, and understand the benefits and negatives of each when doing so.
Pitch
The native JavaScript scene was relatively stagnant (but still quite interesting!) until the advent of React Native and NativeScript. Now that these two major players have emerged, the native development scene has been shaken up, and it may be high time to evaluate whether Cordova is still the de facto and preferred solution for native JavaScript development. With many hoping to bridge the gap or make an application available in native app stores, this talk will be an interesting, informative, and pertinent talk for the attendees.
My involvement in the topic has been with my developing of a number of “native” JavaScript applications over the years, including ones written in each of the solutions I’ll be discussing. This experience gives me a clearer picture of the benefits and drawbacks to each of the solutions, and it is from this experience that I will draw from to deliver a clear picture of the native JavaScript scene to the attendees.
Dustin Schau
Front-end development is my passion, and I am incredibly lucky to be able to love what I do each and every day.