Skip to content
y-system edited this page Mar 8, 2013 · 21 revisions

todo: 過去のメモ とか最近試した結果をまとめる形でFirefox OS のアプリ開発手順を書く。

基本的に Web技術 のみを使ってアプリを作成することができる。

manifest.webapp の作成

Web ブラウザがアプリとやりとりするのに必要な情報として、マニフェストファイルが必要となります。

これは最低限のもの。文字コードは UTF-8 without BOM を推奨。

{
  "name": "My App",
  "description": "My elevator pitch goes here",
  "launch_path": "/",
  "icons": {
    "128": "/img/icon-128.png"
  },
  "developer": {
    "name": "Your name or organization",
    "url": "http://your-homepage-here.org"
  },
  "default_locale": "en"
}

MDN のアプリマニフェストにマニフェストファイルの項目が他にも載っています。

"launch_path""icons" はルート相対パス: /index.html のようにスラッシュから始める形にしてください。

CSS や JavaScript の参照 <link ~><script ~> は相対パスで書くのをオススメ。

JavaScript は jQuery などのライブラリのファイルを入れることも可能。

デザインテンプレートの使用

mozilla-b2g / gaiagit clone か zip でダウンロード。

この中の Shared ディレクトリを使用します。

Building Blocks に CSS Link と HTML Code があるので、それぞれを自分のアプリのコードに追加します。 ダウンロードした Shared ディレクトリから必要な(関連する) CSS ファイルとディレクトリを自分のアプリのディレクトリにコピーします。

使用可能なAPI

WebAPI で確認することが可能。ものによってはデスクトップ版でも使用可能。


シミュレータでのアプリ開発

Simulator Dashboard - Firefox OS resource://r2d2b2g-at-mozilla-dot-org/r2d2b2g/data/content/index.html でアプリの追加や更新を行う。詳しくはこちら

シミュレータでのデバッグ

シミュレータを起動する前に Dashboard の Console にチェックを入れると、シミュレータを一緒にコンソール画面も表示されます。


実機でのアプリ開発

実際にインストールするためには navigator.mozApps.install("http://path.to/my/example.webapp"); で アプリをインストールします。

実機でのデバッグ

adb logcat でデバッグログを見ることが可能。

How to install ADB

Get the Android SDK より Android SDK をダウンロードし、解凍。

Windows の場合、C ドライブのルートディレクトリに 置くのがよいかと。環境変数に C:\android-sdk\sdk\platform-tools を追加して、コマンドプロンプトで adb を実行すると、コマンド一覧が出力されます。 使用法は以下の通り、

adb logcat
adb logcat | grep GeckoConsole

See also アプリを公開する


シミュレータで問題がある

シミュレータのトラブルシューティング もご覧ください。

mozilla と書かれた画面で止まって起動しない

B2G のエンジンは起動できているがホーム画面を正しく読み込みできない場合に黒画面の右下に mozilla のワードマークが表示されている状態で停止します。

エラーログに manifest is null というエラーが resource://gre/modules/Webapps.jsm や app://system.gaiamobile.org/shared/js/manifest_helper.js で出力されている場合、`DOMApplicationRegistry: Could not parse JSON: ... /manifest.webapps ...` というエラーが resource://gre/modules/Webapps.jsm で出力されている場合などは、インストールされているアプリの manifest.webapp ファイルに何らかの問題があります。manifest ファイルが UTF-8 で書かれており、JSON 構文が間違っていないか (キー名を引用符でくくっているか、カンマを忘れていないかなど) 確認してください。

シミュレータでは問題となる manifest.webapp ファイルを持つアプリを削除しても (Undo できるようファイルが残っているため)、シミュレータをインストールしている Firefox を再起動するまでこの問題は解決しません。

インラインスクリプトが動かない

シュミレータで Add Directory してテストする場合など、Packaged App として開発している場合には CSP がデフォルトオンになっています。CSP のデフォルトでは HTML ページの <script> タグ中に直接書いたインラインスクリプトは禁止されているため動作しません。独立した js ファイルに分離するか、アプリの CSP 設定を変更してください。

eval() が動かない

シュミレータで Add Directory してテストする場合など、Packaged App として開発している場合には CSP がデフォルトオンになっています。CSP がオンになっている場合に eval() (や Function コンストラクタ、setTimeout(), setInterval() など) にコードを文字列として与えることは禁止されています。許可するための方法はありません。eval() を使う場合は Web サイトから読み込む Hosted Apps として開発する必要があります。