PWA とは『Progressive Web Apps(プログレッシブウェブアプリ)』の略で、Web サイトをスマートフォン向けアプリのように使える(見せかける)仕組みです。
ServiceWorker・PushNotification・WebManifest などを Web サイトに導入することで、ネイティブアプリに近い操作性(パフォーマンスやユーザーエクスペリエンス)を提供することを可能にします。
また、これら機能に対応していないブラウザに対しては、従来通りの Web サイトとして提供されるので実装するデメリットは、極めて少ないかと思います。
※対応ブラウザ一覧表:Can I use service workers ?
パラメータ | 説明 |
---|---|
name | ウェブアプリのインストールバナー表示時に表示されるテキスト |
short_name | ユーザーのホーム画面にボタン追加された際のアイコンキャプション |
theme_color | ツールバーなどの色を設定 |
background_color | スプラッシュ画面の背景色設定 |
display | 表示タイプをカスタマイズする standalone / fullscreen / browser / minimal-ui |
orientation | ページの最初の向きを指定する landscape (デバイス横向き表示) |
scope | ナビゲーションのスコープ(領域) |
start_url | アプリ開始場所の相対URL |
icons | ユーザーホームアイコンや、スプラッシュ画面に使用される画像設定 |
※Webアプリのインストールバナーは、最先端のテクノロジーなので、バナーを表示するための条件は、今後変更される可能性があります
※ precache 設定(ファイル先読み)を使用すれば、閲覧履歴のない画面でもオフライン表示できます
Web サイトにおいてユーザーが許可することで、ブラウザを閉じていても通知を届けることができるようになります。
以前はネイティブアプリ独自の機能でしたが、Service Worker と各API の登場により、Web サイトでも実現可能になりました。
ちなみにプッシュ通知に特化した Push.js っていう便利なライブラリあります。
Push.js は、Notification API をブラウザ経由で簡単に制御することができる Javascript ライブラリです。
シンプルなコードを書くだけでプッシュ通知を実装することができます。
前述しましたが『PWA技術は非対応なOS・ブラウザにも実害的に何の影響も与えません』
もちろん重箱の隅を突っつく感じで言えば、影響ないこともないです…あくまでも閲覧者のストレスになるような影響はございませんって意味合いです。
『ホーム画面に追加』インストールバナー(俗にいう Add to Homescreen(A2HS) ってヤーツ)を表示させるだけなら、大した工数もかけずに実装できます。(AMP サイトだと独自キャッシュのおかげ様で少しだけ手間がかかります)
そして、オフライン対応は電波状況の悪い地域での優位性だけではなく、表示速度改善にも多大にチカラを発揮し、結果的に SEO の効果も見込める(Web Vitals の観点)ことになります。
Web サイト構築時には、是非とも実装を検討する技術だと個人的に強く思います。