Kilimanjaro Event

Preview:

DESCRIPTION

OSC Nagoya で使用したスライドhttp://www.ospn.jp/osc2012-nagoya/

Citation preview

Kilimanjaro EventSlides @ OSC Nagoya 2012

by Tomoya ASAI (dynamis)

last update on 2012.05.12see also: http://dynamis.jp/r

about:me

http:// dynamis.jp

@dynamitter

facebook.com/ dynamismailto: Tomoya ASAI <dynamis mozilla-japan.org>@

あーる てぃー

まずは最近の話題を一つ

Windows 8 のアプリ Classic アプリ

従来の Win32 API アプリ Metro アプリ

新しい WinRT API アプリ Metro 対応 Desktop ブラウザ

規定のブラウザのみ Win32 API も使える Metro ブラウザ

Windows RT Windows 8 の ARM 版

主にタブレットがターゲット

Windows RT での制限 Classic アプリのブラウザ

許可しません。 Metro アプリのブラウザ

ご自由に。WinRT API で作れるものなら作ってみやがれ。

MS のブラウザ (IE10) API 制限のない特権あり

IE 以外ブラウザイラネ

競争のない独占環境は iOS だけで十分です...

WebRT Boot to Gecko Marketplace Persona Kilimanjaro

Agenda

furfox アイコン: http://kaishinlab.com/furfox/

WebRTWeb Runtime...

ぶらうざでできること?

フォクすけに教えて!

Semantic Elements CSS Transforms ECMA5th

Multimedia Elements CSS Animations WebM Codec

Canvas 2D API SVG WebGL

Forms WOFF (Web Fonts) WebCL

Offline Events Event Listener (DOM) Typed Array

Drag & Drop API XHR Level 2 Audio Data API

Web Storage Indexed DB SQL DB (obsolate)

HTML5 Parser File API River Trail

Web Workers Geolocation SPDY

Web Sockets API Server-Sent Events Web Socket Protocol

Microdata Device Orientation ContentSecurityPolicy

Web RTC Battery Status ICC Color Profile

Semantic Elements CSS Transforms ECMA5th

Multimedia Elements CSS Animations WebM Codec

Canvas 2D API SVG WebGL

Forms WOFF (Web Fonts) WebCL

Offline Events Event Listener (DOM) Typed Array

Drag & Drop API XHR Level 2 Audio Data API

Web Storage Indexed DB SQL DB (obsolate)

HTML5 Parser File API River Trail

Web Workers Geolocation SPDY

Web Sockets API Server-Sent Events Web Socket Protocol

Microdata Device Orientation ContentSecurityPolicy

Web RTC Battery Status ICC Color Profile

Internet Explorer

点線は標準非搭載や限定的実装

Semantic Elements CSS Transforms ECMA5th

Multimedia Elements CSS Animations WebM Codec

Canvas 2D API SVG WebGL

Forms WOFF (Web Fonts) WebCL

Offline Events Event Listener (DOM) Typed Array

Drag & Drop API XHR Level 2 Audio Data API

Web Storage Indexed DB SQL DB (obsolate)

HTML5 Parser File API River Trail

Web Workers Geolocation SPDY

Web Sockets API Server-Sent Events Web Socket Protocol

Microdata Device Orientation ContentSecurityPolicy

Web RTC Battery Status ICC Color Profile

Chrome

点線は標準非搭載や限定的実装

Semantic Elements CSS Transforms ECMA5th

Multimedia Elements CSS Animations WebM Codec

Canvas 2D API SVG WebGL

Forms WOFF (Web Fonts) WebCL

Offline Events Event Listener (DOM) Typed Array

Drag & Drop API XHR Level 2 Audio Data API

Web Storage Indexed DB SQL DB (obsolate)

HTML5 Parser File API River Trail

Web Workers Geolocation SPDY

Web Sockets API Server-Sent Events Web Socket Protocol

Microdata Device Orientation ContentSecurityPolicy

Web RTC Battery Status ICC Color Profile

Firefox

点線は標準非搭載や限定的実装

"HTML5" の現状 "HTML5" >> HTML > HTML5

実装や仕様策定に伴い "HTML5" の領域は広がり続けている

Web もプラットフォームに 本格的アプリ開発が可能に

これで十分?

フォクすけに教えて!

"HTML5" ではまだできない システムステータス

WiFi 情報, モバイル通信... 各種センサー

光センサー, 近接センサー... 低レベルハードウェア制御

USB, BlueTooth, NFC...

http://arewemobileyet.com/

ボクもいろいろ使ってみた〜い!

Web API Web の限界を押し進める

HTML5 などの基本 API 以外 API の総称であって定義はない

W3C では DAP などで標準化 実装と共に標準化も進めていく 一部別の WG に分かれるかも?

https://wiki.mozilla.org/WebAPI

昔からある Web API Geolocation (位置情報) Orientation (加速度センサー) Audio Data API WebGL (3D グラフィック) Camera API (WebRTC へ移行)

これらは既に Android 版 Firefox でも実装済み

現在実装中の Web API WebRTC (Camera, P2P など含む) Open Web Apps (アプリ管理) Device Storage Idle, Power Management Mobile Connection,WiFi Information (無線情報)

TCP Socket

実装見込みの Web API UDB Datagram Socket Bluetooth, USB, NFC

WebSocket 的な API になる? Background Service USB file-reading (B2G 専用) ...and more...

ネイティブアプリにできることは何でも可能に

Web API も Web 標準 W3C DAP (Device API) WG

ハードウェア操作やセンサー系 IETF/W3C WebRTC WG

マルチメディア系や P2P など Notification なども個別 WG また別の WG 増えるかも?

NFC, USB など低レベル系

WWeebb がプラットフォーム!

Boot to GeckoWebRT as an OS...

Boot to Gecko Gecko WebRT を起動する OS

Linux Kernel 上に Gecko を Java VM などの中間レイヤなし

Web 技術が「ネイティブ」に HTML5, JavaScript, Web API...

Gecko は Firefox の描画エンジン、WebRT = Web Runtime

ステータスバーも(電波強度、電池残量...)

電話や SMS の送受信も

もちろん Firefox も

カメラを使うのも

写真やビデオを見るのも

その他いろんなアプリも

マーケットプレイスも

ステータスバーも(電波強度、電池残量...)

電話や SMS の送受信も

もちろん Firefox も

カメラを使うのも

写真やビデオを見るのも

その他いろんなアプリも

マーケットプレイスも

すべて Web 技術で!

Boot to Gecko の3要素 Gaia

ユーザインターフェイス Gecko

アプリケーションランタイム Gonk

低レベルの OS 層 シンプルなカスタム Linux

Status 2012/03/09 - M2.1

Dogfood Release 2012/03/26 M2.5

Developer Preview Phone JSConf にて開発端末配布

Roadmap 2012/06/01 - M3

functional/Gecko complete 2012/06/29 - M4

feature/Gaia complete and code freeze

TBD - M4.5 major bug fixing / UI freeze

(これはダミー)

あくまでもスケジュールの「プラン」です

開発パートナーと製品化 Telefónica は本年中に製品化

世界 3~4 位のキャリア ホーム画面やアプリはカスタム

Deutsche Telekom (T-Mobile) Innovation Labs が開発に参加

Adobe, Qualcomm らも協力 PhoneGap の B2G 対応など

WWeebb こそがプラットフォーム!

大事なことはもう一度

MarketplaceOpen Web Apps...

既存のプラットフォーム

現在のアプリケーションはそれぞれのプラットフォーム毎に作る必要がある

ブラウザ vs 独自プラットフォーム

Web がプラットフォーム

プラットフォームとしての Web

Web がプラットフォームになれば業界標準技術でどこでも動作するアプリ環境に

Mozilla Marketplace デバイス・OS 横断マーケット

Web Platform のためのストア Firefox 限定とかじゃない

現在コミュニティ向けベータ Firefox 開発版ユーザ向けテスト 今年中に正式リリースを予定

http://hacks.mozilla.org/2012/02/mozillamarketplace-open-for-app-submissions/

オープンなアプリストア 全てを Web 技術で実装

安定・平等な環境を提供 ベンダー非依存

アプリストア、認証、課金 ... ブラウザ非依存

後方互換ダッシュボード

https://developer.mozilla.org/en/apps

アプリの登録 マニフェスト書いて登録

Content-Type: application/x-web-app-manifest+json

Chrome との書式統一は議論中Widget などとの関係も議論中

スクリーンショットも必須

manifest.webapp# 最低限 name, description があればいい{ "version": "1.0", "name": "SampleApp", "description": "サンプルアプリ", "icons": { "48": "/img/icon-48.png" }, "developer": { "name": "dynamis", "url": "http://dynamis.jp/" }, "installs_allowed_from": [ "https://appstore.mozillalabs.com" ]}

Content-Type は application/x-web-app-manifest+json で送信

manifest.webapp{ "version": "1.0", "name": "SampleApp", "description": "サンプルアプリ", "icons": { "48": "/img/icon-48.png" }, "widget": { "path": "/widget.html", "width": 100, "height": 200 }, "developer": { "name": "dynamis", "url": "http://dynamis.jp/" }, "installs_allowed_from": ["https://appstore.mozillalabs.com"]}

その他の項目は https://developer.mozilla.org/en/OpenWebApps/The_Manifest 参照

レビューシステム 現在公開前のレビューあり

Mozilla スタッフによるレビュー 将来は AMO のようになる?

コミュニティボランティアによるレビューへの移行なども検討中

基本的チェックだけ ルールなど詳細は未確定

PersonaBetter Authentication...

これまでのユーザID サービス別のユーザID

個別のユーザ名とパスワード... 普通の人は管理しきれない

大手ベンダー提供のID Google, Facebook, Twitter... ベンダーロックイン

求められるユーザID 安全かつ簡単に プライバシーの確保 ベンダー非依存 ブラウザ非依存 シンプルな API

Mozilla Persona ID = メールアドレス

普通の人でも理解・記憶可能 大半のサービスが要求する

ブラウザが直接サポートする前提で設計し直された ブラウザへの UI 組み込み DOM API の定義と標準化

Persona と BrowserID Mozilla Persona

認証サービス名 BrowserID

Mozilla Persona の開発時名称 プロトコル等は今も BrowserID

https://browserid.org/

Verified Email Protocol メールアドレスの所有を確認 Primary Identity Authority

メールサービス自身が認証 メールサーバのパスワードで OK

Secondary Identity Authority 第三者が認証サーバを提供 確認メールを送信して所有確認

https://developer.mozilla.org/en/BrowserID/Protocol_Overview

Persona (BrowserID)<!-- API の後方互換実装ライブラリを読み込む --><script src="https://browserid.org/include.js"></script><script>navigator.id.get(function(assertion) { if (assertion) { // assertion は暗号化された認証情報 // assertion 得られた場合の処理 } else { // エラーハンドリング }});</script>

https://github.com/mozilla/browserid/wiki/How-to-Use-BrowserID-on-Your-Site

Persona (BrowserID)navigator.id.get(function(assertion) { if (assertion) { // browserid.org で認証情報を検証する場合 jQuery.post("https://browserid.org/verify", { assertion: assertion, // 暗号化された認証情報 audience: "http://dynamis.jp" }, // 対象サイト function(session){ // session は認証されたユーザ情報 alert(session.email); }); } else { ... }});

https://github.com/mozilla/browserid/wiki/How-to-Use-BrowserID-on-Your-Site

得られる認証データ// 認証成功時に得られるセッション情報{ "status": "okay", "email": "dynamis@mozilla", "audience": "http://dynamis.jp", "expires": 1308859352261, "issuer": "browserid.org"}// 認証失敗時は reason 文字列だけが返される{ "status": "failure", "reason":"verification failure"}

https://github.com/mozilla/browserid/wiki/How-to-Use-BrowserID-on-Your-Site

KilimanjaroThe web is the Platform...

Kilimanjaro Event Mozilla の今年の統合プラン

「Web がプラットフォーム」実現に向けたマイルストーン

早ければ 9 月をターゲットに 高速リリースで Firefox にコードネーム付けなくなったから… 公園じゃなく山でシリーズ化?

Kilimanjaro Event Web がプラットフォーム

API の追加: WebAPI アプリ配信: Marketplace OS の提供: Boot to Gecko 認証: Persona

続きは DevCon@Osaka でhttp://mozilla.jp/devcon

6/29 & 6/30 には大阪で!

続きは DevCon@Osaka で

http://mozilla.jp/devcon

前日は CSS Nite in Osakahttp://osaka.cssnite.jp/vol31

6/29 & 6/30 には大阪で!

前日は CSS Nite vol.31