地平

Peter Conn 氏
Peter Conn

Trusted Web Activity のエコシステムはかなり存在するため、すべての要素がどのように関係し、何を使用すべきかを確認するのは至難の業です。この記事では、その解決を目指しています。

Trusted Web Activity を初めて使用する場合や、今すぐ使用すべき推奨ツールセットを探している場合は、以下の点に注意する必要があります。

  • Bubblewrap: NodeJS ツール。デベロッパーはこれを使用して、既存の PWA をラップする Android APK を作成し、ビルドできます。生成されたアプリは Trusted Web Activity を利用していますが、これはデベロッパーにとって透過的です。Android 開発の経験は必要ありません。 詳しくは、Bubblewrap のドキュメントをご覧ください。
  • android-browser-helper: Trusted Web Activities プロトコルをカプセル化する Android ライブラリ。 Android 開発に精通していて、Trusted Web Activity を Android アプリのアクティビティの 1 つとして使用したい場合や、Bubblewrap ではサポートされていないカスタマイズを行いたいデベロッパーにおすすめです。 android-browser-helper を使い始めるには、ドキュメントデモをご覧ください。

次のセクションでは、互いに関連するすべてのプロジェクトの概要を説明します。最後は歴史セクションです これまでの道のりと近い将来に

ライブラリの概要

ここでは、最終的に使用する可能性のある各ライブラリを 1 文で簡潔にまとめます。

  • androidx.browser: ユーザーのデバイスにインストールされているブラウザとやり取りするための Android ライブラリ。
  • Android ブラウザ ヘルパー。Trusted Web Activity クライアント用に androidx.browser でビルドされるライブラリで、コンビニエンス メソッドと適切なデフォルト値を提供します。
  • Bubblewrap: Java コードに触れることなく、PWA から Trusted Web Activity を作成できます。

さらに、以下の各ライブラリ / ツールは古いライブラリ / ツールに代わるものです。

History

Android サポート ライブラリ

Android サポート ライブラリは、新しい API と互換性機能を備え、Android プラットフォームを拡張します。このツールは複数のパッケージに分割されており、ユーザーのシステム上のブラウザを操作する機能を含むカスタムタブ サポート ライブラリが用意されています。カスタムタブ サポート ライブラリの開発は主に custom-tabs-client GitHub リポジトリで行われ、変更内容は Android サポート ライブラリにアップストリームされています。

カスタムタブは、ブラウザを使用してウェブページを表示する Android アクティビティです。デベロッパーにとっての主なメリットは、テーマを設定して閉じるボタンを表示できるため、ユーザーがアプリを離れても完全なブラウジング エクスペリエンスに移動せずに、引き続きデベロッパーのアプリに留まることです。Android API の場合、カスタムタブは任意のブラウザでサポートでき、ユーザーのデフォルトのブラウザを使用します(ただし、デベロッパーはこれをオーバーライドできます)。

Trusted Web Activity はカスタムタブの上に構築されているため、開発はこちらの custom-tabs-client ライブラリから始まりました。Trusted Web Activity では、ユーザーがアプリ デベロッパーが所有するサイトを閲覧する際、カスタムタブのトップバーが削除されます。これにより、ネイティブの Android アプリ内にウェブサイトをシームレスに統合することが可能になります。また、すべての機能をウェブで提供するアプリの作成が可能になります。

AndroidX

Android サポート ライブラリは後に AndroidX にリブランディングされました。これは、JetPack と呼ばれるデベロッパー エクスペリエンスを改善する大規模な取り組みの一環です。そのため、カスタムタブと Trusted Web Activity をカスタムタブ サポート ライブラリから新しい androidx.browser に移動する必要がありました。

custom-tabs-client に記述したコードの一部は、Trusted Web Activity ヘルパークラスのライブラリには適していますが、Android API には適していませんでした。 Chrome の古いバージョンをチェックしたり、ユーザーに更新を求めるコードや、データの保存方法に関する決定を行うコードは、AndroidX に移行できませんでした。そこで、androidx.browser に移動できなかった custom-tabs-client のこれらの部分を格納するための代替ライブラリを作成し、Android ブラウザ ヘルパーが誕生しました。

Android ブラウザ ヘルパーには、ブラウザに固有のコード(Chrome だけでなく、他のブラウザを対象とするコードも含まれます)を含み、ライブラリには合わないという具体的な判断を行えるように作成されました。そこで、私たちはこの機会に次の 2 つの図書館を大まかに役割を分担しました。

  • androidx.browser には、ユーザーのシステム上のブラウザとやり取りするための基本的な構成要素が含まれています。
  • Android ブラウザ ヘルパーには、便利なデフォルト実装が用意されています。

ブートストラッピング

デベロッパーは多忙な日々を送っており、やるべきことがたくさんあるだけでなく、対応期限も決まっています。そこで、ユーザーが Trusted Web Activity をブートストラップできるようにする 2 つのツールを作成しました。

最も古いものは svgomg-twa です。これは GitHub でホストされている Android プロジェクトであり、Trusted Web Activity を起動します。 元々はデモ プロジェクトを目的としていましたが、テンプレートに進化しました。 ユーザーは、このリポジトリのクローンを作成し、自分のウェブサイトを指すように build.gradle ファイルを変更してビルドし、Java コードに触れることなく Trusted Web Activity を生成できます。(デジタル アセット リンクを確認するには、より多くの労力が必要です。詳しくは、こちらをご覧ください)。

svgomg-twa は custom-tabs-client に応じて開始されましたが、Android ブラウザ ヘルパー(および推移的に androidx.browser)に移行しました。

最新かつ最も機能的なツールは Bubblewrap です。Bubblewrap は、ウェブアプリ マニフェストを基に Trusted Web Activity を生成する Node.js ツールです。既存の PWA から Trusted Web Activity を作成する最も簡単な方法です。Android 開発の知識は必要ありません。

近い将来

svgomg-twa は、次の 2 つの理由により非推奨となります。

  • Bubblewrap は、基本的に、入力された svgomg-twa をデベロッパー向けに生成します。これはインタラクティブに実行され、ウェブアプリ マニフェスト(PWA にすでに含まれている可能性が高い)から構成を取得できます。
  • Trusted Web Activity プロジェクトをゼロから作成する際の参考情報として、Android Browser Helpers の demos ディレクトリが用意されています。

新しいデベロッパーは、代わりに Bubblewrap を使用してプロジェクトを生成する必要があります。すでに svgomg-twa を使用していて、いくつか大きな変更を加えた場合は、そのままでも問題ありませんが、更新は取得されません。

Google は、Bubblewrap を可能な限り機能させる予定です。そのため、明らかな機能が不足している場合やバグが見つかった場合は、お気軽に問題を作成してください。