try firefox os

69
Firefox OS Product Summary by Tomoya Asai (dynamis)

Upload: dynamis-

Post on 15-Jan-2015

1.740 views

Category:

Technology


1 download

DESCRIPTION

KOF 2013 で使用したスライド https://k-of.jp/2013/

TRANSCRIPT

Page 1: Try Firefox OS

Firefox OSProduct Summary

by Tomoya Asai (dynamis)

Page 2: Try Firefox OS

about:me

Page 3: Try Firefox OS

Tomoya ASAI

Mozilla Japan Technical Marketing (Evangelist)

dynamis @ community dynamis.jp

@dynamitter

facebook.com/dynamis

mailto: Tomoya ASAI <dynamis mozilla-japan.org>@

Page 4: Try Firefox OS

Firefox OS

Page 5: Try Firefox OS

ホーム画面

アプリのグリッド表示

Page 6: Try Firefox OS

写真ギャラリー

写真の編集画面

Page 7: Try Firefox OS

音楽再生アプリ

ビデオ再生アプリ

Page 8: Try Firefox OS

アドレス帳

メールアプリ

Page 9: Try Firefox OS

Firefox

Firefox Marketplace

Page 10: Try Firefox OS

!

Firefox OS - Web is the Platform

Web = アプリ環境 アプリはすべて Web 技術で ドメイン = アプリの1:1対応 Web を進化させる 不足機能は API を定義・標準化 Web のセキュリティモデルなども実装・標準化していく

Page 11: Try Firefox OS

Web 技術をネイティブに

Web 技術が「ネイティブ」 HTML/CSS/JS ですべて可能に 新しい API は W3C 標準化

速度も C 言語に迫る asm.js により大幅高速化を実現 WebGL や DOMCrypt なども活用

Web 技術だけですべてが済むプラットフォームとなるよう発展中

Page 12: Try Firefox OS

Semantic Elements

Multi Media

Canvas

HTML5 Forms

Offline Support

Micro- Data

WebGL

Indexed DB

SVG

Server- Sent ev.

Web Sockets

Web Sockets

Geo- location

FileAPI

Web Storage

XHR2

Math ML

Layout

Media Queries

HTML5

CSS3~Trans form

Anim ation

Regions

Filters

HTML5 Parser

Mouse, Key ev.

ECMA Script

CSP

SPDY

XHTML5

Orien- tation

Web Workers

Web Messag-

ing

DOM4

SMIL Vibra- tion

XPathRSS

OGP

WAI- ARIA

W3C

WHATWG

other

Khronos

ECMA

IETF

WOFF

HTML

DNT

Page 13: Try Firefox OS

Semantic Elements

Multi Media

Canvas

HTML5 Forms

Offline Support

Webm

H.264

Micro- Data

WebGL

Web SQL

Indexed DB

SVG

Server- Sent ev.

Web Sockets

Web Sockets

Geo- location

FileAPI

Web Storage

XHR2

Math ML

Web Audio

Layout

Media Queries

HTML5

CSS3~Trans form

Anim ation

Regions

Filters

HTML5 Parser

Mouse, Key ev.

Opus

ECMA Script ECMA

6th

USB

CSP

SPDY

WebCL

Web RTC

Net Info

MP3

Device Storage

TCP Socket

NFC

File Sys

Notifi- cation

XHTML5

Orien- tation

Web Workers

Web Messag-

ing

DOM4

SMIL Vibra- tion

Proxi- mity

XPathRSS

RDF

OGP

Schema .org

WAI- ARIA

W3C

WHATWG

other

Khronos

ECMA

IETF

WOFF

Battery Status

Radio

Tel

HTML

DNT

Flex Box

Page 14: Try Firefox OS

ステータスバー (通知、電波強度、電池残量...)も カメラやラジオも ビデオや音楽の再生も マーケットプレイスも システムの環境設定も ホーム画面や壁紙も 電話や SMS の送受信も もちろん ブラウザ も

その他なんでも...

すべて Web 技術で!

Page 15: Try Firefox OS

Firefox OS : Tizen : Android

Native Framework

カーネル & HAL

Web Platform

Web Framework

App Framework

Android Runtime

Dalvik

WebKit

Java アプリ

ブラウザ アプリ

Native Library

Web アプリ

WebKit

Web アプリ

Native アプリ

OSetc..

DeviceAPI

WebRT

Web アプリ

Packaged Webアプリ

コアサービスGeckoDeviceAPI SystemAPI

Web に最適化 シンプル&スマート

ライブラリSGL etc.

Native Interface

カーネル & HAL カーネル & HAL

X.org etc.

左上のアプリが Web 読み込み型、右上のアプリがダウンロード型

Page 16: Try Firefox OS

C 言語に迫る高速化 (asm.js)

asm.js 導入時点で JavaScript は C の 2 倍遅い程度 (Java や C# の処理速度と同程度以上の水準に)

2013/03 - http://kripken.github.io/mloc_emscripten_talk/#/19

Page 17: Try Firefox OS

C 言語に迫る高速化 (asm.js)

Firefox の JavaScript (asm.js 形式) コード実行速度は C 言語より数割遅い程度まで迫ってきている

2013/09 - http://kripken.github.io/mloc_emscripten_talk/sloop.html#/7

Page 18: Try Firefox OS

実レベル: Box2D 物理演算エンジン

Box2D では C 言語の 2 倍遅い程度の速度 !

Chrome や IE でも通常の JS より asm.js が高速 Java や CrossBridge (Flash C++ Compiler) と同等以上

2013/07 - http://kripken.github.io/mloc_emscripten_talk/sloop.html#/8

Page 19: Try Firefox OS

実用例: Unreal Engine 3

100 万行以上の C & OpenGL コードを 5 日で移植 LLVM + Emscripten で JavaScript (asm.js) に変換

epic CITADEL http://www.unrealengine.com/html5/

Page 20: Try Firefox OS

!

多数企業との共同開発・製品化

主要 18 キャリアが賛同 KDDI, Telefónica, Deutsche Telekom、Telenor...

チップ&端末メーカー Qualcomm, ARM ZTE, Alcatel, LG, Huawei, Sony Foxconn...

もちろん発表している企業がすべてではない

Page 21: Try Firefox OS

7月、8月に最初の販売開始

7月2日にスペインで発売 Telefónica が ZTE Open を発売 €69 (税込) プリペイド €30 含む

順次世界各国に展開 7月12日にポーランドで発売 8月1日にコロンビア、ベネズエラ

まずは今後の成長が見込まれる新興国市場を中心に展開 (キャリアの戦略)

Page 22: Try Firefox OS

ワルシャワやマドリッドでは…

Page 23: Try Firefox OS

ZTE Open & Alcatel One Touch Fire

Page 24: Try Firefox OS

!

ZTE Open

主な仕様: Size: 114 x 62 x 12.5 mmDisplay: 3.5 inch HVGACPU: MSM7225A 1 GHz (Cortex-A5, Adreno 200)RAM: 256 MBROM: 512 MB

スペインなどで発売

http://www.ztedevices.com/product/smart_phone/2bcf2d56-0c9a-4129-a25c-acce58c8e502.html

Page 25: Try Firefox OS

!

Alcatel One Touch Fire

主な仕様: Size: 115 x 62.3 x 12.2 mmDisplay: 3.5 inch HVGACPU: MSM7227A 1 GHz (Cortex-A5, Adreno 200)RAM: 256 MBROM: 512 MB

ポーランドなどで発売

http://www.alcatelonetouch.com/global-en/products/smartphones/one_touch_fire.html

Page 26: Try Firefox OS

10月から更に多くの市場へ展開

Firefox OS 1.1 端末のリリース Telefónica 10/22: ブラジル10/31: メキシコ、ペルー、ウルグアイ Deutsche Telekom ドイツ、ギリシャ、ハンガリー Telenor ハンガリー、セルビア、モンテネグロ

日本や北米では 2013~2014 年中の見込み http://mozilla.jp/blog/entry/10310/

Page 27: Try Firefox OS

LG Fireweb (D300)

主な仕様: Size: 113.8 x 66.5 x 9 mmDisplay: 4 inch HVGACPU: 1 GHz (型番未確認)Memory: 2 GB (4GB?)

ブラジルなどで発売

http://www.vivo.com.br/firefoxos/

Page 28: Try Firefox OS

Firefox OS ロードマップ

12 週間毎にアップデート 既存端末も順次更新される

Firefox OS 1.2 Android 4.3 × Firefox 26 ベース

Firefox OS 1.3 WebRTC, NFC, DataStore etc

UX 刷新プロジェクト進行中https://wiki.mozilla.org/B2G/Roadmap

Page 29: Try Firefox OS

App Manager & Simulator

Page 30: Try Firefox OS

アプリマネージャ

アプリ開発・管理環境 Firefox 標準搭載の開発環境 Firefox Nightly などに搭載済み

シュミレータ・実機両対応 Firefox OS 1.2 以降の実機またはシュミレータと接続して開発 10 月時点で Firefox OS 1.2, 1.3 のシュミレータが公開中

リリース版やベータ版には未搭載ですので Nightly で開発してください

Page 31: Try Firefox OS

アプリマネージャ

Web アプリ開発統合環境が Firefox 26 から標準搭載 アプリのインストールやリモートデバッグも

Page 32: Try Firefox OS

アプリマネージャ

Web Developer → App Manager メニューで起動 ヘルプのリンクからシュミレータをインストール

Page 33: Try Firefox OS

アドオンをインストール

Firefox OS 1.2, 1.3 の Simulator と ADB Helper https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/

Page 34: Try Firefox OS

シュミレータを起動

画面下部の [Start Simulator] ボタンで起動 起動したいバージョンを選択

Page 35: Try Firefox OS

Firefox OS 1.2 Simulator

デフォルトホームにアプリ検索フォームが移動

Page 36: Try Firefox OS

Firefox OS 1.3 Simulator

カテゴリ別アプリフォルダ復活

Page 37: Try Firefox OS

Apps Dev

Page 38: Try Firefox OS

Firefox OS のアプリ開発

Web アプリです。 Web アプリです。 Web アプリです。 !

!

大事なこと3回

Page 39: Try Firefox OS

Firefox OS のアプリ開発

いつもの開発ツール いつものエディタ いつものライブラリ

�������� ���

Page 40: Try Firefox OS

アプリ開発の流れ

普通に Web 開発 アプリマネージャ or Firebug etc.

manifest ファイルを用意 メタ情報を JSON 形式で記載

シミュレータや実機テスト Android Firefox でもテスト

https://github.com/dynamis/firefoxos/wiki/simulator

Page 41: Try Firefox OS

アプリ情報ファイル書くだけ

サイト + manifest.webapp 1. manifest.webapp 作成 アプリ情報書くだけで終了

Page 42: Try Firefox OS

!

アプリ情報 (manifest.webapp).�00�!� �� V�B?A76>CD���00���&�%�#'�"!� V�3<B?A765N;>CD;1���00���(!���#�'�� V���!��+��' ����00���"!&� V.�0000���� V����"!&��"+�������#!���00/��00���)��"#�%� V.�0000�!� �� V��,!� �&���0000�(%�� V��''# ���,!� �&��#���00/�/���VPG VF2@E8V�V��V��!��+��' �VTI=:4

https://developer.mozilla.org/en-US/docs/Apps/Manifest

Page 43: Try Firefox OS

独自アプリのインストール

Apps パネル左下の Add ~ App から追加 新規アプリ開発はここからしましょう

Page 44: Try Firefox OS

独自アプリの管理

UPDATE ボタンで端末のアプリを更新 DEBUG ボタンでリモートデバッグ開始

Page 45: Try Firefox OS

いろいろ 作ってみてね!

Page 46: Try Firefox OS

Appendix

Page 47: Try Firefox OS

Install on Android

Page 48: Try Firefox OS

Android に Web アプリ環境を

Web App = Native App に ホームスクリーンへの追加 独立してフル画面起動 ネイティブ同様の利用体験

Firefox = WebRT (RunTime) OS に依らない Web アプリ環境

ホームにインストール、アプリを起動した画面、マーケットをブラウズ

Page 49: Try Firefox OS

Android 版 Firefox で動作確認

1. インストールページ用意 2. Firefox でページを開く 3. アプリをインストール 4. アプリを起動してテスト アプリマネージャは未対応

Hosted App なら Android Firefox で直接アプリを開いてテストするのもアリ

Page 50: Try Firefox OS

インストールページを作る

install() 関数を使う var Apps = navigator.mozApps;Apps.install(url) manifest ファイル URL を渡す

その他の Apps API: Apps.getSelf(), Apps.getInstalled() Apps.installPackage(url)

https://developer.mozilla.org/en-US/docs/Apps/Apps_JavaScript_API

Page 51: Try Firefox OS

navigator.mozApps.install)�%V�##&V�V!�)���'"%� "-�##&��)�%V �!���&'(%��VVVV�V��''# ���+"&�"%�� �!���&'�*���##���!

)�%V%�$(�&'V�V�##&��!&'���� �!���&'(%����%�$(�&'�"!&(���&&V�V�(!�'�"!�%�&(�'�V.�00��VOJK<MU�/��%�$(�&'�"!�%%"%V�V�(!�'�"!��%%"%�V.�00��VLSK<MU�/�

https://developer.mozilla.org/en-US/docs/Apps/Apps_JavaScript_API

Page 52: Try Firefox OS

Hosted App & Packaged App

Page 53: Try Firefox OS

2つの方式のアプリ

Hosted (Web 読み込み型) 従来の OS ではブラウザ上で動作 動作や権限は従来の Web と同じ オフライン対応アプリも開発可能

Packaged (ダウンロード型) 従来のスマホアプリに相当する マーケット審査を経て追加権限取得 サイト全体を ZIP して配布する形式

Packaged Web アプリ

HostedWeb アプリ

Internet

Server

端末

詳細: https://developer.mozilla.org/ja/docs/Web/Apps/Packaged_apps

Page 54: Try Firefox OS

ZIP して Packaged App に

ZIP + package.manifest 1. manifest.webapp 作成 Hosted Apps の時と同じ

2. サイト全体を ZIP する manifest.webapp も含める

3. package.manifest を作成 mini manifest が別途必要

Page 55: Try Firefox OS

!

mini manifest (package.manifest).�00�!� �� V�B?A76>CD���00�#�������#�'�� V��#�������-�#���VV�)�%&�"!� V�����00���)��"#�%� V.�0000�!� �� V��,!� �&���0000�(%�� V��''# ���,!� �&��#���00/�/���VPG V#�������-�#VR<V �!���&'�*���##V9V!� ��V)�%&�"!�V��)��"#�%�V�"����&V=QH;1

https://developer.mozilla.org/en-US/docs/Web/Apps/Packaged_apps

Page 56: Try Firefox OS

インストールページ (Packaged)

installPackage() 関数を使う var Apps = navigator.mozApps;Apps.installPackage(url) mini manifest URL を渡す

https://developer.mozilla.org/en-US/docs/Apps/Apps_JavaScript_API

Page 57: Try Firefox OS

!

navigator.mozApps.installPackage)�%V�##&V�V!�)���'"%� "-�##&��)�%V �!���&'(%��VVVV�V��''# ���+"&�"%��#������� �!���&'���!

)�%V%�$(�&'V�V�##&��!&'����������� �!���&'(%����%�$(�&'�"!&(���&&V�V�(!�'�"!�%�&(�'�V.�00��VOJK<MU�/��%�$(�&'�"!�%%"%V�V�(!�'�"!��%%"%�V.�00��VLSK<MU�/�

https://developer.mozilla.org/en-US/docs/Apps/Apps_JavaScript_API

Page 58: Try Firefox OS

More about App Dev

Page 59: Try Firefox OS

ブラウザ機能はない 戻るボタンはありません 別ドメインには別ウィンドウで Firefox 1.1 からは UI 追加可能

Content Security Policy Privileged 以上では CSP 必須 制限緩和は許可されていません

アプリ開発の注意事項

Firefox OS 1.1 からは manifest の chrome で戻るなどのボタン追加可能(非推奨)

Page 60: Try Firefox OS

Simulator では使えない API

Telephony WebSMS WebBluetooth Ambient Light Proximity Network Information Vibration オフラインイベント

タッチイベントはエミュレーションされますが他のハード依存は未対応

Page 61: Try Firefox OS

アプリの種類と権限

ブラウザと一緒が基本 追加権限を求めない限りブラウザ内でできることと一緒

権限に応じた制限 SD カード読み書きなどの権限を得るには Package アプリとして Marketplace での審査が必要

Page 62: Try Firefox OS

方式 種類 概要

Hosted !

(Web から 読み込む)

Web Content Web サイトそのもの。ブラウザ内でアクセスして使う。

Installed Web Web サイトをインストールしたもの。 ブラウザの UI なしで単独起動する。

Packaged !

(従来の OS 同様端末にインストールする)

Plain Packaged

Web サイト全体を ZIP パッケージにしているが追加権限を要求しないもの

Privileged マーケット審査を受けて追加の権限を許可されたアプリ

Certified 通信事業者や端末メーカーが特別に高い権限を許可している組み込みアプリ

Firefox OS でのアプリの分類

Page 63: Try Firefox OS

種類 利用可能な API 例Web Content

PC や Android 等のブラウザでできることそのまま 位置情報、画面方向、加速度・近接・環境光センサー、電池情報、振動、データベース (IndexedDB) など

Installed Web

OS に登録することでアラーム、Push 通知、Web Activities などの API が使えるようになる

Plain Packaged 追加 API なし (Installed Web と同じ権限)

Privileged アドレス帳、SD カードの読み書き、CORS に関わらず任意ドメインへの XHR、TCP Socket

Certified 電話、SMS、ボイスメールなど料金の発生するサービスその他 Bluetooth、Background Service など

アプリの分類と権限

Page 64: Try Firefox OS

Content Security Policy

Same Origin Policy (同一生成源ポリシー) ● 従来からの Web のセキュリティポリシー ● スクリプトからは他のドメインにアクセス不可(CORS で明示的に許可しているドメインは除く)

● ドメイン=セキュリティ境界=アプリの境界

Content Security Policy ● 安全性を高める新しいセキュリティポリシー ● JavaScript、CSS、画像、オブジェクト、フォントなどファイルの種類毎にドメイン制限が可能

● インラインスクリプト禁止により XSS も防止可能

詳細: https://developer.mozilla.org/en-US/docs/Security/CSP

Page 65: Try Firefox OS

アプリの種類と CSP 設定

Privileged, Certified アプリは CSP 必須 ● Web から JavaScript を直接読み込んで実行できない ● Privileged アプリのデフォルト: default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'

● Certified アプリのデフォルト: default-src *; script-src 'self'; object-src 'none'; style-src 'self'

● JavaScript、CSS、オブジェクトファイルはパッケージ外から読み込み不可能 (画像埋め込みは可能) という設定

CSP 設定変更は Manifest に記載 ● 厳格化はできても緩和する設定は許可されないことに注意

詳細: https://developer.mozilla.org/ja/docs/Web/Apps/Packaged_apps

Page 66: Try Firefox OS

Building Blocks

Page 67: Try Firefox OS

Building Blocks (UI 部品)

Gaia (Firefox OS 標準) Appsのデザインを簡単に作れる http://buildingfirefoxos.com/

使っても使わなくても OK 好きな SDK/Library 使える 自由な Web ですから!

http://buildingfirefoxos.com/

Page 68: Try Firefox OS
Page 69: Try Firefox OS