関東firefox os勉強会6th「firefox os」
DESCRIPTION
関東Firefox OS 6thでお話しした、Firefox OSの概要です。アプリ開発部分を中心に、Firefox OSの状況について概観できます。TRANSCRIPT
清水智公(しみずのりただ)
• Mozilla Japan テクニカルマーケティング
• mozilla.jp の中の人 • 2013年4月より現職 • Twitter: @chikoski • http://slideshare.net/chikoski/
3
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 Marketplace Developer Hubhttps://marketplace.firefox.com/developers/
69
まとめ
70
今日の内容
• Firefox OS ってなに? • Firefox OS のアプリって? • おそいんじゃないの? • アプリはどこで公開できるの? • 開発環境はどうやってつくるの? • 情報源にはなにがあるの?
71
まとめ
• Firefox OS は標準化されオープンなOSです • Web 技術のみでFirefox OS アプリを作れます • そんなに遅くありません • アプリはMarketplaceで公開します。自己配布も可 • Firefox+αで開発環境はそろいます • コミュニティ、MDNなどで情報を得られます
72
Firefox OS コードリーディング #4 2014/02/22 @ Mozilla Japan オフィス
75
ご清聴ありがとうございました
76