firefox os を使って html5 でハードウェアを動かしてみよう
TRANSCRIPT
OSC 2013 Tokyo Fall
Firefox OS を使ってHTML5 でハードウェアを動かしてみよう
自己紹介
Twitter: @masap 職業: 組み込みプログラマ(主にWi-Fi)
3
ハードウェア開発とソフトウェア
4
従来の開発スタイルの問題点
組み込み技術者の限界 従来は新しいハードウェアを作ったら、それを動かすアプリケーションは主に組み込み技術者が作っていた
使いづらい/ダサい 組み込み技術者はデザインやユーザビリティといった UI 関連の技術が低いことが原因
例)Cisc ● の無線 LAN アクセスポイントのWeb 設定画面
5
従来の開発スタイルの問題点(続き)
組み込み技術者の限界 育ててはどうか
組み込み技術者はデザインやユーザビリティといった UI 関連の技術を低く見ており学習意欲が低い(高齢になるほど顕著)
デザイナとかチャラいと思っている
6
解決策
アプリ開発者やデザイナさんに頼む 組み込み技術者のように低レイヤ開発者ではなく上位レイヤのアプリ開発者やデザイナさんにハードウェアを叩いてもらう
アプリ開発者やデザイナが最も多いのはHTML5
HTML5 からハードウェアを制御できるようにすればいい!
7
荒唐無稽な話?
既存のHTML5制御可能ハードウェア LEAP Motion
手の位置情報をJSON形式で
WebSocket経由で受信可能 SONY NEX-6
JSONで制御可能
市場規模 ハードウェアメーカーとしてはハードウェアが多く売れれば良いので市場規模の大きいHTML5を対象にするのは必然
8
プラットフォームの選択
9
開発環境比較
iOS Android Tizen UbuntuTouch
Firefox OS
SDK Xcode Eclipse withADT Plugin
Tizen SDK Ubuntu SDK なし
ブラウザエンジン
WebKit WebKit WebKit WebKit Gecko
開発言語 Objective-C Java JavaScript QML/JavaScript
JavaScript
画面設計 Objective-C XML HTML5/CSS
QML/HTML5/CSS
HTML5/CSS
ネイティブ Objective-C C++ EFL C++ なし
OS iOS Linux Linux Linux Linux
10
ハードウェアアクセス
ハードウェアアクセスの手間
Gaia
Gecko
JavaScript
JavaScript
C/C++Gonk
Java
C/C++ C/C++
デバイスドライバ
Firefox OS Android NDK Ubuntu touch
11
プラットフォームの選択
iOS HTML5から新設ハードウェア制御不可
Android vs Firefox OS APIをフレームワークに追加するのはFirefox OSの方が手間がかかる
SDKはAndroidの場合は独自SDKを配布するかリフレクションを使う必要がある。Firefox OSはSDKが無いためAPI仕様を公開するだけで使える
開発者がより使いやすいという点でFirefox OSが優れている
12
「Webがプラットフォームになる」
Firefox OSのキャッチフレーズ 一般的には「ブラウザはWebを見るためのものではなくアプリケーションの実行環境になる」という意味
もう一歩進めて Webがハードウェアのプラットフォームになるという意味 Firefox OSは、それぞれのハードウェアを
「ミニプラットフォーム」とするためのOS HTML5からのハードウェアアクセスはFirefox OSが一番進んでいる
13
Firefox OSは万能?
14
Firefox OS の適用範囲 (1/2)
Firefox OSが常に最適ということではない 不要な場合(その1)
APIが非公開 多彩なアプリケーションが不要
具体例 パチンコの玉数を数えて表示するだけのハードウェアに
Firefox OSを載せるのは無意味である そういう用途であればUbuntu Touchが最適であろう。ハードウェアアクセス及びアプリ開発工数が最も短くて済むからである
15
Firefox OS の適用範囲 (2/2)
不要な場合(その2) GUIが無い
具体例 LEAP MotionのようにGUIを持たないハードウェアであればWebSocketサーバさえあれば良い
結論 Firefox OSは汎用ハードゥエアの分野で最も輝けるのではないか。ただし、GUIを持つようなある程度リッチなハードウェアに限る
16
以上