「関東Firefox OS勉強会 6th」の参加メモ #fxos

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の遷移先アプリから遷移元アプリへ戻れないのが辛い。
  • ハンズオンでは非常にキャラが立った女史がいて、かっしーさんは割とまともに見えた。(比較問題)
  • 金の蔵のポテトはやばい。

#FxOS Gecko勉強会の参加メモ

9/30に開催されたGeckoと仲良くなりたい人主催 FxOS Gecko勉強会のざっくりまとめです。

各プレゼンの資料はFirefox OS(モバイルクリエイターズ(仮))の「2013/9/30 Geckoと仲良くなりたい人主催 FxOS Gecko勉強会」から辿れます。

会場は六本木のMozillaさんのオフィスでした。

Gecko入門

“#FxOS Gecko勉強会の参加メモ” の続きを読む

「関東Firefox OS勉強会 3rd ごった煮」の参加メモ #fxos

8/23に開催された関東Firefox OS勉強会 3rd ごった煮の内容ざっくりまとめです。

各プレゼンの資料はFirefox OS(モバイルクリエイターズ(仮))の「2013/8/28 関東Firefox OS勉強会 3rd ごった煮」からアクセスしてください。

togetterはこの辺→http://togetter.com/li/555563

会場は渋谷・セルリアンタワーのシナジーカフェ GMO Yoursさんでした。
こちらへお伺いしたのは昨年開催されたカスタムROMハッカソン以来一年振りで、懐かしかったです。

モバイルOSとWeb標準とそれらへのアプローチ

@rkisatoさん、ていうか私です。
“「関東Firefox OS勉強会 3rd ごった煮」の参加メモ #fxos” の続きを読む

「関東Firefox OS勉強会 1st(仮)」の参加メモ #fxos

関東Firefox OS勉強会 1st(仮)の内容ざっくりまとめ。

各プレゼンの資料はモバイルクリエイターズ(仮)の「ホーム‎>資料置き場‎Firefox OS」の「2013/6/19 関東Firefox OS勉強会 1st(仮)」からアクセスしてください。

togetterはこの辺→http://togetter.com/li/520923

Firefox OSのカスタムROM開発を始めてみた

@androidsolaさん。
資料はhttp://www.slideshare.net/sola1980/firefox-osrom
“「関東Firefox OS勉強会 1st(仮)」の参加メモ #fxos” の続きを読む

solaさんの手順でKeon用のFirefox OSをビルド at Mac #fxos

solaさんのブログエントリ(Keon 向けに Firefox OS をビルドして動かしてみた)をなぞって、Mac上でKeon向けビルドを行って焼いてみました。

(参考)
Firefox OS ビルドの必要条件」の「Mac OS X での必要条件」
・dynamisさんの「firefoxos/wiki/build
“solaさんの手順でKeon用のFirefox OSをビルド at Mac #fxos” の続きを読む

Web Activitiesのメモ@Firefox OS

Firefox OSのWeb Activitiesを軽く確認したのでメモ。
全体を追うと、Web Activitiesでアプリを呼び出す側と呼び出される側の実装について一通りの流れは掴めるかと思います。

Web Activitiesとは何か

Web ActivitiesはMozillaさんの「WebAPI」の一つで、Webの世界におけるアプリ連携の仕組みです。
今のところはMozillaの独自規格です。
“Web Activitiesのメモ@Firefox OS” の続きを読む