地平

Peter Conn
Peter Conn

信頼できるウェブ アクティビティには多くのエコシステムがあり、すべてがどのように関連し、何を使用すべきかを把握するのは非常に困難です。この記事では、その問題に対処します。

信頼できるウェブ アクティビティを初めて使用する方や、今すぐ使用すべき推奨ツールセットをお探しの方は、次の点にご留意ください。

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

次のセクションでは、すべてのプロジェクトの相互関係について簡単に説明します。最後に(本当に興味がある方向け)、歴史セクションでは、Google がここまで到達した経緯と、今後の計画について説明しています。

ライブラリの概要

使用できるライブラリの概要を 1 文でまとめると次のようになります。

  • androidx.browser: ユーザーのデバイスにインストールされているブラウザを操作するための Android ライブラリ。
  • Android Browser Helper: 信頼できるウェブ アクティビティ クライアント向けの androidx.browser をベースにしたライブラリで、便利なメソッドと適切なデフォルトを提供します。
  • Bubblewrap: Java コードに触れることなく PWA から信頼できるウェブ アクティビティを作成するツール。

また、これらのライブラリ / ツールはそれぞれ、古いライブラリ / ツールに代わるものです。

履歴

Android サポート ライブラリ

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

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

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

AndroidX

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

custom-tabs-client で記述したコードの一部は、Trusted Web Activity ヘルパー クラスのライブラリには適していましたが、Android API には適していませんでした。古い Chrome バージョンの確認、更新を求めるメッセージの表示、データの保存方法の決定に関するコードは、AndroidX に移行できませんでした。そのため、androidx.browser に含めることができない custom-tabs-client のこれらの部分を含む代替ライブラリを作成しました。これが Android Browser Helper です。

Android Browser Helper は、ブラウザ固有のコード(Chrome だけでなく、他のブラウザ専用のコードも使用できます)を格納し、ライブラリではできない具体的な判断を行うために作成されました。この機会に、これらの 2 つのライブラリの役割を一般に分離しました。

  • androidx.browser には、ユーザーのシステム上のブラウザを操作するための基本的なビルディング ブロックが含まれています。
  • Android Browser Helper には、使いやすく、合理的なデフォルトの実装が含まれています。

ブートストラッピング

開発者は忙しい人です。多くの作業と期限を抱えています。そのために、ユーザーが Trusted Web Activity をブートストラップできるように 2 つのツールを作成しました。

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

svgomg-twa は、最初は custom-tabs-client に依存していましたが、その後 Android ブラウザ ヘルパー(および androidx.browser)に移行しました。

最新のツールは Bubblewrap です。これは、ウェブアプリ マニフェストから信頼できるウェブ アクティビティを生成する Node.js ツールです。これは、既存の PWA から Trusted Web Activity を作成する最も簡単な方法であり、Android 開発の知識は必要ありません。

近日

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

  • Bubblewrap は、デベロッパー向けに入力済みの svgomg-twa を生成します。これはインタラクティブに行われ、ウェブアプリ マニフェスト(PWA にはすでに存在している可能性があります)から構成を取得できます。
  • デベロッパーが独自の信頼できるウェブ アクティビティ プロジェクトをゼロから開始する方法を確認するには、Android ブラウザ ヘルパーのデモ ディレクトリをご覧ください。

新しいデベロッパーは、代わりに Bubblewrap を使用してプロジェクトを生成する必要があります。すでに svgomg-twa を使用していて、大幅な変更を加えている場合は、引き続き使用できますが、更新は受信されません。

Bubblewrap は、できるだけ多くの機能を備える予定です。明らかに不足している機能がある場合や、バグを見つけた場合は、問題を作成してください。