16
OSC 2013 Tokyo Fall Firefox OS を使って HTML5 でハードウェアを動かしてみよう

Firefox OS を使って HTML5 でハードウェアを動かしてみよう

Embed Size (px)

Citation preview

Page 1: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

OSC 2013 Tokyo Fall

Firefox OS を使ってHTML5 でハードウェアを動かしてみよう

Page 2: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

自己紹介

Twitter: @masap 職業: 組み込みプログラマ(主にWi-Fi)

Page 3: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

3

ハードウェア開発とソフトウェア

Page 4: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

4

従来の開発スタイルの問題点

組み込み技術者の限界 従来は新しいハードウェアを作ったら、それを動かすアプリケーションは主に組み込み技術者が作っていた

使いづらい/ダサい 組み込み技術者はデザインやユーザビリティといった UI 関連の技術が低いことが原因

例)Cisc ● の無線 LAN アクセスポイントのWeb 設定画面

Page 5: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

5

従来の開発スタイルの問題点(続き)

組み込み技術者の限界 育ててはどうか

組み込み技術者はデザインやユーザビリティといった UI 関連の技術を低く見ており学習意欲が低い(高齢になるほど顕著)

デザイナとかチャラいと思っている

Page 6: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

6

解決策

アプリ開発者やデザイナさんに頼む 組み込み技術者のように低レイヤ開発者ではなく上位レイヤのアプリ開発者やデザイナさんにハードウェアを叩いてもらう

アプリ開発者やデザイナが最も多いのはHTML5

HTML5 からハードウェアを制御できるようにすればいい!

Page 7: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

7

荒唐無稽な話?

既存のHTML5制御可能ハードウェア LEAP Motion

手の位置情報をJSON形式で

WebSocket経由で受信可能 SONY NEX-6

JSONで制御可能

市場規模 ハードウェアメーカーとしてはハードウェアが多く売れれば良いので市場規模の大きいHTML5を対象にするのは必然

Page 8: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

8

プラットフォームの選択

Page 9: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

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

Page 10: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

10

ハードウェアアクセス

ハードウェアアクセスの手間

Gaia

Gecko

JavaScript

JavaScript

C/C++Gonk

Java

C/C++ C/C++

デバイスドライバ

Firefox OS Android NDK Ubuntu touch

Page 11: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

11

プラットフォームの選択

iOS HTML5から新設ハードウェア制御不可

Android vs Firefox OS APIをフレームワークに追加するのはFirefox OSの方が手間がかかる

SDKはAndroidの場合は独自SDKを配布するかリフレクションを使う必要がある。Firefox OSはSDKが無いためAPI仕様を公開するだけで使える

開発者がより使いやすいという点でFirefox OSが優れている

Page 12: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

12

「Webがプラットフォームになる」

Firefox OSのキャッチフレーズ 一般的には「ブラウザはWebを見るためのものではなくアプリケーションの実行環境になる」という意味

もう一歩進めて Webがハードウェアのプラットフォームになるという意味 Firefox OSは、それぞれのハードウェアを

「ミニプラットフォーム」とするためのOS HTML5からのハードウェアアクセスはFirefox OSが一番進んでいる

Page 13: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

13

Firefox OSは万能?

Page 14: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

14

Firefox OS の適用範囲 (1/2)

Firefox OSが常に最適ということではない 不要な場合(その1)

APIが非公開 多彩なアプリケーションが不要

具体例 パチンコの玉数を数えて表示するだけのハードウェアに

Firefox OSを載せるのは無意味である そういう用途であればUbuntu Touchが最適であろう。ハードウェアアクセス及びアプリ開発工数が最も短くて済むからである

Page 15: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

15

Firefox OS の適用範囲 (2/2)

不要な場合(その2) GUIが無い

具体例 LEAP MotionのようにGUIを持たないハードウェアであればWebSocketサーバさえあれば良い

結論 Firefox OSは汎用ハードゥエアの分野で最も輝けるのではないか。ただし、GUIを持つようなある程度リッチなハードウェアに限る

Page 16: Firefox OS を使って HTML5 でハードウェアを動かしてみよう

16

以上