コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

DSC00311
「FirefoxOS って WEB と同じ技術でアプリが作れるので簡単なんですよね?」
「さあ?」
ということで開発サイクルを試してみるのです。

そこそこ簡単でスタンドアロンでも動きそうなところで
「1分から24時間まで指定してカウントダウンを行うタイマー」を作成してみる。
タイトルが「提督タイマー」となっているのは推して知るべし。

HTML+CSS+Javascript でガリガリとアプリを作ります。
WebStorage を使っているので、ブラウザを一旦閉じた後間をおいてから起動しても時間を計測しつづけてくれる。FirefoxOS 端末だと頻繁にアプリ切り替えしたりするので、その間にパージされることもあろうという配慮から。
WebStorage を数バイト利用するけれども、リセットすると消すので気になる人はマメにリセットをどうぞ。
それとその仕組みのためにブラウザ通しで1つのタイマーしかセットできないので、複数の時間を計測したいときは異なるブラウザを立ち上げてくださいな。

完成したソースコードとマニフェスト
Download: teitoku_alarm.7z

これを公開配布するページを作成。
http://www.fumi2kick.com/firefox_os/
普通にブラウザでアクセスして動作させることができる。

FirefoxOS のブラウザで上記ページにアクセスしてインストールボタンを押すと、端末にインストールされてアイコンが追加される。
2013-06-30-21-03-36

このインストールの仕組みって FirefoxOS だけかと思っていたら、PC のデスクトップ版 Firefox や Android版 Firefox でも有効な事が判明。
pc_app1
PC でインストールすると単独アプリとして起動するようになるし、アンインストーラーも用意される。ちょっとビックリ、元々 XUL runner の仕組みだったのかな。

Screenshot_2013-06-30-21-16-59
Android版の場合は「ツール→アプリ」でインストールされたアプリの一覧が表示される。ここからラウンチできるし、アイコンを長押しするとホームにショートカットを置くことが出来る。
これって FirefoxOS に因らず Android でも HTML5 アプリが作り放題ってことだったんだ!しかも Firefox Marketplace にアクセスもできるじゃん。

実は既に色々整っている凄い面白い仕組みなんじゃ、これ。

さて。
ここまでアプリを作成し、配布するページを作ってみてハマったポイントなど。
Firefox アプリとして配布するには HTMLベースのアプリケーションの他にマニフェストファイルとして manifest.webapp という署名ファイルを用意する必要がある。このマニフェストファイルをもって Firefox はアプリと認識してくれる。
ところがこのマニフェストの認識は 1 origin につき 1 app という制限があるのだそうだ。
origin というのは WEB サイトのドメインのこと。つまりサイトには 1つのアプリしか置くことができないらしい。私が作った上記配布サイトではテスト用の Hello,World と合わせて 2つのアプリを置いているけれども、内部ではサブドメインの異なる同一ページに振り分けることによってなんとか実現している。
なんでこんな面倒な事になっているのかというとどうやらマニフェストの正当性を担保するための仕組みらしい。なので野良アプリ配布はそんなに流行らず、Firefox Marketplace の利用が中心になっていくのかもしれない。
まあ、アプリの数だけサブドメインを用意できればそれでよいらしいので回避していくのも手ではあるわね。

配布ページも作る事で色々学ぶところがあった。
やっぱ一通り手を動かしてみるのは重要ね。

Leave a Reply