Thing.jsについて
2016.9.30
Developers in KOBE Vol. 9
BathTimeFish 村岡 正和
HTML5-WEST.jp代表 / html5j マークアップ部 部長 / HTML5 Experts.jp メンバー
NPO法人日本ウェアラブルデバイスユーザー会理事
神戸市ウェアラブルデバイス推進会議メンバーなど
むらおか まさかず
村岡正和
Webアプリケーション開発 IT業務システム設計/開発
Webサービス導入/事業戦略コンサルティング
神戸デジタル・ラボ 社外取締役
@bathtimefish
HTML5-WEST.jp
Firefox OS 開発ガイドブック
http://amzn.to/292MeXl
CEATEC JAPAN 2016 出展します
会社も出すみたい
http://commongarden.github.io/Thing.js/docs/index.html
Thing.js
• IoT開発のための軽量なフレームワーク
• W3C web of things frameworkにインスパイアされた
• Thing.jsはThingという単一のクラスを持つ
• ThingクラスはEventEmitterの拡張として実装されている
https://github.com/w3c/web-of-things-framework
Thing.js
• Metadata
• Properties
• Actions
• Events
Thingオブジェクトは以下の機能を持つ
Metadata
Properties
Actions
Events
Thingオブジェクトが起動したときのコールバック(オプション)
http://commongarden.github.io/Thing.js/docs/Thing.js.html
ドキュメントがソースと合ってない(古い?)のでPRしといた
get() 指定したプロパティを取得する
set() 指定したプロパティに値を設定する
getAction() 指定したactionのオブジェクトを取得する
getEvent() 指定したeventのオブジェクトを取得する
call() 指定したactionを呼ぶ
いまのところeventのfunctionが実行されてない
schedule() 指定したaction/eventをスケジュール実行する(はず)
Functionないエラーが発生...
コードみたらfunction全体がコメントアウトされてた
まだ開発中か?(いらん気がするけど)
EventEmitterの拡張なのでメソッドは使えるけど
Thingオブジェクトには影響しない
Thing.call() された場合はcall()内部でemit()が呼ばれる
ためイベントが伝播する
まとめ
メタデータを持った構造化イベントって感じの実装
schedule()がコメントアウトされてるのはなんか
悩んでるっぽい感じがした。つーか必要ないと思うこれ。
センサーやデバイスなどをオブジェクト化して
イベントドリブンにプログラミングするには便利かも
うまく使えばコードの見通しよくなる気がする
Thanks !

Thing.jsについて