BT

NativeScript 2.4 Brings Web Workers Specification

| by James Chesters Follow 1 Followers on Nov 28, 2016. Estimated reading time: 2 minutes |

NativeScript 2.4 has been released with support for Angular 2.2, Node 6, ES6, and ES7, as well as  its own CSS theme by default.

In the NativeScript 2.4 announcement blog post, Valio Stoychev of Telerik said "This is our biggest release ever. A lot of new features and polish were done in the last 2 months. With 360+ plugins for NativeScript it is clear that the community is now producing much more code than the core team. This is a huge milestone for every open source project."

The most popular of the changes in the 2.4 release is described by Stoychev as "the ability to execute code on a background thread to ease the UI thread." First mentioned in the 2.2 release, according to the NativeScript core documentation about the Multithreading model the use of the Web Workers specification is designed to "tackle issues with slowness where UI sharpness and high performance are critical."

Developers can use NativeScript's solution to multithreading - worker threads. Workers are scripts executing on a background thread in an absolutely isolated context. Tasks that could take long to execute should be offloaded on to a worker thread.

An example is shown below in image and code for the workers/image-processor.js

Web Workers specification

    require('globals'); // necessary to bootstrap tns modules on the new thread

    onmessage = function(msg) {
        var request = msg.data;
        var src = request.src;
        var mode = request.mode || 'noop'
        var options = request.options;

        var result = processImage(src, mode, options);

        var msg = result !== undefined ? { success: true, src: result } : { }

        postMessage(msg);
    }

    function processImage(src, mode, options) {
        console.log(options); // will throw an exception if `globals` hasn't been imported before this call

        // image processing logic

        // save image, retrieve location

        // return source to processed image
        return updatedImgSrc;
    }

    // does not handle errors with an `onerror` handler
    // errors will propagate directly to the main thread Worker instance

Aiming to help developers be more productive when designing apps, NativeScript's code samples project now has more than 30 new code samples, with features designed for common mobile screens and functionality. NativeScript also now ships with its own CSS theme by default. Stoychev says that because the CSS uses SASS, developers are able to change the colour of their application theme just by changing SASS variables.

The theme has a wide variety of CSS class names available for developers, including: Headings, Text, Font, Padding and Margin, Dividers, Utlities, Contextual Colors, Sliders, Switches, Tabviews and many more, all listed and described here.

Out of the box, the 2.4 release enables ES6 and ES7 syntax for writing NativeScript applications, along with support for Angular 2.2 and Node.js v6 LTS, meaning that the latest Angular tooling can be supported along with the Angular SDK.

The JavaScript community's reception to the NativeScript release was positive. On Reddit, user dangoor commented:

I'm not a fan of Angular, but I do like NativeScript's approach to bridging. They bind they whole API surface of the platform to make it available to JS, so you essentially don't have to ever drop down to Java or ObjC/Swift. I'd imagine there are reasons to do so (performance), but it strikes me as a good model generally.

NativeScript is open source and released under the Apache 2.0 license. To upgrade to the latest version, developers should visit http://docs.nativescript.org/releases/upgrade-instructions.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT