2014/02/16に開催された関東Firefox OS勉強会 6th(新春ハンズオン)の内容ざっくりまとめです。
各プレゼンの資料はFirefox OS(モバイルクリエイターズ(仮))の「2013/02/16 関東Firefox OS勉強会 6th」にあると思いますが、まだないかもしれません。
togetter by 星影さん(@unsoluble_sugar)。http://togetter.com/li/630606
会場は第3回でもお邪魔させていただいた渋谷・セルリアンタワーのシナジーカフェ GMO Yoursさんでした。
序盤がMozilla Japanの清水さんによるFirefox OSの説明、その後かっしー先生のハンズオンでした。
このエントリは前半のメモです。
Firefox OSの概要説明
Mozilla Japanの清水さん(@chikoski)のお話。
Firefox OSとは何か
立ち位置的にはiOSやAndroid。
iOSだとハンドヘルドに限定されるが、Androidはカーナビやテレビなどにも載っている。
その辺と同じ。テレビや車に載せていければいいなと思っている。
日本やUS、西ヨーロッパなどは家にインフラが整っているが、ブラジルとか南米はそうでもない。
iPhoneは高い。「海外旅行へ行ったときにiPhoneを出すな」という話があるが、そういう感じ。
Firefox OSのアプリは、HTML5で書けるのが特徴。
デバッガを使ってデバッグできる。
例えばSettingアプリにデバッガを使うと中身のHTMLとかを見たりできる。
ワイヤレスジャパンの時にUIを日本語にした。その時は「Setteing→設定」のようにHTMLを書き換えて対応した。
iPhone、Androidに代わる第三のOSが必要。2つだけだとそこで囲い込まれる。
OS毎のアプリ開発は、OS毎に定められたUIの規則や、マーケットへ申請が広告の内容によって通らなかったりするなど、自由さが少ない。
またそれぞれ独自の技術体系になっているので、一方で作ったアプリをもう一方に持っていく(移植する)のが大変。
HTMLであれば楽。
キーワードは「Webこそがプラットフォーム」。
ベンダ非依存、継続性のあるプラットフォーム、マルチデバイス。
Firefox OSの一番下のレイヤはAndroidと同じで、その上にGeckoエンジンを載せている。
現在のビルドはNexus5の上でも動くが、それは下層がAndroidと同じだから。
今は主要18のキャリアが参画。
スペインのテレフォニカ、ドイツのT-Mobileなど。
Geeksphoneが出している開発用端末。
KeonとPeakに続いて、Revolutionという3つ目の端末が出る。Intelのチップが載っている。
OSのリリースサイクルは、機能更新が3ヶ月毎、セキュリティ更新は6週毎。
Firefox OSはバージョン毎にベースとなっているFirefoxのバージョンがある。
Firefox OS 1.3は2014/03リリース予定で、Firefox 28ベース。
Firefox OSにはラジオがついている。
ブラジルの人はラジオが大好きなので、ラジオのアプリがないと困る。
あるいはKDDIもネットワーク周りとかのコードを足している。
個人でも、メディア周りのコードを足している方がいる。
組み込み系の方はコードを見てみてほしい。
アプリ
アプリはすべてWebでできている。
ソースコードはHTML+CSS+JS+マニフェストファイル。
2方式のアプリ。
ホスト型(普通にサーバに置くやつ)とパッケージ型(インストールするやつ)。
パッケージ型は平たく言うとホスト型のファイルをzipで固めたもの。
パッケージ型では、ホスト型では使えないAPIを使える。代わりに審査がある。
Firefoxのブラウザのタブ1個が独立したプロセス空間で動く。プロセスが必要に応じてカーネル空間を叩く。
Web API
Web APIは、Firefox OSの管理するリソースに関する操作をコールするためのもの。(←それ以外も広くWeb APIと呼ぶような気がする)
バイブや近接センサや照度センサなど。
センサのように値を取得するものであれば、コールバック関数を仕掛けておいて、値が取れたときに処理を行わせることができる。
TCPの生ソケットを叩くTCP Socket API。
WiFiの電波強度を取るWiFi Information API。
etc.
Web Activitiesでアプリ間連携。インテント。
Firefox OSは遅いか
結論から言うとそんなに遅くはないが、ちょっとは遅い。
主に速度へ効いているのはCPU。
Firefox OSは、TizenやAndroidに比べてレイヤが少ない。
Androidだと動かないもの(スペック)でもFirefox OSでは動いたりする。
そこには割り切りがある。
HTML5でアプリを書きたいが、他のOSはDalvikやNativeがあって、HTML5で書けない部分はNativeで書いてJNIで穴を開けたりする。
Firefox OSではすべてHTML5で書けるようにすることでシンプルになっている。
JSの高速化。
Cの半分ぐらいのスピードで動くが、すべての場合にこれだけの速度が出るわけではない。
JSのインタプリタが動くとき、最初は型が決まっていなくて、動かしているうちに型が決まってそれ用の演算に置き換える。
そういう感じで随時コンパイルしていくが、本来はプログラム側で事前にわかっているはずなので、アノテーションをつけることで型推定処理をスキップできて早くなる。
emscripten。(http://ja.wikipedia.org/wiki/Emscripten)
C/C++のコードをjavaScriptに変換するツール。
LLVM。clang。
実例としてUnreal Engine 3をJSに移植。
アプリをどこで公開できるか
マーケットプレイスでMozillaがお金を取るのでは? という話があるが、そんなことはない。
アプリであまり儲けようとは考えていないし、そもそも非営利に忠実なのでがんばって稼ぐ必要もない。
また、Firefox OSアプリはGoogle Play(Android)やApp Store(iOS)のように公式マーケットで公開する必要もない。
ホスト型アプリはVPSやgithub Pages等々、どこで公開しても良い。
パッケージ型アプリはMozilla Marketplaceを用意しているが、マーケットサイトを自分で作ることもできる。
特権付きアプリを提供する場合はMozilla Marketplace。
これはOSにそこの証明書しか入っていないからで、OSに証明書を追加すれば他のサイトでも配布できる。
(清水さんの個人的な話として)昔Androidのアプリを作る時にめげたのは、Android SDKやEclipse。
Emacs派なので。
Firefox OSアプリの開発では何を使ってもいい。AptanaでもEmacsでも、手に馴染んだエディタで開発できる。
Firefox OSの情報源は何があるか
Firefox OSコミュニティ。(http://fxos.org/)
Mozillaのスタッフもいるし、組み込み系からWeb系からさまざまな人がいる。
MDN(https://developer.mozilla.org/ja/)の日本語訳で疑問があったら英語の原文を確認してほしい。
マーケットプレイスのサイトにUIのガイドラインなどがステップバイステップで載っている。
JSのライブラリは、ベースのFirefoxで動くものなら基本的に何でも動く。
fxos.orgでコミュニティのメンバを募集中。
もう一つ、頭が痛い問題。
清水さんも技術文書を訳しているが。
ドキュメントを読んだら、一部でもいいので和訳を残してほしい。
FxOS コードリーディングの紹介。
Firefox OS ハンズオン
かっしーさん(@kassy_kz)によるFirefox OSアプリ開発〜Twitterクライアント開発のハンズオンです。
資料の完成度がやばいです。
Web開発の経験がある方であれば、資料だけで作り方がわかると思います。
資料の完成度がやばいです。(大事なことなので2回書きました)
(2014/2/17 ちょっとだけ追記)
今回、自分はハンズオンのチューターということで参加させていただきました。
序盤は比較的のんびり、中盤ややハード、終盤のんびりでした。
以下、チラ裏的な感想。
- Twitterアプリのハンズオンをする場合、事前にConsumer Keyの発行までやっておいてもらった方が良い。(手順も合わせて共有しておくとなお良い)
- Firefox OSで、Web Activitiesの遷移先アプリから遷移元アプリへ戻れないのが辛い。
- ハンズオンでは非常にキャラが立った女史がいて、かっしーさんは割とまともに見えた。(比較問題)
- 金の蔵のポテトはやばい。
コメントを残す