BT

InfoQ ホームページ ニュース Web Workers仕様を備えたNative Script 2.4

Web Workers仕様を備えたNative Script 2.4

ブックマーク

原文(投稿日:2016/11/28)へのリンク

NativeScript 2.4がリリースされた。Angular 2.2,Node 6,ES6とES7に加えて,独自のCSSテーマをデフォルトでサポートする。

NativeScript 2.4を発表するブログ記事の中で,TelerikのValio Stoychev氏は,“今回は私たちにとって最大のリリースです。この2ヶ月間で多数の新機能と改善が行なわれました。さらにNativeScriptの360を越えるプラグインを見れば,コアチームよりもはるかに多くのコードをコミュニティが生み出していることは間違いありません。これはすべてのオープンソースプロジェクトのための,巨大なマイルストンです。”と述べている。

2.4リリースの変更の中で最も注目されているのは,Stoychev氏の説明によれば,“UIスレッドを容易にするための,バックグラウンドスレッドでコードを実行する機能”だ。2.2リリースからNativeScriptコアドキュメントに加えられたマルチスレッドモデルに関する説明によると,このWeb Workers仕様は,“UIの感度と性能の高さが重要な場合の,動作の遅さという問題に取り組む”ために設計されたものだ。

開発者は,NativeScriptのマルチスレッドソリューションであるワーカスレッドを使用することが可能です。ワーカ(Worker)は完全に切り離されたコンテキスト内で,バックグラウンドスレッド上で動作するスクリプトです。実行時間の長いタスクは,ワーカスレッド上へオフロードすることが必要です。

下図の例は,ワーカ/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

アプリケーション設計時の生産性を向上するために,NativeScriptのコードサンプルのプロジェクトには,新たに一般的なモバイル画面や機能に関する設計を含む,30のコードサンプルが追加されている。今回のリリースには,デフォルトで独自のCSSテーマも同梱されている。Stoychev氏によれば,このCSSはSASSを使用しているため,開発者はSASS変数を変更するだけで,アプリケーションのテーマカラーを変更可能だという。

テーマには開発者が使用可能な,さまざまなCSSクラス名が用意されている — Headings, Text, Font, Padding and Margin, Dividers, Utlities, Contextual Colors, Sliders, Switches, Tabviewsなどを含むクラス名の一覧と説明がこちらにある。

2.4リリースでは最初から,NativeScriptの記述にES6およびES7構文の利用が可能であるとともに,Angular 2.2とNode.js v6 LTSもサポートされている。これはつまり,最新のAngularツーリングとAngular SDKがサポート可能であるということだ。

NativeScriptリリースに対するJavaScriptコミュニティの反応は肯定的だ。Redditでは,ユーザdangoorが次のようにコメントしている

Angularのファンではありませんが,NativeScriptのブリッジアプローチには好感が持てます。プラットフォームの全APIサーフェスをJSから利用可能にすることで,基本的にJavaやObjC/Swiftにドロップダウンする必要はなくなりました。それが必要な場面もあると思います(パフォーマンス的に)が,一般的には好ましいモデルだという印象です。

NativeScriptはオープンソースで,Apache 2.0ライセンス下でリリースされている。 最新バージョンへのリリースには,http://docs.nativescript.org/releases/upgrade-instructionsの参照が必要だ。

 
 

この記事を評価

関連性
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

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

コミュニティコメント

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

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

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。