最近、ますますJavaScriptの勢いが増しています。特に注目すべきはデスクトップ分野ではないかと思います。nodeが安定してくるのに合わせて、Webアプリケーションやサーバサイド以外の分野でもnodeが使われるようになっています。ということで今回はnode-webkitの面白さ、実際にどういったアプリケーションが作れるのかを紹介します。
マルチプラットフォーム対応
node-webkitはWindows(32bit)、Mac OSX(32/64bit)、Linux(32/64bit)に対応しています。最新の0.10.4ではnode 0.11.13/Chromuim 35.0.1916.157がベースになっており、Chromeの最新の機能が使えるようになっています。
Webアプリケーションのネイティブ化
やはりJavaScriptでネイティブアプリが書けるのは魅力です。それもTitaniumのような手法ではなく、HTML5が使えるのが便利です。つまりWebアプリケーションとしてサービスを提供しつつ、そのままローカルでも動作させることができるのです。
オフラインで動かす場合はSQLiteなどを使って、そうでなくともAjaxを使った連携が考えられるでしょう(CORSは対応する必要がありますが)。
ネイティブの機能よりもネットワークのが大事になっている
クラウドが当たり前になっている現在、ローカルにあるリソースを使うよりもネットワーク上にあるデータを使いたいと考えるケースのが多いです。ゲームや高応性が求められるケースや、USB/シリアル通信の場合は難しいでしょうが、Web APIを使ったりスクレイピングをしたりするのはむしろWeb技術の方が楽なはずです。
適材適所ではありますが、最近はローカル固有の技術にこだわる理由が減っているのではないでしょうか。
高速に、サーバ負荷を低減
オフラインでも使えるということはサーバにアクセスする必要がなくなるので負荷軽減が狙えます。特に画像やJavaScript、スタイルシートなどのファイルがローカルに持てるので表示も高速化されるでしょう。
リソースがオフラインにあるということは、そのバージョンのアプリケーションを起動している限りは同じリソースを使い続けられるということです。画像の差し替えやスタイルシートの変更の影響がなくなるので、純粋にローカルのみまたはWeb API経由での操作が望ましいでしょう。
実行ファイル化も可能
node-webkitはランタイムを各自で用意する必要がありましたが、最近はそのランタイムを内包して実行ファイル化するライブラリも増えています。それらを使うことで配布と実行がとても簡単になっています。
UIさえWebっぽさを除けば(そういったローカルアプリ風のデザインも登場しています)、ほぼネイティブアプリと変わらない使い勝手になるのではないでしょうか。
この記事は過去記事の為、今入会しても読めません。ニコニコポイントでご購入下さい。