20140531 firefox os

Preview:

Citation preview

Firefox OS アプリクイックツアー

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

Firefox OS

10

Firefox OS の動作する最小構成

11

ハードウェア 最小構成

CPU 1GHz, single-core, ARM Cortex A5 互換

ストレージ 汎用:オンボード256MB、スマホ:トータルで4G

システムRAM 128MB

ディスプレイ 262K色、HVGA、マルチタッチ(2点は必要)

GPU WebGLが利用可能、H.264動画を30FPSで描画可能

物理ボタン ホーム、電源、ボリューム

Firefox OS のアーキテクチャ

12

より詳細なアーキテクチャ

13

Firefox OS アプリの実行

14日経コミュニケーション 201305 への寄稿原稿から引用

Firefox OS アプリ

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が利用できる。キャリア、もしくはそれに準じる主体のみが作成可能。システムアプリなどが対象。

Web API

• アプリは 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

Firefox OS シミュレータ

• Firefox OS のバージョンごとに独立したアドオンとして提供される

• アプリマネージャからインストール、起動

34

デバッガの起動

• アプリマネージャから起動できる • 起動すると開発ツールのデバッガが起動する

35

実機でのデバッグ

• シミュレータと同様のデバッグが可能 • 利用条件 • 端末側はFirefox OS 1.2 以上であれば利用可能 • デスクトップ側の条件 • ADB Helper Add-onのインストール • もしくはadbがインストールされていること

• USBで接続をすると自動認識される36

Firefox OS の開発者メニュー

• メモリ使用量、FPS、ロード時間、再描画回数をOSの画面内に表示させられる

37

Firefox Powertool: 電力使用量の測定

• 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

Foxroid Tips

• http://tasdg.co.jp/fxos/tips/

42

レファレンス

43

Firefox OS コミュニティ

• http://fxos.org/ • メーリングリストベースのユーザコミュニティ • 技術的な質問が可能

44

Mozilla Developer Network

• 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