Die Lage des Landes

Peter Conn
Peter Conn

Es gibt eine ganze Reihe von Systemen für vertrauenswürdige Webaktivitäten und es kann ziemlich schwierig sein, zu verstehen, wie alles zusammenhängt und was Sie verwenden sollten. In diesem Artikel möchten wir versuchen, diese Lücke zu schließen.

Wenn Sie mit vertrauenswürdigen Webaktivitäten noch nicht vertraut sind oder einfach nach den empfohlenen Tools suchen, die Sie heute verwenden sollten, sollten Sie Folgendes wissen:

  • Bubblewrap: Ein Node.js-Tool, mit dem Entwickler ein Android-APK erstellen und bauen können, das eine vorhandene PWA umschließt. Die generierte Anwendung wird von vertrauenswürdigen Webaktivitäten unterstützt, was für den Entwickler aber nicht sichtbar ist. Vorkenntnisse in der Android-Entwicklung sind nicht erforderlich. Sehen Sie sich die Bubblewrap-Dokumentation an, um loszulegen.
  • android-browser-helper: eine Android-Bibliothek, die das Trusted Web Activities-Protokoll kapselt. Empfohlen für Entwickler, die mit der Android-Entwicklung vertraut sind und vertrauenswürdige Webaktivitäten als eine der Aktivitäten in ihrer Android-App verwenden oder Anpassungen vornehmen möchten, die von Bubblewrap nicht unterstützt werden. Weitere Informationen zu den ersten Schritten mit android-browser-helper finden Sie in der Dokumentation und in unseren Demos.

Im nächsten Abschnitt finden Sie eine kurze Zusammenfassung aller Projekte in Bezug zueinander. Für die wirklich Neugierigen gibt es einen Abschnitt zur Geschichte, in dem wir zeigen, wie wir zu dem gekommen sind, was wir heute sind, und was wir in naher Zukunft vorhaben.

Übersicht über die Bibliotheken

Hier eine kurze Zusammenfassung der einzelnen Bibliotheken, die Sie möglicherweise verwenden:

  • androidx.browser, eine Android-Bibliothek zur Interaktion mit dem auf dem Gerät des Nutzers installierten Browser.
  • Android Browser Helper: Eine Bibliothek, die auf androidx.browser für Trusted Web Activity-Clients basiert und praktische Methoden und sinnvolle Standardeinstellungen bietet.
  • Bubblewrap, ein Tool zum Erstellen vertrauenswürdiger Webaktivitäten aus PWAs, ohne Java-Code zu bearbeiten.

Außerdem ersetzt jede dieser Bibliotheken/Tools eine ältere:

Verlauf

Android Support Library

Die Android Support Library erweitert die Android-Plattform um neue APIs und Kompatibilitätsfunktionen. Sie ist in mehrere Pakete unterteilt. Die Custom Tabs Support Library enthält Funktionen zur Interaktion mit Browsern auf dem System des Nutzers. Die Entwicklung der Custom Tabs-Unterstützungsbibliothek erfolgte hauptsächlich im GitHub-Repository custom-tabs-client. Die Änderungen wurden dann in die Android-Unterstützungsbibliothek zurückgemeldet.

Ein benutzerdefinierter Tab ist eine Android-Aktivität, bei der eine Webseite über einen Browser angezeigt wird. Der Hauptvorteil für den Entwickler besteht darin, dass die Seite ein Design haben und eine Schaltfläche zum Schließen enthalten kann. So bleibt der Nutzer in der App des Entwicklers, anstatt die App zu verlassen und die vollständige Browseroberfläche aufzurufen. Da es sich bei Custom Tabs um eine Android-API handelt, können sie von jedem Browser unterstützt werden. Es wird der Standardbrowser des Nutzers verwendet, was jedoch von Entwicklern überschrieben werden kann.

Da Vertrauenswürdige Webaktivitäten auf benutzerdefinierten Tabs basieren, wurden sie in dieser custom-tabs-client-Bibliothek entwickelt. Bei vertrauenswürdigen Webaktivitäten wird die obere Leiste von Custom Tabs entfernt, wenn der Nutzer eine Website besucht, die dem Entwickler der App gehört. So können Sie Ihre Website nahtlos in eine native Android-App einbinden und Apps erstellen, bei denen alle Funktionen über das Web bereitgestellt werden.

AndroidX

Die Android-Supportbibliothek wurde später in AndroidX umbenannt. Diese Bibliothek ist Teil eines größeren Projekts zur Verbesserung der Entwicklerfreundlichkeit namens JetPack. Daher mussten benutzerdefinierte Tabs und vertrauenswürdige Web-Aktivitäten von der Custom Tabs Support Library zur neuen androidx.browser verschoben werden.

Ein Teil des Codes, den wir in „custom-tabs-client“ geschrieben hatten, war für eine Bibliothek von Hilfsklassen für vertrauenswürdige Webaktivitäten geeignet, aber nicht für eine Android-API. Code, der nach veralteten Chrome-Versionen sucht und Nutzer zum Aktualisieren auffordert oder Entscheidungen darüber trifft, wie Daten gespeichert werden sollen, konnte nicht in AndroidX verschoben werden. Daher haben wir eine alternative Bibliothek erstellt, die diese Teile von custom-tabs-client enthält, die nicht in androidx.browser aufgenommen werden konnten. So entstand der Android Browser Helper.

Der Android Browser Helper wurde entwickelt, um Code zu enthalten, der für Browser spezifisch sein kann (nicht nur für Chrome, wir sind offen für Code speziell für andere Browser) und konkrete Entscheidungen treffen kann, die Bibliotheken nicht treffen sollten. Wir haben diese Gelegenheit genutzt, um die Rollen dieser beiden Bibliotheken allgemein zu trennen:

  • androidx.browser enthält die grundlegenden Bausteine für die Interaktion mit Browsern auf dem System des Nutzers.
  • Der Android Browser Helper enthält praktische und sinnvolle Standardimplementierungen.

Bootstrapping

Entwickler sind viel beschäftigt, haben viel zu tun und müssen Termine einhalten. Dazu haben wir zwei Tools entwickelt, mit denen Nutzer ihre vertrauenswürdigen Webaktivitäten einrichten können.

Das erste (und älteste) ist svgomg-twa, ein auf GitHub gehostetes Android-Projekt, das eine vertrauenswürdige Webaktivität startet. Ursprünglich war es als Demoprojekt gedacht, das sich zu einer Art Vorlage entwickelt hat. Nutzer können dieses Repository klonen und die Datei build.gradle so ändern, dass sie auf ihre eigene Website verweist. Anschließend können sie sie kompilieren und eine vertrauenswürdige Webaktivität erstellen, ohne Java-Code zu bearbeiten. Die Bestätigung der Digital Asset Links ist etwas aufwendiger. Weitere Informationen

svgomg-twa war ursprünglich vom custom-tabs-client abhängig, wurde aber später auf den Android Browser Helper (und mittelbar auf androidx.browser) umgestellt.

Das neueste und modernste Tool ist Bubblewrap, ein Node.js-Tool, das anhand Ihres Web-App-Manifests eine vertrauenswürdige Web-Aktivität für Sie generiert. Das ist die einfachste Möglichkeit, eine vertrauenswürdige Web-Aktivität aus einer vorhandenen PWA zu erstellen. Es sind keine Kenntnisse der Android-Entwicklung erforderlich.

In naher Zukunft

Wir stellen svgomg-twa aus zwei Gründen ein:

  • Bubblewrap generiert im Grunde ein ausgefülltes svgomg-twa für einen Entwickler. Dies geschieht interaktiv und die Konfiguration kann aus einem Web-App-Manifest übernommen werden, das eine PWA wahrscheinlich bereits hat.
  • Wenn Entwickler eine Referenz dafür benötigen, wie sie ein eigenes Trusted Web Activity-Projekt von Grund auf neu erstellen, können sie sich das Verzeichnis Demos der Android Browser Helpers ansehen.

Neue Entwickler sollten stattdessen Bubblewrap verwenden, um ihr Projekt zu generieren. Wenn du svgomg-twa bereits verwendest und umfangreiche Änderungen vorgenommen hast, kannst du das weiterhin tun. Du erhältst aber keine Updates mehr.

Wir möchten Bubblewrap so leistungsfähig wie möglich machen. Wenn also eine offensichtliche Funktion fehlt oder Sie auf einen Fehler stoßen, können Sie ein Problem melden.