PWA+TWAでウェブサイトを完全アプリ化、PWAサイトのGoogle Play登録も可能に

[レベル: 上級]

Trusted Web Activity (トラステッド ウェブ アクティビティ) を実装すると、Progressive Web App (PWA) のサイトを Google Play にアプリとして登録することができます。

Trusted Web Activity とは

Trusted Web Activity(以下、TWA)を簡単に説明します。

TWA は、アプリの中にウェブページをコンテンツとして表示できる機能です。
2017 年の Chrome Dev Summit で発表されました。
試験的な公開でしたが、Android 版 Chrome 72 のリリースとともに正式に利用可能になりました。

アプリの中にウェブページを表示させると聞くと、開発に詳しい方は Chrome Custom TabWebView を思い出すかもしれません。

どちらもアプリのコンテンツとしてウェブページを利用する技術です。
TWA 以前から実装可能でした。

TWA の利点

TWA も Chrome Custom Tab も WebView も 内部的には Chrome を使ってウェブページをアプリ内に表示しています。
しかしながら、Chrome が持つ機能をすべて利用できるのが TWA です。

Chrome Custom Tab や WebView では利用できないけれど TWA なら利用できる Chrome の機能にはたとえば次のようなものがあります。

  • プッシュ通知
  • バックグラウンド同期
  • オートフィル
  • Media Source Extensions
  • Web Share API

これらの機能または同等の機能は、普通のネイティブアプリでも実装できます。
しかし TWA を使えば、ネイティブアプリを開発することなく、こうした機能をすでに備えている既存の PWA サイトをアプリに応用できます。
開発や維持にかかるコストとリソースを大幅に削減できるでしょう。

また、実質的な中身が Chrome(がレンダリングしたコンテンツ)だったとしても、技術的にはネイティブアプリです。
フルスクリーン表示できるし URL バーも存在しません。
TWA を実装したアプリは UI を自由に設計できます。

技術上ネイティブアプリということは Google Play に登録できるという利点も手にできます(ただし、あくまでもアプリなので、APK を作成して、Google Play にアプリとして登録する必要はあります。TWA が無条件に PWA サイトを Google Play に登録するわけではありません)。

ウェブサイトとアプリの開発者が同じであること、サイトがいくつかの PWA の条件を満たしていることなどが TWA の要件になります。
Google Play に登録するということは、当然ながら Google Play のポリシーを満たす必要もあります。

僕は開発者ではないので、TWA の技術的な説明は省きます。
細かなことは、公式ブログの紹介記事とデベロッパーサイトの公式ドキュメントを参照してください。

「ウェブサイトとアプリのどちらに注力するか?」
「両方できればいいけれど、そこまでの余力はない」

こんなふうに悩んでいる企業は多いのではないでしょうか?
TWA はそんな悩みを解決してくれそうです。

コンテンツ自体は PWA で構築し、TWA を通してアプリに転用します。
それでもアプリであることに違いはないので、柔軟な設計が可能です。
PWA を使えば、従来はアプリでしかできなかったホーム画面アイコン追加やプッシュ通知、オフライン利用などの機能も多数利用できます。

PWA + TWA はまさしくウェブとアプリの融合と言えそうです。

1つ問題があるとしたら、技術力が開発者に求められることでしょうか?💦