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

Preview:

DESCRIPTION

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

Citation preview

Firefox OS

Mozilla Japan テクニカルマーケティング 清水智公 (nshimizu@mozilla-japan.org)

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

about:me

2

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

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

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

3

about:mozilla

4

FFiirreeffooxx をよろしくね!

6

7

本日の内容

9

Firefox OS の概観

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

10

Firefox OS ってなに?

11

12

13

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

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

14

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

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

15

アプリ / UI をWeb技術で!

16

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

18

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

• Foxconn, Panasonic

各国で順次展開中

19

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

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

• イタリア

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

発売中の端末

20

Firefox OS 端末販売状況

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

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

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

21

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

Firefox OS アプリって?

23

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

24

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

25

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

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

2 方式のアプリ

26

Packaged Web アプリ

HostedWeb アプリ

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

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

Web API

28

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

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

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

権限によるアプリの分類

31

Packaged Web アプリ

HostedWeb アプリ

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

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

33

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

34

Web Activities:アプリ間連携

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

35

おそいんじゃないの?

36

ZTE Open

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

37

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.

JS の高速化

39

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

http://emscripten.org

40

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

41

配布方法

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

42

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

https://marketplace.firefox.com/

43

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

44

クリック

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

45

アプリ開発の流れ

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

47

Firefox OS のアプリ開発環境

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

48

アプリマネージャ

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

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

49

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

50

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

51

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

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

52

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

53

Firefox OS シミュレータ

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

54

ホームボタン

開発ツール

55

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

インスペクタ

56

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

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

57

CSS への変更が反映される

Web コンソール

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

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

58

JavaScriptデバッガ

59

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

60

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

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

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

61

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

62

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

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

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

63

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

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

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

64

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

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

65

情報源は何があるの?

66

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

67

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

68

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

69

まとめ

70

今日の内容

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

71

まとめ

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

72

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

73

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

74

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

75

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

76