ちょっと話題の記事

[Firefox OS アプリ開発] Web 技術者なら誰でも超簡単に開発できる!まずは使ってみよう

2013.03.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Firefox OS とは

Firefox OS とは、みなさんご存知 Firefox の開発元である Mozilla 製のモバイルプラットフォームです。ソニーモバイルや LG といったメーカーが搭載スマホの発売が発表されたりと、業界大注目となっています。ちなみにアプリは HTML/CSS/JavaScript で組み立てるので、Web 技術者であれば誰でも容易に開発が始められます!
ということで、流行を先取りすべく、とっても気になっていた Firefox OS アプリ開発を始めてみました。そのメモをつらつらと書いていきたいと思います。

開発環境を構築する

Firefox OS Simulator をインストールする

Firefox OS Simulator のインストールはとっても簡単。Firefox にアドオンをインストールするだけです!

Firefox OS Simulator | Add-ons for Firefox

firefox_os01

アドオンのインストールが完了すると Dashboard が表示されます。左側の Simulator のトグルボタンを押すと Firefox OS Simulator が立ち上がります!

firefox_os02

アプリ開発はテキストエディタで

アプリは HTML/CSS/Javascript がコーディングできるエディタであれば何でもOKです。筆者は Sublime Text 2 でやります。

Firefox OS アプリ開発の基礎知識

まずは Firefox OS アプリ開発の基礎知識を学んでいきましょう、ざっくりと。

アプリの種類

ホスト型アプリ

すべてのリソースを Web サーバ上にホスティングする形式のアプリです。いわゆる通常の Web アプリです。Open Web Apps とも呼ばれます。作成したアプリは好きな Web ページからインストールさせることができます。

パッケージ型アプリ

すべてのリソースを Zip にひとまとめにして配布する形式のアプリです。Firefox Marketplace (GooglePlay や AppStore のようなアプリストア) にアプリを公開するにはこの形式のアプリで作る必要があります。ストアではアプリを審査し、問題がなければデジタル署名が行わて公開されるので、保証があるアプリとしてユーザに提供できます。

Manifest ファイル

Manifest ファイルとはアプリの詳細情報を設定するファイルのことです。Web アプリと Firefox OS アプリとの決定的な違いは Manifest ファイルの有無です。逆に言うと Manifest ファイルさえあればどんな Web アプリでもすぐに Firefox OS アプリにすることができるということです。基本的には。手軽ですね!

Firefox OS アプリの作りかた

ということで Firefox OS アプリを作ってみたいと思います!

1. HTML/CSS/JavaScript でコーディングする

まずはアプリの処理をコーディングします。普通の Web アプリと何ら変わりはありません。今回は Battery API を使ってバッテリーの残量を表示するサンプルを作りました。

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>SampleApp</title>
    <link rel="stylesheet" type='text/css' href="/css/app.css">
    <link rel='stylesheet' type='text/css' href='http://fonts.googleapis.com/css?family=Tauri'>
    <script type="text/javascript" src="/js/lib/zepto.min.js"></script>
    <script type="text/javascript" src="/js/app.js"></script>
  </head>
  <body>
    <h2 id="toc-hello-firefox-os">Hello, Firefox OS !!</h2>
    <div>
      <h3>Battery Status</h3>
      <p>level: <span id="battery-level"></span></p>
    </div>
  </body>
<html>

/css/app.css

body {
	font-family: 'Tauri', sans-serif;
	color: #333333;
	background-color: #eeeeee;
}

/js/app.js

$(function(){
  // Battery API
  var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery;
  $('#battery-level').text(battery.level * 100 + '%');
});

2. Manifest ファイルを作成する

次に manifest.webapp ファイルを JSON 形式で作成します。以下のような感じです。

manifest.webapp

{
  "version": "0.1",
  "name": "SampleApp",
  "description": "サンプルアプリです。",
  "launch_path": "/index.html",
  "icons": {
    "16": "/img/icons/app_16.png",
    "48": "/img/icons/app_48.png",
    "128": "/img/icons/app_128.png"
  },
  "developer": {
    "name": "Classmethod",
    "url": "http://classmethod.jp"
  },
  "default_locale": "ja"
}

launch_path で指定したファイルがはじめに読み込まれるファイルになります。

3. Firefox OS Simulator で動作を確認する

動作を確認するには Firefox OS Simulator の Dashboard にアプリを追加します。

firefox_os03

追加すると自動で Simulator でアプリが起動します!

firefox_os04

firefox_os05

まとめ

HTML/CSS/Javascript でモバイル向けのアプリ開発はいままでもいろいろありましたが、どうもアプリがもっさり動作したりパフォーマンスが悪かった覚えがあります。Firefox OS は Web ベースなので、その点に関してはとても期待できそうですね。とにかくまずは実機を触ってみたいですね〜。
ということで今回はほんの触りだけ試してみました。基本的にはすごーーーーく簡単なことがお分かりいただけたかなと思います。もっと詳しく知りたいかたは公式リファレンスが割と充実しているので、ぜひ参考にしていきましょう。これからもいろいろ試しながら紹介していきます!

参考