関東 Firefox OS 勉強会 11th に行って来たので概要

行ってきました、飯田橋駅前の出来たてビル、飯田橋グラン・ブルーム。
ひろ〜い会議室にけっこう人がギッシリで、80人ほど集まったそうです。
白髪のお爺さんから若い女性まで色々な方がいらっしゃいましたが、これから開発を始めようと思っている人が多い感じでした。

始めにKDDIさんがプロモーションのために出てきまして、Fx0とロック画面アプリのお話をしていました。
自分は別途記事にしているのでここでは割愛します。

Fx0の存在はほとんどの人が知っていましたが、実際に購入していた人は3分の1くらいですかね。
仲間がいっぱいいて良かったです。

登壇者2人目のMozillaの方のお話は、スミマセン、すでに知っている情報ばかりだったのであまり印象に残っていません。

 
主役は登壇者3人目のCSPのお話だったようです。
マニフェストでつまずく人が多いので詳しく解説してくれました。
詳細は登壇者さんが使っていたスライドでご確認ください。

 
で、なぜ自分がこの勉強会に参加したかと言いますと、「キャッシュはどこへためるのか? ストレージにしたほうがいいのか?」という以前から抱いていた疑問を解決するためだったのですが、おかげさまで答えは見つかりました。

おまけで個人的に役に立ったお話があったのでそれをご紹介します。

まずprivileged(特権アプリ)でjQueryを使うとエラーを起こすという話がありまして、

工エエェェ(´д`)ェェエエ工!!!!!

てな感じでちょっと衝撃でした。

自分でjQueryを書き直すか、そもそもライブラリは重いので一から自分でJavaScriptを書くといいよと、「そこにある水取ってきて」くらいにサラリとおっしゃってました。

あと、そもそもFirefox OS用アプリを作る際にホスト型がいいのかパッケージ型がいいのか、パッケージ型ならprivilegedなのかそうでないほうがいいのか、という疑問です。

迷うんですよね、これ。
今作っているアプリの設計をしている時もかなり迷いました。

上のスライドにもあるかと思いますが、決めるポイントは以下だと思います。
(1) 自分で自由に使えるサーバーがあるか(サーバー負荷のことも考慮に入れること)
(2) 特権アプリでしか使えない機能を本当に使う必要があるのか

(1)のサーバーがないならパッケージ型しか選択肢がないです。

(2)の特権アプリ限定機能、例えばカメラを使いたいなら、元々入っているカメラ機能を呼び出すことが出来るので、必ずしもprivilegedにする必要がなかったりもします。

privilegedにしてしまう弊害としては、Marketplaceでの審査に時間がかかったり、頑なに同一オリジンに限定されるため外部サイトのファイルの読み込みができなくなります。

例えばバナー広告とかアナリティクスのコード埋め込みで支障が起きます。
iFrameを使うという裏技もあるようですが、なんだかメンドクサそうですね。

※同一オリジンとは、要はクロスドメイン禁止、ポートも同じでないとダメよ、httpとhttpsも区別するからね、というやつです。

なので登壇者さん曰く、なるべくprivilegedにはせず、よっぽどのことがない限り普通のパッケージ型にしておいたほうがいいよ、とのことでした。

んで、自分が困っていたストレージの問題に戻ります。
ストレージを使うならprivilegedにしないといけないわけですが、外部サイトをスクレイピングして使うアプリを作っているので、その時点で同一オリジンの原則から大きくはみ出しています。

特権アプリ、絶対無理じゃんw

というわけで答えがあっけなく見つかり大いに役立ちました。
登壇者さん、ありがとうございました。

しかしパッケージ型アプリといえば、キャッシュをためたい場合が多々あるかと思います。
例えば2ちゃんねるの専ブラアプリを作りたい、という時はキャッシュしておくと地下鉄の中で電波が悪かったりすると重宝しますよね。
そういう時どうするか、というお話になります。

けっこう大量だったらユーザーのSDカードに保存できるといいですが、privilegedにしないといけません。
ユーザーに消されるという危険性も孕んでいます。

そこでlocalforageの出番ですよ、ということでlocalforageなら実質容量制限がありません。
localforageとはMozillaが作ったストレージライブラリです。
ちょっと使ってみたのですが、PCのFirefoxブラウザでもWebIDEでもちゃんと動いてました。

今一番使われているlocalStorageだと容量制限が厳しかったり、動作が重くなったりするので推奨されていません。

ライブラリのソース自体がかなり頻繁に書き直されているようで、1年前の記事に書いてあるコードではエラーになってました。
というかGitHubの最新版でエラーになっているので、それをデバッグしてくれている人の個人サイトからライブラリファイルをもらってきたくらいです。

localforageはFirefox OSではなくてはならない存在になると思うので、後日詳しくこのブログで取り上げます。

コメントを残す

メールアドレスが公開されることはありません。

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください