🧊

いまさらnode-webkitをさわってみた

去年くらいに一回ちらっと見た覚えがあるけども、
何事も遅すぎることはないという精神で。

参考:rogerwang/node-webkit

なにこれ

Call all Node.js modules directly from DOM and enable a new way of writing applications with all Web technologies.

DOMからNode.jsのモジュールも使えるし、もうWebでできることはなんでも使ってアプリが作れるんだぜ!的な?

デスクトップアプリが作れるやつで、Node.jsのモジュールがそのまま動いて、Windows/Mac/Linuxとかプラットフォーム気にせず配布できる形でアウトプットできるすごいやつ。

はじめかた

Macな人用。

ダウンロード & インストール

参考:rogerwang/node-webkit

現時点での最新はv0.9.2だそうな。

ダウンロードして解凍したら、node-webkit.appってのがあるので、
いつもどおりApplicationsにでもいれておく。

自分で作るときの流れ

めっちゃ簡単。

  • index.htmlつくる
  • package.jsonつくる
  • zipで固める

だけ。

一応コマンドもメモる。

zip sample.nw index.html package.json

そしたらsample.nwが実行できるようになる。
.nwなファイルをダブルクリックで起動するもよし、パスを通してコマンドから起動するもよし。

サンプル

動いてるマシンのロードアベレージとかメモリ使用量とかを表示するだけのアプリ。
気になる方はcloneしてzipに圧縮してみてください。
いちおうdistディレクトリに圧縮済みのもいれときました。

参考:leader22/node-webkit-sample-show_usage

ハマったとこ

loadshみたくNodeでもブラウザでも動く!みたいなライブラリは、使う時にご注意。
window._ でアクセスできないので、require('lodash') しないとダメ。

あと、デバッグが地味に面倒なので、なんかタスク化したほうがええかも。

rm hoge.nw && zip hoge.nw index.html package.json src/* && nw hoge.nw

みたいなことをファイル更新する度にしないといけなくなるので・・。

ブコメみて気付いたのですが、わざわざ↑みたいに毎回zipしなくても、
nw ./path/to/package.json/dir ってすればOKでした。

使い道

色々と考えてみたものの、「配布できる」ってのが一番のメリットな気がする。
個人でサーバーでも持ってればそこでホストすれば良いかもやけど、それがなかったら、とか。

あとは、いわゆるデスクトップアプリ作るときに、Webのスキルがそのまま使えるのはデカい。
ありがたや!

ローカルでNodeのモジュールが使えるってのはまあメリットっていうより、
デスクトップアプリ作るにあたり、選択肢の土俵に立てた感。
fsモジュールとか使えばファイラーとか作れるから、カスタマイズできる自分だけのFinderを作ったりはできるかも。

Win/Mac入り乱れる社内で、なんか共通で使えたら嬉しいツールとかコレで作ると幸せになれそう。