neu.Nodeを触ってみました

iOS上でNode.jsを動かすというneu.Node。1/16にneu.Node リリースのお知らせで公開されたneu.Nodeを試してみました。最初のとっかかりとして、どこから始めればいいのかまとめてみます。

ソースコード
https://github.com/snakajima/neunode
何はともあれ、必要なのはXcodeですので、AppStoreでDLしておいてください。

準備ができたらGitHubからDLしてきます。

$ git clone https://github.com/snakajima/neunode.git


デモを動かす

neunode.xcodeprojをXcodeで開いてみます。サンプルが入っていますので、とりあえず起動してみましょう。

ウィンドウ左上でデバイスを指定して「Run」ボタンをクリックします。
ビルドが成功して、シミュレータが起動するはずです。

最初に「Hello World」を選んでみます。すると、Xcodeの「All Output」部分に以下のようなログが表示されます。

ブラウザでURLを入れてアクセスしてみましょう。もちろん、環境によってIPアドレス等は変わります。

Hello Worldが表示されました。素晴らしい。

では今度は「Echo Server」を起動してみます。同様に「All Output」に以下のようにログが出力されます。

2013-01-19 10:30:52.067 neunode[64309:11303] Server is running at { port: 1337, family: 'IPv4', address: '192.168.0.4' }
2013-01-19 10:30:52.069 neunode[64309:11303] Use "telnet 192.168.0.4 1337" to see the action

telnetしてみます。

$ telnet 192.168.0.4 1337
Trying 192.168.0.4...
Connected to 192.168.0.4.
Escape character is '^]'.
Hello
Hello
World
World
^]
telnet> quit
Connection closed.

入力した文字がサーバから返ってきます。

ファイル構成

デモや諸々はどこに書かれているのか調べてみると、以下のような構成になっているようです。
neunode/apps/*.js
これらがデモの本体、それからroot.jsがデモ選択画面のようです。
neunode/apps/*.html
ロードするライブラリをscript要素で記述するようです。

Frameworks/core/*.js
これらがNode.jsの各ライブラリのようです。

ライブラリを見てみると、Node.jsに含まれるCryptライブラリなどが無いように見えます。

まとめ・疑問点など

Node.jsがiOS上で動くというのは面白いですね。JavaScriptでアプリを作ると言えばTitanium MobileやPhoneGapなどがありますが、WebSocketが使えるという事でリアルタイムかつサーバ不要のコミュニケーションアプリが作れるとあって、新しいカタチのアプリ・使い方ができそうな予感です。

まだ触ったばかりで良く分からないのですが、

  • fs.readFile()などのファイル操作系は、サンドボックス内のファイルにアクセスできるのか
  • NDB/KVSなどはどうしたら良いのか/SQLiteは使えるのか(WebViewで使えるだろうし・・)
  • npmは使えるのか
  • バイスのカメラやGPSなどにアクセスはできるのか

といったところが疑問点かなと。
実際に触ってみれば分かる事でしょうけど。

という事で参考になれば。

[追記 2013/01/22]
その後調べて分かった事を書きました。