この記事はGizumoエンジニア Advent Calendar 2015の23日目の記事です
僕は株式会社Gizumoでフロントエンジニアをしていますosamu38と申します。最近はもっぱら受託開発に勤しんでいますが、隙をみてNode.jsの勉強だったり社内で流行中のカードゲームで遊んでいます。
そんな僕が最近node-webkit
とゆうNode.js
でネイティブアプリが作れるツールがあるという噂を聞き、さっそくリポジトリを探しに行ってみたところ
node-webkit is renamed NW.js
node-webkit
じゃなくてNW.js
に変わっていました。まぁそんなことはどうでもいいのでひとまず導入手順を説明していきます。
導入手順
本家NW.jsのサイトへ行き
NW.jsをダウンロードしちゃいましょう。
nwjs-v0.12.3-osx-x64
を中を見てみると
credits.html
とnwjc
とnwjs
があるので、nwjs
をアプリケーションフォルダに移動させます。
アプリケーションフォルダに移動したnwjs
をダブルクリックしても「開発元を確認できないため、開けませんでした。」と出てしまうので、これをみて解決しましょう。
解決したらもう一度ダブルクリック!
おお!素晴らしい!ネイティブアプリの画面が出てきましたね!
自分で作った画面を表示させてみる
そしてアプリケーションに移動したnwjs
を右クリックしてパッケージの内容を表示します。
このようなディレクトリ構造になっていると思います。
このResourcesフォルダの中にapp.nw
というフォルダを作り、その中にindex.html
とpackage.json
を置きます。
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
We are using node.js <script>document.write(process.version)</script>.
</body>
</html>
{
"name": "nw-demo",
"version": "0.0.1",
"main": "index.html"
}
この状態でnwjs
をダブルクリックしましょう。
おお!Hello World!
が表示されています!
しかもindex.html
でクライアントでは取得できないprocess.version
が取得できていますね。
ちゃんとNode.jsで動いているのがわかります。
カードゲーム用のライフカウンターアプリを作ってみる
まずpackage.json
を書き換えます。
{
"name": "mtg-life-counter",
"version": "0.0.1",
"main": "index.html",
"window": {
"toolbar": false,
"resizable": false,
"always-on-top": true,
"width": 600,
"height": 600
}
}
ここではツールバーを消したり、リサイズできなくしたり、アプリを常に前にもってきたり、ウィンドウのサイズを設定したりしています。他にも色々と設定できるので公式サイトで確認してくださいー。
app.nw
内にimages
・javascripts
・stylesheets
フォルダを作成し、jquery.js
だったり、reset.css
だったり、logo.png
だったり、いわゆるWEBアプリを作るような感覚でどんどん入れていきましょう。
・
・
・
・
・
・
・
・
・
・
・
・
・
・
完成!!
色々と端折ってしまいましたが、ライフカウンター完成しましたね!(結局Node.jsの機能を一切使っていないのはご愛嬌)
まとめ
あ…ありのまま 今 起こった事を話すぜ!
「おれは ネイティブアプリを作ると
思ったら デスクトップアプリを作ってた」
な… 何を言っているのか(ry
というような感じで、そもそもNW.js
の概要すら勘違いしていましたねw 素直にElectron使えば良かったなーと思うのですが、NW.js
にはNW.js
の良さがあるらしいです。electronとnw.jsの技術的な違いを見ると違いが良くわかるかと思います!
そして次回作るときがあれば、もっとNode.js
の機能を使ってアプリを作成したいと思いました。
皆さまも暇な時間を使ってデスクトップアプリを作ってみてはいかがでしょうか!