FirefoxOSアプリクイックツアー
Mozilla Japan テクニカルマーケティング
清水智公 (nshimizu@mozilla-japan.org)
中国Firefox OS勉強会 1st 2014/05/31
about:me
2
清水智公(しみずのりただ)
• Mozilla Japan 

テクニカルマーケティング
• 慶應義塾大学

政策・メディア研究科非常勤
• @chikoski
• https://slideshare.net/chikoski/
3
about:mozilla
4
FFiirreeffooxx  を


よろしくね!
6
7
アプリ=タブ
9
FirefoxOS
10
FirefoxOSの動作する最小構成
11
ハードウェア 最小構成
CPU 1GHz, single-core, ARM Cortex A5 互換
ストレージ 汎用:オンボード256MB、スマホ:トータルで4G
システムRAM 128MB
ディスプレイ 262K色、HVGA、マルチタッチ(2点は必要)
GPU WebGLが利用可能、H.264動画を30FPSで描画可能
物理ボタン ホーム、電源、ボリューム
FirefoxOSのアーキテクチャ
12
より詳細なアーキテクチャ
13
FirefoxOSアプリの実行
14
日経コミュニケーション 201305 への寄稿原稿から引用
FirefoxOSアプリ
15
HTML5でアプリが作成できる
• 音楽プレーヤアプリとそのソースコード
16
アプリ=HTML+JS+アプリマニフェスト
17
Web サイト + マニフェストファイル
でアプリになる!
{	
"launch_path":"/index.html",	
"installs_allowed_from":["*"],	
"version":"0.0.1",	
"name":"HelloCordova"	
}
18
アプリの種類
• ホスト型アプリ
• Webサイトから読み込んで実行
• オフライン対応アプリも

実装可能
• パッケージ型アプリ
• 従来のスマホアプリに対応
• 起動にネットワークを

必要としない
19
パッケージ型
アプリ
ホスト型

アプリ
権限によるアプリの分類
20
分類 説明
通常アプリ
通常のアプリ。

ホスト型、パッケージ型ともにこの権限で動作する。
特権アプリ
(Privileged)
パッケージ型アプリのみ。通常アプリより使用できる
APIが増える。コードレビューによる審査が行われ、
Marketplaceによってデジタル署名が付加される。
認定アプリ
(Certified)
パッケージ型アプリのみ。全てのAPIが利用できる。

キャリア、もしくはそれに準じる主体のみが作成可能。
システムアプリなどが対象。
WebAPI
• アプリは Web API を通じて、資源やハードウェアへ
アクセスする
21
通常アプリで利用できるAPI
22
分類 使用できるAPI
コミュニケーシ
ョン
Network Information API
ハードウェアア
クセス
Ambient Light Sensor API, Battery Status API, Pointer
Lock API, Proximity API, Screen Orientation API, Vibration
API, Geolocation API
データ管理 Indexed DB, FileHandle API
その他
Alarm API, Simple Push API, Web Notifications, App API,
Web Activities, Web Payment API, WebAudio, WebGL,
getUserMedia, Audio recording
Firefox OS version 1.3 での場合
特権アプリで利用できるAPI
23
分類 使用できるAPI
コミュニケーシ
ョン
Network Information API, NFC API, SystemXHR
ハードウェアア
クセス
Ambient Light Sensor API, Battery Status API, Pointer
Lock API, Proximity API, Screen Orientation API, Vibration
API, Web FM API, SpeakerManager API, Geolocation API
データ管理
Indexed DB, FileHandle API, Contacts API, Device
Storage API, Browser API, TCP Socket API
その他
Alarm API, Simple Push API, Web Notifications, App API,
Web Activities, Web Payment API, WebAudio, WebGL,
getUserMedia, Audio recording
Firefox OS version 1.3 での場合
Webアクティビティ
• 他のアプリケーションの機能を呼び出すAPI
• 例
• ギャラリーから画像を選ぶ
• PDFを表示する
• activietyRequest / activityResponse
24
ギャラリーから画像選択
var activity = new MozActivity({	
name: "pick",	
data: {	
type: "image/jpeg"	
}	
});
25
レスポンスの処理
activity.onsuccess = function() {	
var picture = this.result;	
console.log("A picture has been retrieved");	
};	
!
activity.onerror = function() {	
console.log(this.error);	
};
26
アプリの公開・配布
27
配布方法
• ホスト型アプリの配布方法
• 通常のWebサイトと同様に公開
• パッケージ型アプリへの導線としての利用
• パッケージ型アプリの配布方法
• Firefox Marketplace での公開
• 自己配布も可能(通常アプリのみ)
• 独自マーケットプレースを開設し、配布
28
パッケージ型
アプリ
ホスト型

アプリ
• https://marketplace.firefox.com/
• Mozilla の提供するマーケットプレース
• 特権アプリはここで公開できる
• アプリ公開には審査が必要
29
自己配布
• 通常アプリは自己配布できる
30
クリック
アプリ開発環境
31
開発環境:Firefoxが動作する環境
32
ツール 説明
専用IDE なし
専用ライブラリ なし
デバッガ Firefox 付属の開発ツールを利用
プロファイラ Firefox 付属の開発ツールを利用
ネットワークモニタ Firefox 付属の開発ツールを利用
シミュレータ Firefox 付属の開発ツールにアドオンを追加
アプリマネージャ
• 開発中のアプリとシミュレータの管理ツール
• Firefox の標準機能
33
FirefoxOSシミュレータ
• Firefox OS のバージョンごとに
独立したアドオンとして提供
される
• アプリマネージャから

インストール、起動
34
デバッガの起動
• アプリマネージャから起動できる
• 起動すると開発ツールのデバッガが起動する
35
実機でのデバッグ
• シミュレータと同様のデバッグが可能
• 利用条件
• 端末側はFirefox OS 1.2 以上であれば利用可能
• デスクトップ側の条件
• ADB Helper Add-onのインストール
• もしくはadbがインストールされていること
• USBで接続をすると自動認識される
36
FirefoxOSの開発者メニュー
• メモリ使用量、FPS、ロード時間、再描画回数を

OSの画面内に表示させられる
37
FirefoxPowertool:電力使用量の測定
• https://github.com/JonHylands/fxos-powertool
38
開発者向け端末
• TELEC, JATEなどの認証予定
• http://www.mozilla.jp/firefox/os/devices/flame/
• スペック
• MSM8210 Snapdragon, 1.2GHZ Dual core
• 4.5 inch, FWVGA
• 8GB メモリ
• NFC, Bluetooth 3.0, 802.11 b/g/n
• 5MP AF, flash (rear) / 2MP (front)
39
Androidのアレって
どうつくるんだろう?
40
Foxroid
• http://foxroid.com/
41
FoxroidTips
• http://tasdg.co.jp/fxos/tips/
42
レファレンス
43
FirefoxOSコミュニティ
• http://fxos.org/
• メーリングリストベースのユーザコミュニティ
• 技術的な質問が可能
44
MozillaDeveloperNetwork
• https://developer.mozilla.org/
45
MDN内のAppsセンター
• https://developer.mozilla.org/docs/Web/Apps
• アプリ開発者向けドキュメント
46
レファレンスアプリ
• https://developer.mozilla.org/docs/Web/Apps/Reference_apps
• アプリケーションの説明とサンプルコード集
47
システムアプリのソースコード
• https://github.com/mozilla-b2g/gaia
48

20140531 firefox os