TL;DR

HTML、CSS、JavaScript などの Web の技術を使って、Android や iOS のモバイルアプリのような体験を提供する仕組み。

なぜ必要か

MDN によると、PWA は Web サイトと同じく 1 つのコードベースで複数のプラットフォームやデバイスで動きながら、プラットフォーム固有のアプリと同じように端末にインストールでき、オフラインやバックグラウンドで動き、端末や他のアプリと連携できる。

仕組み

PWA は、モバイルアプリと同じようにスマートフォンのホーム画面に追加できる。オフラインでも動かせるようにするには、Service Worker を使う。

MDN によると、Web アプリマニフェストの name、icons、display、start_url などの項目で、PWA の名前や見た目、OS との統合のしかたを記述する。オフラインでは Cache API に保存したアセットを Service Worker が返す。Background Synchronization や Background Fetch を使うと、アプリが起動していなくても Service Worker で処理を続けられる。Push API や Notifications API で通知も出せる。

関連

出典