用語辞典・OS・ブラウザ

PWA

PWAとは

PWAProgressive Web App(プログレッシブ・ウェブ・アップ)の略で、一般に「ピー・ダブリュー・エー」と読みます。Web技術で作られ、インストールやオフライン動作などアプリに近い体験を提供するWebアプリです。

URLで配信・更新されるWebアプリケーションを基礎に、Web App Manifest、Service Worker、レスポンシブ設計、安全文脈、プラットフォームAPI等を必要な範囲で組み合わせます。

PWAは単一ファイル形式や一つのAPIではありません。インストール可否、オフライン機能、背景機能、配布方法はブラウザーとOS、アプリケーション実装で異なります。

安全Webアプリへマニフェストを適用し、利用者確認後に起動ツールへ追加し、適用範囲内はアプリ時間窓、適用範囲外はブラウザーへ戻すインストールメタデータ、オフライン実装、権限、更新、アンインストールを別々に見る
安全オリジンのレスポンシブwebアプリ、アイコンと開始ページと適用範囲と表示を示すマニフェスト、インストール確認、デスクトップ・スマートフォン・tablet起動ツール、適用範囲内アプリ時間窓と適用範囲外ブラウザー、オフラインキャッシュ、権限、更新、アンインストールを示すピクトグラム図解
図1インストールは起動ツールと起動文脈を作る操作です。ネットワークなしで何ができるかはService Workerとデータ設計が決めます。

構成を七つの部品へ分ける

WebアプリケーションURLから利用できる本体

HTML、CSS、JavaScript、サーバーAPIをWebとして提供します。

Manifestインストールメタデータを渡す

名前、アイコン、開始_url、適用範囲、表示、テーマ等をJSONで記述します。

Install起動ツールへ登録

ブラウザーがオリジンとアプリ情報を示し、利用者の操作で機器へ追加します。

Launchマニフェスト適用時間窓で開く

開始URLと表示モードを使い、独立時間窓風に起動できます。

Resilience不安定なネットワークへ備える

Service Worker、キャッシュ、再試行、ローカル状態でオフライン・不安定なネットワークを処理します。

CapabilitiesWeb APIを必要時に使う

通知、カメラ、位置等は個別権限とプラットフォーム対応が必要です。

UpdatesWebから新バージョンを受け取る

リソース・マニフェスト・ワーカーを各キャッシュとライフサイクル規則に沿って更新します。

マニフェストはアプリのメタデータをまとめる

Web App Manifest(ウェブ・アップ・マニフェスト)は、アプリケーション名、アイコン、起動URL、ナビゲーション適用範囲、表示モード、色等をJSONリソースで提供します。ブラウザーはインストールUIと起動文脈へ適用します。

start_urlは起動入口、scopeはマニフェストが適用されるナビゲーション範囲です。適用範囲外URLへ移ると、通常のブラウザーUIへ戻す等の扱いになります。

インストール可能条件はブラウザーが決める

現行マニフェスト仕様はユーザーエージェントがWebアプリケーションをインストールするモデルを定めますが、インストールUIをいつ表示するか、必要なマニフェストメンバー、継続利用条件、デスクトップ・モバイルの提供面は実装ごとに異なります。

「インストールボタンが出ない」をService Worker有無だけで判断せず、マニフェスト取得、アイコン、開始URL、オリジン、ブラウザー対応、プラットフォーム方針を確認します。ブックマーク追加とインストール済み webアプリではマニフェスト適用範囲が違います。

オフラインはService Worker等で作るアプリケーション機能

シェルリソースをCache Storageへ置き、ナビゲーション失敗時にオフラインページを返し、入力データをローカル保存へ保留し、再接続時にサーバーへ同期する設計があります。

どの操作がオフラインで可能か、データ競合をどう解決するか、ログアウト後にキャッシュ済みの個人データをどう消すかを明示します。「PWAだからオフライン」の一語だけでは、すべての機能が使えることを保証できません。

インストールしても権限は自動付与されない

通知、カメラ、マイク、位置、クリップボード等はAPIごとの権限と利用者操作が必要です。インストール済み時間窓でもオリジンのセキュリティモデルが基本です。

起動ツールアイコンや全画面風表示は、ネイティブアプリケーションと同じ権限を意味しません。権限を拒否したときにも主要機能を使える代替処理を用意します。

更新はWebの速さとライフサイクルの安全性を両立する

サーバーリソースを更新しても、HTTPキャッシュ、Service Workerキャッシュ、待機ワーカー、開いたクライアントにより複数バージョンが並ぶことがあります。データスキーマとAPIを後方互換にします。

重要更新で再起動を促す場合も、利用者の未保存データを失わないよう通知と移行を設計します。通知なしの更新が常に正解ではありません。

アンインストールとサイトデータ削除は同じとは限らない

起動ツールからアプリを削除しても、ブラウザープロファイルのCookie、保存領域、権限、キャッシュが残る実装があります。アンインストールUIがデータ削除選択肢を提示するか確認します。

PWAはWebの配信モデルを保ちながら、マニフェストによるインストール・起動と、アプリケーションが実装する回復力・対応能力を段階的に加える考え方です。

manifest metadata、install・launch、scope、display、uninstallとprivacy要件:W3C「Web Application Manifest」。offline request制御を担うworker:W3C「Service Workers」

関連用語