ウェブアプリマニフェストとは

ウェブアプリマニフェスト(Web App Manifest)とは、プログレッシブウェブアプリ(PWA: Progressive Web Apps)の重要な構成要素の一つであり、ウェブアプリケーションがユーザーのデバイスにインストールされた際に、その表示方法や動作(例:ホーム画面でのアイコン、起動時のスプラッシュスクリーン、表示モードなど)を定義するためのJSON形式のファイルを指します。これにより、ウェブアプリがネイティブアプリケーションに近しいユーザーエクスペリエンスを提供できるようになります。

ウェブアプリマニフェストの基本的な概念

ウェブアプリマニフェストは、ウェブアプリの「身分証明書」や「設定ファイル」のような役割を果たします。PWAを構成する主要技術要素(サービスワーカー、HTTPS、マニフェスト)の一つとして、ウェブアプリをOSのネイティブアプリのように振る舞わせるために不可欠です。

主な概念は以下の通りです。

  1. プログレッシブウェブアプリ(PWA): ウェブ技術(HTML, CSS, JavaScript)を用いて構築されながら、ネイティブアプリのような体験(オフライン動作、プッシュ通知、ホーム画面への追加、高速な起動など)を提供するウェブアプリケーションの概念です。
  2. JSON形式: JavaScript Object Notationの略で、人間が読み書きしやすく、機械が解析しやすいデータ形式です。ウェブアプリマニフェストは、この形式で記述されます。
  3. インストールと表示設定: ウェブアプリがデバイスのホーム画面に追加された際のアイコン、アプリケーション名、起動時の表示モード(フルスクリーン、スタンドアローンなど)、起動URL、背景色、スプラッシュスクリーンなどの情報を定義します。
  4. ユーザーエクスペリエンスの向上: これらの設定により、ユーザーはブラウザのUIに邪魔されずにウェブアプリを利用できるようになり、ネイティブアプリと区別しにくいシームレスな体験が得られます。

ウェブアプリマニフェストの主要なプロパティ

ウェブアプリマニフェストは、さまざまなプロパティ(キーと値のペア)で構成されます。以下に主要なものを挙げます。

  1. name: アプリケーションの正式名称です。例えば、アプリアイコンの下に表示される名称などに使用されます。
  2. short_name: nameが長すぎる場合に、ホーム画面や限られたスペースに表示される短い名称です。
  3. start_url: アプリケーションが起動されたときに開かれるURLです。相対パスで指定されることが一般的です。
  4. display: アプリケーションの表示モードを定義します。以下の値がよく使用されます。
    • fullscreen: デバイスの画面全体を占有し、ブラウザのUIを完全に非表示にします。
    • standalone: ブラウザの最小限のUI(アドレスバーなど)を表示せず、ネイティブアプリのように独立して表示されます。
    • minimal-ui: standaloneに似ていますが、戻るボタンなどの基本的なブラウザUIが表示されます。
    • browser: 通常のウェブブラウザのタブとして開かれます(デフォルト)。
  5. background_color: アプリケーションのスプラッシュスクリーン(起動画面)や、CSSが読み込まれる前のページの背景色として使用されます。アプリケーションのブランドカラーに合わせることが推奨されます。
  6. theme_color: OSのUI要素(例:Androidのタスクスイッチャーのタイトルバー、ブラウザのツールバーなど)の色を指定します。ブラウザのタブの色などに影響を与えることがあります。
  7. icons: アプリケーションを表すアイコンの配列です。様々なサイズと形式のアイコンを提供することで、異なるデバイスや解像度に対応できます。各アイコンはsrc(パス)、sizes(ピクセルサイズ)、type(MIMEタイプ)などのプロパティを持ちます。
  8. orientation: アプリケーションの推奨表示方向(縦向き portrait または横向き landscape)を指定します。
  9. scope: ウェブアプリの「スコープ」、つまりマニフェストが適用されるURL範囲を定義します。この範囲外のURLに移動すると、通常のブラウザ表示に戻ることがあります。

記述例

{
  "name": "私の素晴らしいウェブアプリ",
  "short_name": "素晴らしいアプリ",
  "start_url": "./",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#2196f3",
  "icons": [
    {
      "src": "images/icon-192x192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "images/icon-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

ウェブアプリマニフェストの利用方法

ウェブアプリマニフェストは、HTMLファイルの<head>セクションから参照されます。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>私のPWA</title>
    <link rel="manifest" href="/manifest.json">
    </head>
<body>
    </body>
</html>

上記のように<link rel="manifest" href="path/to/manifest.json">タグをHTMLに記述することで、ブラウザがマニフェストファイルを認識し、PWAとしてインストール可能かどうかの判断や、インストール後の表示設定に利用します。

ウェブアプリマニフェストの重要性

ウェブアプリマニフェストは、PWAがネイティブアプリに匹敵するユーザーエクスペリエンスを提供するために不可欠な要素です。

  • インストールの促進: マニフェストが存在し、適切に設定されていることで、ブラウザはユーザーに対して「ホーム画面に追加」などのインストールプロンプトを表示しやすくなります。
  • ネイティブアプリのような体験: スプラッシュスクリーンやフルスクリーン表示により、ウェブアプリがブラウザの枠を超え、OSに深く統合されたかのような体験を提供します。
  • ブランドの統一性: アイコン、テーマカラー、背景色などを設定することで、アプリのブランドイメージを統一し、ユーザーに一貫した視覚体験を提供します。
  • ユーザーエンゲージメントの向上: デスクトップやホーム画面から直接起動できることで、ユーザーのアクセス障壁が下がり、リエンゲージメント率の向上に繋がります。

ウェブアプリマニフェストは、プログレッシブウェブアプリ(PWA)の重要な構成要素であり、ウェブアプリがユーザーのデバイスにインストールされた際の表示方法や動作を定義するJSON形式のファイルです。

name, short_name, start_url, display, icons, theme_colorなどの主要プロパティを通じて、アプリケーションの基本情報、起動時の振る舞い、外観を設定します。HTMLの<head>タグから参照されることでブラウザに認識され、ウェブアプリにネイティブアプリのようなインストール体験、スプラッシュスクリーン、独立した表示モードを提供し、ユーザーエクスペリエンスとブランドの一貫性を向上させ、ユーザーエンゲージメントを高める上で不可欠な役割を担っています。

関連用語

PWA(Progressive Web Apps) | 今更聞けないIT用語集
アプリ開発
ソフトウェアエンジニアリング

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。