基本情報
概要
NW.js(エヌダブリュージェイエス)とは、HTML/CSS/JavaScriptで書かれたWebアプリケーションを、デスクトップ(Windows/Mac/Linux) 向けにパッケージングし、ネイティブアプリケーションとして実行するためのクロスプラットフォーム実行環境です。(「node-webkit」から「NW.js」に改名されました。)
基本説明
オープンソースブラウザ「Chromium」とサーバサイドJavaScriptアプリケーションプラットフォーム「Node.js」をベースにしています。
HTML5+CSS3+JavaScriptで、Windows/Mac/Linuxにて動作するネイティブGUIアプリケーションを作成できます。
課題
アプリファイルサイズ
アプリのファイルサイズが大きくなります。「Webkit」をすべてバンドルするため、シンプルなアプリケーションでも数十MBになります。
すべてのネイティブ機能を使用できるわけではない
用意されているAPIが限られているため、APIにないネイティブ機能を実装したい場合、対象OSに合わせて何らかの実装方法を検討する必要があります。
モバイルアプリには未対応
モバイルアプリには対応していません。
「NW.js」と「Electron」の方向性の違い
同様な仕組みを提供するものとして「Electron」があります。「NW.js」も「Electron」も「node.js」+「WebKit」ですが、方向性が異なります。
「NW.js」はChromium寄りです。既存ウェブアプリに「node.js」の機能を追加する方向性です。既存Webサイトのデスクトップアプリ化に向いています。しかし、複雑な処理を追加することには向いていません。
「Electron」は「Node.js」寄りです。「node.js」のプログラムから「WebKit」を呼び出す方向性です。1からクロスプラットフォームアプリケーションを開発することに適しています。
経緯
Intel社によって開発されています。
元々は「node-webkit」という名称でした。2015年1月に「NW.js」に改名されました。
主な特徴
ランタイムをバンドル
ランタイムをバンドルするため、さまざまな環境で同じコードが実行できます。
Webブラウザレンダリングエンジン「Webkit」をアプリケーションにバンドルすることで環境ごとの動作の差異を最小限に抑えます。
「Adobe AIR」のHTML5版というイメージです。
OSネイティブ機能を実行
Webアプリケーションからは通常アクセスできない各OSネイティブ機能へアクセスするAPIも順次公開されています。
Node.jsの資産を活用できる
膨大に蓄積されているNode.jsの資産を活用できることも大きなメリットです。
同様製品(概要情報)
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Electron」など。
導入事例
PayPalなどでの導入事例が有名です。
ライセンス情報
NW.jsのライセンスは、「MIT License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。