Firefox OS、Android 版 Firefox、デスクトップ版 Firefox 上のアプリのインストール、管理方式は、Firefox Marketplace から独立したものとなっています。これにより、アプリを自主配布するだけでなく、独自のマーケットプレイスを作成し、そこでアプリをホストすることも可能となっています。究極的には、オープンソースソフトウェアを使って独立マーケットプレイスを実装することも可能でしょう。このページでは、取り得る選択肢につい説明し、それぞれの実装についての概要を提供します。
選択肢
以下の 3 つが、独自ストアの開発に使用できる主な選択肢となります。
- ディレクトリ方式
- ストア方式
- 完全なマーケットプレイス実装
これらの選択肢について、以下で詳しく説明します。
注: 各アプリは、マニフェスト内の installs_allowed_from
項目を使用して、許可された 配信元 のみにインストールを制限できます。アプリを掲載する際は、この項目であなたのストアの配信元が除外されていないか確認する必要があるでしょう。
ディレクトリ方式
ここでは、Firefox Marketplace API を活用してアプリの情報を取得し、Firefox Marketplace から配信されているアプリのディレクトリを作成する方法を説明します。この場合、アプリの詳細を表示し、それらのインストールを引き起こす独自の Web ページを実装する必要があります。この方法では Firefox Marketplace 上で公開されているあらゆるアプリを配布できますが、有料アプリから収益を上げることはできません。
この方法で作成したストアの例を TheCount で見られます。この記事を書いている時点で、サンプルサイトが実際に動いているのを見るには、30 件以上評価が付いているアプリ をクリックし、一覧の中からどれかアプリを選択してみてください。アプリの詳細ページでは、以下のスクリーンショットのように、タイトルの直下にインストールボタンが配置されています。
ボタンの実装に使用されているコードは プロジェクトの GitHub レポジトリ にあります。
ストア方式
ここでは、Firefox Marketplace とは独立した、自主配布アプリの一覧を提供するストアを作成する方法を説明します。インストールには Apps.install
や Apps.installPackage
が使用されます。自主配布アプリは、開発者自身のサイトか他のサイトでホストされます。この方法で配布できるのは 自主配布 可能なアプリのみに限られ、つまり 特権、公認 API を使った パッケージ型アプリ を配布することはできません。
完全なマーケットプレイス実装
ここでは、マーケットプレイスの様々な構成要素 (zamboni に加えて、決済を導入したい場合は Solitude や WebPay など他の要素) を実装する方法を説明します。詳しくは zamboni のドキュメント を参照してください。
便利な API
ディレクトリ方式やストア方式を実装する場合、以下の API が役立つでしょう。
マーケットプレイスとのやりとり
ディレクトリ方式を採用する場合、Marketplace で公開されているアプリの詳細情報にアクセスし、それを使用する必要があります。これらのタスクを担う主要な API は以下の 2 つです。
- アプリ一覧 —
GET /api/v1/apps/search/
— この API は、クエリ文字列に基づき Marketplace アプリの一覧を取得するものです。Web 版の Marketplace で検索する際に目にするクエリ文字列に似ています。 - アプリ詳細 —
GET /api/v1/apps/app/
— この API は、作者やアイコンなど、各アプリの詳細を取得するものです。
これらの API や便利と思われるその他 API の詳しい情報については Firefox Marketplace API ドキュメントを参照してください。
端末上でのアプリの管理
あなたはおそらく、パッケージ型アプリやホスト型アプリのインストールに使用される Apps.install
や Apps.installPackage
といった API について既に多少の知識があるかもしれません。これらの API は navigator.mozApps
JavaScript オブジェクトの一部で、ここには他にも、Firefox OS 端末やブラウザに問い合わせてインストール済みアプリの情報を収集できるいくつかの API が含まれます。
例えば、Apps.getInstalled
メソッドを使えば、現在のユーザエージェントによってあなたのドメインからインストールされているアプリの一覧を取得できます。確認できるのはあなたのアプリのみで、他のドメインからインストールされたアプリは対象となりません。このメソッドを使えば、ユーザのインストール済みアプリが期待に添ったものであるかを判断したり、ユーザが別の Firefox プロファイルからサイトにログインした場合に「再同期」機能を実装したりできます。
詳しくは アプリのインストールと管理用 API を参照してください。
その他の情報
ホスト型アプリを提供する場合、ユーザとのセッションを維持して、設定、購入証明、その他関連サービスの追跡を行うのは簡単でしょう。遠隔ホスト型アプリに対してサービスを提供する場合、分散型認証システムの実装など、多少の追加作業が必要となるでしょう。