76
Firefox OS Mozilla Japan テクニカルマーケティング 清水智公 ([email protected]) 関東Firefox OS勉強会6th 2014/02/16

関東Firefox OS勉強会6th「Firefox OS」

Embed Size (px)

DESCRIPTION

関東Firefox OS 6thでお話しした、Firefox OSの概要です。アプリ開発部分を中心に、Firefox OSの状況について概観できます。

Citation preview

Page 1: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS

Mozilla Japan テクニカルマーケティング 清水智公 ([email protected])

関東Firefox OS勉強会6th 2014/02/16

Page 2: 関東Firefox OS勉強会6th「Firefox OS」

about:me

2

Page 3: 関東Firefox OS勉強会6th「Firefox OS」

清水智公(しみずのりただ)

• Mozilla Japan テクニカルマーケティング

• mozilla.jp の中の人 • 2013年4月より現職 • Twitter: @chikoski • http://slideshare.net/chikoski/

3

Page 4: 関東Firefox OS勉強会6th「Firefox OS」

about:mozilla

4

Page 5: 関東Firefox OS勉強会6th「Firefox OS」

FFiirreeffooxx をよろしくね!

Page 6: 関東Firefox OS勉強会6th「Firefox OS」

6

Page 7: 関東Firefox OS勉強会6th「Firefox OS」

7

Page 8: 関東Firefox OS勉強会6th「Firefox OS」
Page 9: 関東Firefox OS勉強会6th「Firefox OS」

本日の内容

9

Page 10: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS の概観

• Firefox OS ってなに? • Firefox OS のアプリって? • おそいんじゃないの? • アプリはどこで公開できるの? • 開発環境はどうやってつくるの? • 情報源にはなにがあるの?

10

Page 11: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS ってなに?

11

Page 12: 関東Firefox OS勉強会6th「Firefox OS」

12

Page 13: 関東Firefox OS勉強会6th「Firefox OS」

13

Page 14: 関東Firefox OS勉強会6th「Firefox OS」

• OS 毎のアプリ開発 • 言語、API は OS 依存 • UI に対する厳格な規則 • エコシステムへの制限 • アプリ開発者確保の困難さ

背景: 従来のアプリプラットフォームの問題

14

Page 15: 関東Firefox OS勉強会6th「Firefox OS」

Web こそがプラットフォーム

• オープンで標準化された技術 • ベンダ非依存 • 自由、持続性 • マルチデバイス対応 • 多くの開発者

15

Page 16: 関東Firefox OS勉強会6th「Firefox OS」

アプリ / UI をWeb技術で!

16

Page 17: 関東Firefox OS勉強会6th「Firefox OS」
Page 18: 関東Firefox OS勉強会6th「Firefox OS」

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

18

• 主要 18 キャリアが賛同 • チップ&端末メーカー • Qualcomm, ARM • ZTE, Alcatel, LG, Huawei, Sony

• Foxconn, Panasonic

Page 19: 関東Firefox OS勉強会6th「Firefox OS」

各国で順次展開中

19

• スペイン、ポーランド • コロンビア、ベネズエラ • ドイツ、ブラジル、メキシコ、ペルー、ウルグアイ

• ハンガリー、ギリシャ、セルビア、モンテネグロ

• イタリア

Page 20: 関東Firefox OS勉強会6th「Firefox OS」

• 商用端末3機種 • ZTE Open • Alcatel One Touch Fire • LG Fireweb • 開発端末 / PC • Geeksphone Keon /Peak • APC (VIA) Paper /Rock

発売中の端末

20

Page 21: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS 端末販売状況

• ベネズエラ(Telefónica@2013/10)スマートフォン販売の12%

• コロンビア(Telefónica@2013/10) スマートフォン販売の9%

• ウルグアイ(Movistar@2013/12) スマートフォン販売の30%

21

Page 22: 関東Firefox OS勉強会6th「Firefox OS」

12週ペースで更新中

22

ベース リリース日

1.0.1 Firefox 18 2013/07/02

1.1 Firefox 18 2013/10/21

1.2 Firefox 26 2013/12/09

1.3 Firefox 28 2014/03/17

Page 23: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS アプリって?

23

Page 24: 関東Firefox OS勉強会6th「Firefox OS」

全部 Web 技術でできてます!

24

Page 25: 関東Firefox OS勉強会6th「Firefox OS」

HTML + CSS + JS + マニフェスト

25

Web サイト + マニフェストファイル でアプリになる!

Page 26: 関東Firefox OS勉強会6th「Firefox OS」

• Hosted (Web 読み込み型) • 従来のWebと同じ権限 • オフライン対応アプリも開発可能 • Packaged (ダウンロード型) • 従来のスマホアプリに相当 • Hostedアプリの権限+ 追加権限 • マーケット審査

2 方式のアプリ

26

Packaged Web アプリ

HostedWeb アプリ

Page 27: 関東Firefox OS勉強会6th「Firefox OS」
Page 28: 関東Firefox OS勉強会6th「Firefox OS」

• Firefox OS の管理するリソースに対する操作

• ハードウェアの操作 • 通知のコントロール • etc • JavaScript から呼び出す

Web API

28

Page 29: 関東Firefox OS勉強会6th「Firefox OS」

Web API(つづき)

• コミュニケーションNetwork Information API, Bluetooth, Mobile Connection API, Network Stats API, TCP Socket API, Telephony, WebSMS, WiFi Information API

• ハードウェアアクセスAmbient Light Sensor API, Battery Status API, Geolocation API, Pointer Lock API, Proximity API, Device Orientation API, Screen Orientation API, Vibration API, WebFM API, Camera API, Power Management API

29

Page 30: 関東Firefox OS勉強会6th「Firefox OS」

Web API(つづき)

• データ管理FileHandle API, IndexedDB, Contacts API, Device Storage API, Settings API

• その他Alarm API, Simple Push, Web Notifications, Apps API, Web Activities, WebPayment API, Browser API, Idle API, Permissions API, Time/Clock API

30

Page 31: 関東Firefox OS勉強会6th「Firefox OS」

• Hosted (Web 読み込み型) • Packaged (ダウンロード型) • Privileged(特権付き) • Certified(認証済み) • 認証された開発者のみ • キャリアなど

権限によるアプリの分類

31

Packaged Web アプリ

HostedWeb アプリ

Page 32: 関東Firefox OS勉強会6th「Firefox OS」

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

Page 33: 関東Firefox OS勉強会6th「Firefox OS」

権限と利用できるAPIhttps://developer.mozilla.org/Apps/Developing/App_permissions

33

Page 34: 関東Firefox OS勉強会6th「Firefox OS」

アプリマネージャからも確認できます

34

Page 35: 関東Firefox OS勉強会6th「Firefox OS」

Web Activities:アプリ間連携

• インテント • 利用方法 • 他のアプリの呼び出し • アクティビティへの対応 • ハンドラを書く • アプリへの登録

35

Page 36: 関東Firefox OS勉強会6th「Firefox OS」

おそいんじゃないの?

36

Page 37: 関東Firefox OS勉強会6th「Firefox OS」

ZTE Open

• Qualcomm MSM7225A 1.0Ghz • 256 MB (RAM) • Screen 3.5" HVGA • Camera 2 MP (back) • Battery 1200 mAh

37

Page 38: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS vs TAIZEN vs Android

38

Native Framework

カーネル & HAL

Web Platform

Web Framework

App Framework

!!

AndroidRuntime

Dalvik

WebKit

Java アプリ

ブラウザ アプリ

Native Library

Web アプリ

WebKit

Web アプリ

Native アプリ

OSP

etc...

DeviceAPI

WebRT

Web アプリ

Packaged Webアプリ

コアサービスGecko

DeviceAPI SystemAPIライブラリ

SGL etc.

Native Interface

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

X.org etc.

Page 39: 関東Firefox OS勉強会6th「Firefox OS」

JS の高速化

39

Page 40: 関東Firefox OS勉強会6th「Firefox OS」

• C / C++ のソースコードをJavaScript に変換するツール • C / C++ の資産を利用可能 • 高速なJavaScriptコードの生成が可能 • 利用例:Unreal Engine 3 の移植 • 100万行以上のC & Open GL コードを4、5日で • http://www.unrealengine.com/html5/ 

http://emscripten.org

40

Page 41: 関東Firefox OS勉強会6th「Firefox OS」

アプリを どこで公開できるの?

41

Page 42: 関東Firefox OS勉強会6th「Firefox OS」

配布方法

• ホスト型アプリ • 自由に公開できます • さくら VPS, heroku, github pages, etc • パッケージ型アプリ • Firefox Marketplace • 自己配布 / 自分でのマーケット開設可

42

Page 43: 関東Firefox OS勉強会6th「Firefox OS」

• Mozilla の提供するマーケットプレース • 特権付きアプリを提供するにはここ • アプリ公開には審査が必要 • ポルノではないか、などなど • 特権付きアプリにはコードレビューが入る

https://marketplace.firefox.com/

43

Page 44: 関東Firefox OS勉強会6th「Firefox OS」

インストールサイトを作り自己配布https://developer.mozilla.org/ja/docs/Web/API/Apps.install

44

クリック

Page 45: 関東Firefox OS勉強会6th「Firefox OS」

アプリ開発環境は どうつくるの?

45

Page 46: 関東Firefox OS勉強会6th「Firefox OS」
Page 47: 関東Firefox OS勉強会6th「Firefox OS」

アプリ開発の流れ

• Web サイトと同様の開発 • manifest ファイルを用意 • アプリのメタ情報 • JSON 形式 • シミュレータ / 実機テスト

47

Page 48: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS のアプリ開発環境

• 専用の IDE、ライブラリはない • Firefox のインストールで開発が始められる • シミュレータはFirefoxのアドオンとして提供 • デバッガはFirefoxの標準機能として提供 • プロファイラ、ネットワークモニタも標準標準機能として提供される

48

Page 49: 関東Firefox OS勉強会6th「Firefox OS」

アプリマネージャ

• Firefox OSアプリ開発・管理ツール • 標準で利用できるようになった • Firefox 26 以降 • 複数バージョンのシミュレータを利用可能 • 開発ツールを利用したテスト、デバッグ可能

https://developer.mozilla.org/docs/Mozilla/Firefox_OS/Using_the_App_Manager

49

Page 50: 関東Firefox OS勉強会6th「Firefox OS」

アプリマネージャhttps://developer.mozilla.org/docs/Mozilla/Firefox_OS/Using_the_App_Manager

50

Page 51: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS シミュレータ:アプリマネージャのアドオン

51

ADB Helper もインストールしておくと実機でのデバッグに便利

Page 52: 関東Firefox OS勉強会6th「Firefox OS」

端末パネル:接続中の端末を制御

52

Page 53: 関東Firefox OS勉強会6th「Firefox OS」

許可設定で権限を確認できる

53

Page 54: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS シミュレータ

• マウスカーソルが指 • ドラッグでスワイプ • クリックでタップ • 長押しでロングタップ • ホームボタン長押しで、アプリきりかえ&停止

54

ホームボタン

Page 55: 関東Firefox OS勉強会6th「Firefox OS」

開発ツール

55

クリックで開発ツールが起動し、そのアプリをデバッグできる

Page 56: 関東Firefox OS勉強会6th「Firefox OS」

インスペクタ

56

シミュレータの画面をクリックして要素を選択できる

Page 57: 関東Firefox OS勉強会6th「Firefox OS」

スタイルエディタ:確認しながらスタイルの修正

57

CSS への変更が反映される

Page 58: 関東Firefox OS勉強会6th「Firefox OS」

Web コンソール

• Firebug のコンソールに相当するツール • エラー、警告、ログの出力 • JavaScriptの実行

https://developer.mozilla.org/ja/docs/Tools/Web_Console

58

Page 59: 関東Firefox OS勉強会6th「Firefox OS」

JavaScriptデバッガ

59

Page 60: 関東Firefox OS勉強会6th「Firefox OS」

デバッガ:ブレークポイントの設定

60

処理を中断したい行をクリック

Page 61: 関東Firefox OS勉強会6th「Firefox OS」

デバッガ:ウォッチ式の追加

• 変数ペインに式を追加できる • 任意の式を記述できる • ×ボタンで式を削除 • ブレーク時の環境で評価 • 値を変数ペインに出力

61

Page 62: 関東Firefox OS勉強会6th「Firefox OS」

プロファイラ:ボトルネックの発見

62

記録開始→処理の実行→記録停止→結果の分析

Page 63: 関東Firefox OS勉強会6th「Firefox OS」

実機でもシミュレータと同様に デバッグできる

• 端末側の条件 • Firefox OS 1.2 以上であること • Geeksphone はイメージが公開されている • デスクトップ側の条件 • ADB Helper Add-onのインストール • もしくはadbがインストールされていること

63

Page 64: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS端末がなくても大丈夫

• FirefoxのインストールされたAndroid端末で実機同様のテストが可能

• アプリのインストールができる • ほとんどのWeb APIは動作する • リモートデバッグ:シミュレータと同様のデバッグが可能

64

Page 65: 関東Firefox OS勉強会6th「Firefox OS」

リモートデバッグhttps://developer.mozilla.org/docs/Tools/Remote_Debugging

開発ツールを使って、Android端末で動作するコードを リアルタイムにデバッグできる

65

Page 66: 関東Firefox OS勉強会6th「Firefox OS」

情報源は何があるの?

66

Page 67: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS コミュニティhttp://fxos.org/

67

Page 68: 関東Firefox OS勉強会6th「Firefox OS」

Mozilla Developer Networkhttps://developer.mozilla.org/

68

Page 69: 関東Firefox OS勉強会6th「Firefox OS」

Firefox Marketplace Developer Hubhttps://marketplace.firefox.com/developers/

69

Page 70: 関東Firefox OS勉強会6th「Firefox OS」

まとめ

70

Page 71: 関東Firefox OS勉強会6th「Firefox OS」

今日の内容

• Firefox OS ってなに? • Firefox OS のアプリって? • おそいんじゃないの? • アプリはどこで公開できるの? • 開発環境はどうやってつくるの? • 情報源にはなにがあるの?

71

Page 72: 関東Firefox OS勉強会6th「Firefox OS」

まとめ

• Firefox OS は標準化されオープンなOSです • Web 技術のみでFirefox OS アプリを作れます • そんなに遅くありません • アプリはMarketplaceで公開します。自己配布も可 • Firefox+αで開発環境はそろいます • コミュニティ、MDNなどで情報を得られます

72

Page 73: 関東Firefox OS勉強会6th「Firefox OS」

コミュニティメンバー募集中!http://fxos.org/

73

Page 74: 関東Firefox OS勉強会6th「Firefox OS」

翻訳者と記事執筆者を募集してます!https://developer.mozilla.org/

74

Page 75: 関東Firefox OS勉強会6th「Firefox OS」

Firefox OS コードリーディング #4 2014/02/22 @ Mozilla Japan オフィス

75

Page 76: 関東Firefox OS勉強会6th「Firefox OS」

ご清聴ありがとうございました

76