あなたは私を信頼しますか?
しばらくの間、アプリの複雑さに応じて、ウェブアプリケーションをわずかな労力でネイティブアプリに変換できるようになりました。たとえば、Capacitor.jsやCordovaのようなフレームワークはそのような機能を提供し、オープンソースソフトウェアでもあります。 Webアプリをネイティブとして提供するには、Webアプリケーションをローカルでビルドし、このビルド出力が配置されているフレームワークに通知し、基本的にアプリが作成されるまで待つ必要があります。コアコンセプトは、Webサイトが埋め込みWebビューで実行されるだけであるということです。さて、グーグルの「Trusted Web Activity」を導入することで、状況は再び変化しようとしています。
PWA ++
「信頼できるWebアクティビティ」(TWA)とは何ですか?要点は次のとおりです。
- 「信頼できるWebアクティビティ」は、GooglePlayストアおよびPWAから生成されたネイティブAndroidアプリのコンテキストで使用されます
- 「assetlinks」と呼ばれるクレデンシャルを作成することで、AndroidアプリのPWAの所有権を確認できます。ここでGooglePlayが必要になります。
- この「assetlinks」ファイルをウェブアプリのパブリックディレクトリにアップロードすることで、GoogleはネイティブAndroidアプリが取得されたときに、PWAの所有権を確認できるため、作成することしかできません。
了解しました。これはTWAの背後にある概念の概要です。要約すると、「信頼」の部分は、PWAの所有権の検証に関連しています。
新しいTWAを1つお願いします!
わかりました、しかしそれは実際にどのように機能しますか?セットアップは実際には非常に簡単で、1時間以上かかることはありません。方法は次のとおりです。
まず、PWAが正しく設定されていることを確認します。
- マニフェスト.jsonが利用可能であり、検証されています
- アイコン+名前は正しい
- これらの変更はDevToolsですばやく確認できます
面倒な作業をすべて行うメインライブラリは「バブルラップ」と呼ばれ、CLIを提供するNode.jsパッケージであり、チュートリアル全体で使用されます。
まず、TWA用に「twa」という新しいディレクトリを作成します。 「twa」の中に、「android」というディレクトリをもう1つ作成します。 「twa」自体にはnode_modulesが含まれ、「android」には実際のネイティブAndroidアプリが含まれます。
新しいnpmプロジェクトを開始するには、「twa」の内部にいることを確認してください。
npm init -y
次に、CLIを開発依存関係として追加しましょう。
npm i -D @bubblewrap/cli
今のところ必要なのはそれだけです。次に、「バブルラップ」プロジェクトを開始しましょう。ドメインを自分のドメインに置き換えて、「manifest.json」がどこにあるかを確認するだけです。 Java SDK + Android SDKの場所を尋ねられます。これらの場所は、すでにインストールされている場合は再利用できます。
npx bubblewrap init --manifest=https://your-pwa.com/manifest.json
次に、「バブルラップ」CLIを使用していくつかの質問と回答を確認します。 PWAで使用可能なメタデータに応じて、ほとんどのフィールドはすでに入力されています。
npx bubblewrap build
PWAが特定され、Androidアプリが作成されたので、次は簡単なスモークテストを行います。エミュレーターを起動するか、選択したテスト用の実際のデバイスを使用します。
npx bubblewrap install
すべてが正常に機能する場合は、ウェブアプリが機能するネイティブAndroidアプリとして表示されます。素晴らしい、最も難しい部分はすでに完了しています!
残っているのは、「assetlinks.json」という検証ファイルの作成です。アプリバンドルをGooglePlayにアップロードすることを想定しているので、署名が実際にどのように管理されているかに注意することが重要です。
- Google Playが署名キーを管理します。つまり、GooglePlayコンソールで対応するSHA-256値を検索する必要があります。
- 「bubblewrap」は「assetlinks」を作成した可能性があります-ファイルにはすでに1つのエントリがあり、異なるSHA-256ハッシュが含まれています-心配ありません。GooglePlayのキーと生成されたキーの両方を使用します
「assetlinks」ファイルが作成されていない場合、私が進めた方法は、テストデバイスに「AssetLinks Tool」(Googleが推奨、補遺のリンク)をダウンロードし、作成されたインストール済みの署名付きテストアプリからSHA-256を読み取ることでした。 「バブルラップ」によってインストールされます。このjsonは、ユーザーが使用できます。最初のエントリを複製し、SHA-256をGoogle Playのエントリに置き換えるだけで、署名キーのみが異なる2つのエントリを持つ「assetlinks」ファイルが作成されます。
ほぼ完了しました。既存のPWAのパブリックフォルダに新しいディレクトリを作成し、アプリを1回アップロードするだけです。
.well-known/assetlinks.json
これで、Googleはそれを読み取り、所有権を確認できます。
1つ…もっと…ステップ...
あとは、リリースバンドルをGooglePlayにアップロードしてリリースするだけです。はい、それは実際にはとても簡単です。 Googleは、ウェブ上で可能なことを実際に推進しており、新しいことを試すことを恐れていません。 「信頼できるWebアクティビティ」は、現在Androidに限定されていますが、Webとネイティブの間のギャップをさらに埋める新しい方法の1つです。
ああ、そうです。もちろん、このWebアプリはPWAとTWAです。あなたはグーグルプレイでAndroidアプリをチェックアウトすることができます、リンクは補遺の下にあります。
- Tom