Leg van het land

Er bestaat een behoorlijke hoeveelheid ecosysteem rond Trusted Web-activiteiten en het kan behoorlijk lastig zijn om te zien hoe alles met elkaar samenhangt en wat je moet gebruiken. Dit artikel hoopt daar iets aan te doen.

Als u nieuw bent bij Trusted Web Activity of gewoon op zoek bent naar de aanbevolen set tools die u vandaag de dag zou moeten gebruiken, dan is dit waar u op moet letten:

  • Bubblewrap : een NodeJS-tool waarmee ontwikkelaars een Android APK kunnen maken en bouwen die een bestaande PWA omhult. De gegenereerde applicatie wordt mogelijk gemaakt door Trusted Web Activity, maar dit is transparant voor de ontwikkelaar. Er is geen Android-ontwikkelervaring vereist. Raadpleeg de Bubblewrap-documentatie om aan de slag te gaan.
  • android-browser-helper : een Android-bibliotheek die het Trusted Web Activity-protocol omvat. Aanbevolen voor ontwikkelaars die bekend zijn met Android-ontwikkeling en vertrouwde webactiviteiten willen gebruiken als een van de activiteiten in hun Android-app of aanpassingen willen maken die niet worden ondersteund door Bubblewrap. Om aan de slag te gaan met android-browser-helper, bekijk de documentatie en onze demo's .

In het volgende onderdeel wordt een kort overzicht gegeven van alle projecten in relatie tot elkaar. Ten slotte is er (voor de echt nieuwsgierigen) een geschiedenisgedeelte om u te laten zien hoe we hier terecht zijn gekomen en waar we in de nabije toekomst naartoe willen gaan.

Een overzicht van de bibliotheken

Hier is een korte samenvatting van één zin van elk van de bibliotheken die u mogelijk gaat gebruiken:

  • androidx.browser , een Android-bibliotheek voor interactie met de browser die op het apparaat van de gebruiker is geïnstalleerd.
  • De Android Browser Helper , een bibliotheek die voortbouwt op androidx.browser voor Trusted Web Activity-clients en die gemakkelijke methoden en verstandige standaardinstellingen biedt.
  • Bubblewrap , een tool om vertrouwde webactiviteiten te creëren op basis van PWA's zonder enige Java-code aan te raken.

Bovendien vervangt elk van deze bibliotheken/tools een oudere:

Geschiedenis

De Android-ondersteuningsbibliotheek

De Android Support Library breidt het Android-platform uit met nieuwe API's en compatibiliteitsfuncties. Het is verdeeld over meerdere pakketten, waarbij de Custom Tabs Support Library functionaliteit bevat voor interactie met browsers op het systeem van de gebruiker. De ontwikkeling van de ondersteuningsbibliotheek voor aangepaste tabbladen vond voornamelijk plaats in de GitHub -opslagplaats voor aangepaste tabbladen , waarbij de wijzigingen werden teruggestuurd naar de Android-ondersteuningsbibliotheek .

Een aangepast tabblad is een Android-activiteit die een browser gebruikt om een ​​webpagina weer te geven. Het belangrijkste voordeel voor de ontwikkelaar is dat het een thema kan hebben en een sluitknop heeft, zodat de gebruiker nog steeds in de app van de ontwikkelaar blijft (in plaats van de app te verlaten en naar de volledige browse-ervaring te gaan). Als Android API kunnen aangepaste tabbladen door elke browser worden ondersteund en wordt de standaardbrowser van de gebruiker gebruikt (hoewel dit door ontwikkelaars kan worden overschreven).

Omdat Trusted Web-activiteiten bovenop aangepaste tabbladen zijn gebouwd, zijn ze hun leven begonnen in deze clientbibliotheek met aangepaste tabbladen . Vertrouwde webactiviteiten verwijderen de bovenste balk met aangepaste tabbladen wanneer de gebruiker op een site surft die eigendom is van de ontwikkelaar van de app. Dit opent de deur naar een naadloze integratie van uw website binnen een native Android-app en kan worden gebruikt om apps te maken waarbij alle functionaliteit door internet wordt geleverd.

AndroidX

De Android Support Library werd later omgedoopt tot AndroidX , dat zelf deel uitmaakt van een grotere inspanning om de ontwikkelaarservaring te verbeteren, genaamd JetPack . Aangepaste tabbladen en vertrouwde webactiviteiten moesten dus worden verplaatst van de ondersteuningsbibliotheek voor aangepaste tabbladen naar de nieuwe androidx.browser .

Een deel van de code die we in de custom-tabs-client hadden geschreven, was geschikt voor een bibliotheek met Trusted Web Activity-helperklassen, maar niet voor een Android API. Code die zich bezighoudt met het controleren op verouderde Chrome-versies en het vragen van de gebruiker om bij te werken of het nemen van beslissingen over hoe gegevens moeten worden opgeslagen, kon niet naar AndroidX worden verplaatst. Daarom hebben we een alternatieve bibliotheek gemaakt om deze delen van de custom-tabs-client te bevatten die niet in androidx.browser konden komen, en zo werd de Android Browser Helper geboren.

De Android Browser Helper is gemaakt om code te bevatten die specifiek kan zijn voor browsers (niet alleen Chrome, we staan ​​open voor code specifiek voor andere browsers) en kan concrete beslissingen nemen die bibliotheken niet zouden moeten nemen. We hebben van deze gelegenheid gebruik gemaakt om de rollen van deze twee bibliotheken in het algemeen te scheiden:

  • androidx.browser bevat de basisbouwstenen voor interactie met browsers op het systeem van de gebruiker.
  • De Android Browser Helper bevat handig te gebruiken en verstandige standaardimplementaties.

Opstarten

Ontwikkelaars zijn drukke mensen, met veel werk en deadlines. Om hierbij te helpen hebben we twee tools gemaakt waarmee gebruikers hun vertrouwde webactiviteit kunnen opstarten.

De eerste (en oudste) is svgomg-twa , een door GitHub gehost Android-project dat een vertrouwde webactiviteit lanceert. Het was oorspronkelijk ontworpen als een demoproject dat zich ontwikkelde tot meer een sjabloon. Gebruikers kunnen die opslagplaats klonen en het build.gradle- bestand aanpassen zodat het naar hun eigen website verwijst, deze bouwen en een vertrouwde webactiviteit produceren zonder enige Java-code aan te raken. (Het verifiëren van de Digital Asset Links vergt meer inspanning, lees hier meer.)

SVGomg-twa begon afhankelijk van de aangepaste-tabs-client, maar ging vervolgens over naar de Android Browser Helper (en transitief androidx.browser).

De nieuwste en meest briljante tool is Bubblewrap , een Node.js-tool die uw Web App Manifest gebruikt en een vertrouwde webactiviteit voor u genereert. Dit is de eenvoudigste manier om een ​​vertrouwde webactiviteit te maken op basis van een bestaande PWA en vereist geen kennis van Android-ontwikkeling.

Nabije toekomst

We zullen SVGOMG-TWA beëindigen om twee redenen:

  • Bubblewrap genereert in wezen een ingevulde SVGOMG-TWA voor een ontwikkelaar. Het doet dit interactief en kan de configuratie overnemen van een Web App-manifest (dat een PWA waarschijnlijk al zal hebben).
  • Als ontwikkelaars een referentie willen over hoe ze hun eigen Trusted Web Activity-project helemaal opnieuw kunnen starten, kunnen ze de demomap van Android Browser Helpers raadplegen.

Nieuwe ontwikkelaars zouden Bubblewrap moeten gebruiken om hun project te genereren. Als je SVGomg-twa al gebruikt en een aantal grote wijzigingen hebt aangebracht, kun je daar prima mee doorgaan, maar krijg je geen updates.

We zijn van plan om Bubblewrap zo capabel mogelijk te maken, dus als er een duidelijke functie ontbreekt of als je een bug tegenkomt, voel je vrij om een ​​probleem aan te maken .