10
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Chrome Appsを作る(Hosted Apps編)

Last updated at Posted at 2014-08-11

Chrome Appsを作る機会があったので、手順をメモがてら残しておきたいと思います。

#Chrome Appsの種類
はじめに、Chrome Appsの種類について簡単に。大きく分けて2種類あります。
###Hosted Apps
自身で管理するWebサーバーからWebアプリを提供することができるので、一般にWebブラウザからのアクセスを想定して提供しているWebサービスをChrome Web Storeでそのまま公開することができる。ストア上で提供できるブックマークのようなイメージで動作する。マニフェストファイルの作成とホスティングしているドメインの所有証明をすれば、Storeで登録・公開できる。また、ユーザー管理や独自の課金の仕組みなど、細かい管理をしたい場合はHosted Appsが向いている。
###Packaged Apps
従来のWebサービスと異なって、サーバーを介さずにWebアプリを提供できる。Webアプリに必要なファイルをまとめてユーザーのローカル環境にインストールして、デスクトップアプリケーションやスマートフォンのアプリのように動作する。HTMLやCSS、JavaScriptを使って記述するデスクトップアプリケーションのように動作する。Webサーバーとの連携も可能。動作もChromeブラウザウィンドウ上ではなく、独立したウィンドウで動作し、「Chromeを立ち上げる→アプリを起動」としなくても直接起動できる(Macだとランチャー画面にも表示できる)ため、Webアプリであることを意識させない作りが可能。

#Hosted Appsを作ってみる
既存のWebサービスをアプリとして提供する場合、Hosted Appsは簡単な設定と画像の準備だけで作成する事ができます。具体的には、Appsのロゴにするアイコン画像と、WebアプリのURLや使用するリソース、アクセス許可等を記述するmanifest.jsonファイルを準備するだけで実装できます。任意のフォルダを作ってその中にアプリのアイコン画像とmanifest.jsonファイル(テキスト)を作成します。
スクリーンショット 2014-08-11 15.09.15.png

###manifestファイル
続いて、manifest.jsonにアプリの設定を書いていきます。manifestファイルには、アプリの名前や説明、サービスのURL、使うアイコンの情報等、アプリ構成に必要な情報や設定を記述します。

manifest.json
{
    "manifest_version": 2,
    "name": "Sample",
    "description": "Chrome Web App Sample",
    "version": "0.0.1",
    "app": {
        "launch": {
            "web_url": "http://example.com"
        }
    },
    "icons": {
        "16": "icon-16.png",
        "48": "icon-48.png",
        "128": "icon-128.png"
    },
    "permissions": [
        "background"
    ]
}

manifestファイルのフォーマットは公式ドキュメントで掲載されていますが、代表的な項目をあげておくと、

項目 概要
manifest_version マニフェストファイルのバージョン。執筆時点では2を指定する。
name アプリの名前。
description アプリの説明 Chromeの拡張機能欄に表示される。
version アプリのバージョン。アップデートの度に数値を上げなければならない。
web_url 提供するWebサービスのURL。
icons Iconとして使用するファイルの名前。
permissions アプリに実行を許可する項目。必要に応じて追加する。

といった具合です。気をつけなければならないのが、"manifest_version"の項目で、これを指定しないとChromeに読み込むときに、「Could not load extension from 'file path...'. The 'manifest_version' key must be present and set to 2 (without quotes). See developer.chrome.com/extensions/manifestVersion.html for details.」といって怒られてしまいます。また、"name"、"version"は必須項目なので、記述するようにします。

###iconファイルを作る
iconを作るときにも注意点があります。最低限、128×128pxのアイコン画像を用意する必要がありますが、アイコン画像の外側は枠で隠れることがあるため、中央の96×96pxの領域にアイコン画像表示されるようにして、外側の左右16px、上下16pxの領域を透過にすることが推奨されています(Chrome Supplying Images Guidelines)。

(例)
icon-128.png

#Chromeに読み込んでテストする
以上で一通りの作業は終了なので、実際にChromeに読み込んでテストします。ChromeにはStoreで配布する前に、実際にテストできる機能が備わっています。アドレスバー右のボタンから、[ツール]>[拡張機能]を選択し、デベロッパーモードのチェックを入れると次のようなボタンが現れます。
スクリーンショット 2014-08-11 16.09.37.png
一番左にある、[パッケージ化されていない拡張機能を読み込む…]を押してmanifest.json、アイコンファイルを含むフォルダを読み込むと、Chrome上にインストールされ、ChromeのApp一覧からもアクセスできるようになります。

#Sample
とても簡単ですが、サンプルの中身をそのままGitHubにアップしてあります。

10
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?