注: クイックスタートの項目は、新しい、より集中的なクイックスタート記事 として更新され、従来のクイックスタート記事をすべて置き換えるものとなりました。この記事がより有益な情報源となり、古い一連の記事よりもより素早い学習体験を提供することを期待しています。
ネイティブモバイルプラットフォーム開発者が Open Web Apps の開発を研究すべき理由は何でしょうか? この記事では、Open Web Apps の利点と、その作成にあたって必要となる基本的手順について解説します。
メリット
モバイルアプリケーション開発者に対して、Open Web Apps プロジェクトは次のようなメリットを提供します。
- 単純: 単独の技術セット (HTML5/CSS/JavaScript) を使って開発でき、スマートフォンからタブレット、デスクトップまで、すべてのプラットフォームに向けて配信可能です。
- 標準: これらの技術セットは、特定の技術やプラットフォームベンダーではなく、オープンな環境で運営されている標準化団体 (W3C/Ecma) によって定義されています。
- 自由: ベンダーによって管理されたエコシステムにロックインされることはありません。開発したアプリは、Firefox Marketplace、自分のサイト、あるいは Mozilla のオープンアプリストア技術を基盤とした他のストアで配布可能です。
- リーチ: 4 億 5,000 万人にのぼるデスクトップ版 Firefox のユーザをはじめ、他のデスクトップブラウザやモバイルユーザにもリーチすることが可能です。
Web アプリの開発手順
- 1. オープンな Web 技術を使用してアプリを開発しましょう。
- あなたも既に HTML、CSS、JavaScript については少なからず知識を持っているかもしれません。このサイトの 学習 ページには、さらに知識を高めるための資料が揃っています。モバイルアプリ開発者として、あなたは既に Web デザインに対して モバイルファースト のアプローチを採っているはずです。
- 2. アプリマニフェスト を追加しましょう。
- Web アプリを普通の Web サイトを本質的に区別するのは、ひとつの JSON 形式のテキストファイルだけです。
- 3. あなたのサイトかアプリストアで (あるいはその両方で) アプリを公開しましょう。
- 自分のサイトで配布する場合は、ユーザのブラウザ内で アプリのインストールや更新を管理するためのコードをサイトに追加 する必要があります。
追加機能
「哲学的には」インストール可能な Open Web Apps という考えは、単にマニフェストをサイトへ追加することよりもはるかに多くの意味を持っています。Web 標準技術は本格的なアプリケーションプラットフォームとして表示でき、ユーザインタフェースの描画とコードの解釈にたまたまブラウザのエンジンを使用し、サーバとの通信にたまたま Web プロトコルを使用しているに過ぎません。Mozilla は様々なプラットフォームに対して「Web ランタイム」実行環境を提供しており、アプリはブラウザのウィンドウフレームではなく独自のウィンドウ内で実行できます。
Web サイトを「アプリ化」するには、多くのアプリケーション固有の質問について考える必要があります。
- 自分のアプリは Web に接続していないときも動作すべきか?
- 自分のアプリがどのようにデータを使用し、どのようにそれを保存するか?
- 自分のアプリのパフォーマンスは、Web Workers や WebSockets といった先進的なプラットフォーム機能のメリットを受けられるか?
- 他にももっと
インストール可能なアプリの機能を最大限活用したい場合は、できることがたくさんあります。例えば、
- レスポンシブ Web デザイン を使って、すべての端末上で表示や動作を最適化する。
- アプリに課金する。
- ユーザを特定する 方法を提供する。
- オフラインキャッシュ を使って、端末がインターネットに接続していない場合もアプリを使えるようにする。
- IndexedDB か localStorage を使ってデータをローカルに保存する。
- ネイティブアプリのように アプリを起動する (アイコンをデスクトップやモバイル端末のホーム画面に表示する)
- 位置情報通知機能 (ジオロケーション) や 傾き検知 (加速度センサー) などのデバイス API を使ってハードウェアと連携する。
- ユーザにフィードバック手段を提供する。Mozilla が行ったユーザ調査では、ユーザはアプリ開発者にフィードバックを提供したいと考えており、それを実際に受け取る人間がいることを確かめたいとも考えています。また、提案をしたい、あるいは問題があったときにサポートを受けたいといった要望もあります。問題があり、そのサポートを受けられないときはアプリを使うのをやめてしまう可能性があります。
便利な技術
便利な技術 をご覧ください。