プログレッシブウェブアプリの利点

プログレッシブウェブアプリ(Progressive web apps、PWA)には、以下のセクションにリストされているすべての利点があります。

 

発見可能

最終的な目的は、ウェブアプリが検索エンジンでより適切に表現され、公開されやすく、カタログ化とランク付けされ、ブラウザーにメタデータを使用してそれらに特別な機能を提供することです。

一部の機能は、Open Graph のような独自の技術によって特定のウェブベースのプラットフォームですでにできるようになっています。 Open Graph は、メタタグを使用して HTML の <head> で類似のメタデータを指定するための形式を提供します。

ここで関連するウェブ標準はウェブアプリマニフェスト(Web app manifest)です。 これは、名前、アイコン、スプラッシュスクリーン、テーマカラーなどのアプリの機能を JSON 形式のマニフェストファイルで定義します。 これは、アプリ一覧やデバイスのホーム画面などのコンテキストで使用するためのものです。

インストール可能

アプリエクスペリエンスの中心的な部分は、ユーザーが自分のホーム画面にアプリアイコンを表示して、タップしてアプリをネイティブコンテナに開くことができることで、基盤となるプラットフォームとうまく統合されていると感じます。

最新のウェブアプリは、ウェブアプリマニフェスト内で設定されたプロパティや、ホーム画面に追加と呼ばれる最新のスマートフォンのブラウザーで利用可能な機能を介して、このネイティブアプリの感じを持つことができます。

リンク可能

ウェブの最も強力な機能の1つは、特定の URL でアプリにリンクできることです — アプリストアは不要で、複雑なインストールプロセスも不要です。 これこそがいつものことです。

ネットワーク非依存

最新のウェブアプリは、ネットワークの信頼性が低い場合、または存在しない場合でも機能します。 ネットワークの独立性の背景にある基本的な考え方は、次のことができるようにすることです。

  • ネットワークにアクセスできない場合でも、サイトを再訪してそのコンテンツを取得する。
  • 接続性が悪い状況でも、ユーザーが以前に少なくとも1回アクセスしたことがある、あらゆる種類のコンテンツを閲覧する。
  • 接続がない状況下でユーザーに見せるものを制御する。

これは技術の組み合わせによって達成されます — ページ要求を制御するサービスワーカー(オフラインでの保存など)、ネットワーク要求への応答をオフラインで保存するための Cache API(サイトアセット(静的なコンテンツ)の保存に非常に便利)、アプリケーションデータをオフラインで格納するための Web StorageIndexedDB などのクライアント側のデータストレージ技術です。

プログレッシブ

最新のウェブアプリは、完全対応のブラウザーには非常にクールなエクスペリエンスを提供し、完全ではない対応のブラウザーには(あまり魅力的ではないが)許容可能なエクスペリエンスを提供するように開発できます。 プログレッシブエンハンスメント(progressive enhancement)などのベストプラクティスを使って、これを長年にわたって行ってきました。

再エンゲージ可能

ネイティブプラットフォームの大きな利点の1つは、アプリを見ていないときやデバイスを使用していないときでも、ユーザーが更新や新しいコンテンツに簡単に再エンゲージ(係り合い)できることです。 最新のウェブアプリでも、新しい技術を使用してこれを実行できます — ページを制御するためのサービスワーカー(Service Worker)、サービスワーカーを介してサーバーからアプリに直接更新を送信するための Web Push API 、ユーザーがブラウザーを見ていないときにユーザーとのエンゲージを援助するシステム通知を生成するための Notifications API といったもの。

レスポンシブ

レスポンシブウェブアプリ(Responsive web apps)では、メディアクエリやビューポートなどの技術を使用して、その UI があらゆる形状(デスクトップ、モバイル、タブレット、または次に来るものは何でも)に適合することを確認します。

安全

ウェブプラットフォームは、HTTPS を利用してセキュリティを念頭に置いてアプリを開発する限り、スヌーピング(覗き見)を防ぎ、コンテンツが改ざんされていないことを保証する安全な配信メカニズムを提供します。 さらに、PWA が正しい URL にあることを確認することで、PWA の本質を検証できます。 一方、アプリストア内のアプリは、多くの場合1つのもののように見えますが別のものになります()。

 

ドキュメントのタグと貢献者

このページの貢献者: Wind1808
最終更新者: Wind1808,