NW.js (node-webkit.js) とは


NW.js とは HTML/JavaScript で書かれたアプリケーションを、デスクトップ(Windows, Mac, Linux) 向けにパッケージングし、実行するためのクロスプラットフォーム実行環境です。(つい最近まで node-webkit.js と呼ばれていました。)
ChromiumNode.js をベースにしており、Intel社 によって開発されました。現在はオープンソース化されており、誰もが無償で利用することができます。NW.js でパッケージングされたアプリケーションはデスクトップ上でネイティブのGUIアプリケーションとして動作し、公式サイトでは実際に NW.js を使って開発された様々なアプリケーションが紹介されています。

Webブラウザのレンダリングエンジンである、Webkit をアプリケーションにバンドルすることで環境ごとの動作の差異を最小限に抑えることができます。またWebからは通常アクセスできないネイティブの機能へアクセスするAPIも順次公開されています。(ただしまだ十分であるとは言えません。) 既存の Node.js の資産を活用できることも大きなメリットです。

  • NW.js の Native UI API Manual
    (ウィンドウ制御、クリップボード、タスクトレイ、ダイアログボックスへのアクセス等)

しかしながらデメリットもいくつかあります。まずアプリのファイルサイズが大きくなる点です。Webkit をまるごとバンドルするので、ちょっとしたアプリでも60MBほどになります。また用意されているAPIが限られているため、APIにないネイティブの機能を実装したい場合、OSに合わせて何らかの実装方法を検討する必要があります。また今のところモバイルアプリには対応していません。Apple がiOS のアプリに独自のWebブラウザレンダリングエンジンをバンドルすることを許可していない現状を考えると、対応を期待するのは暫くの間、困難かもしれません。

現在、モバイルアプリにおいてはHTML5ハイブリッドアプリがかなり一般的になってきているのに対して、デスクトップアプリではそれほど一般的にはなっていないように見えます。その要因の一つとして、HTML5ハイブリッドアプリをデスクトップ向けにパッケージングする方法が十分に確立、認知されていなかったことがあげられます。NW.js はこれを担う重要なプロジェクトになる可能性があります。

ランタイムをバンドルし、様々な環境で同じコードが実行できるという意味では、Adobe AIR の HTML5版とも言えるかもしれません。今後、非常に注目すべき技術だと思います。

関連記事:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です