Disposizione del terreno

Peter Conn
Peter Conn

L'ecosistema delle attività web attendibili è piuttosto ampio e può essere abbastanza difficile capire come si relazionano tutti gli elementi e cosa utilizzare. Questo articolo intende rispondere a queste domande.

Se non hai mai utilizzato Attività web attendibili o se stai cercando l'insieme di strumenti consigliati che dovresti utilizzare oggi, ecco cosa devi sapere:

  • Bubblewrap: uno strumento NodeJS che consente agli sviluppatori di creare e compilare un APK per Android che wrapping di una PWA esistente. L'applicazione generata è basata su Attività web attendibili, ma questo è trasparente per lo sviluppatore. Non è richiesta alcuna esperienza di sviluppo Android. Per iniziare, consulta la documentazione di Bubblewrap.
  • android-browser-helper: una libreria Android che incapsula il protocollo Trusted Web Activities. Consigliato per gli sviluppatori che hanno familiarità con lo sviluppo Android e vogliono utilizzare Attività web attendibili come una delle attività nella loro app per Android o apportare personalizzazioni non supportate da Bubblewrap. Per iniziare a utilizzare android-browser-helper, consulta la documentazione e le nostre demo.

La sezione successiva fornisce un breve riepilogo di tutti i progetti in relazione tra loro. Infine, per i più curiosi, è presente una sezione storica che mostra come siamo arrivati a questo punto e dove prevediamo di andare nel prossimo futuro.

Una panoramica delle librerie

Ecco un breve riepilogo di ogni libreria che potresti utilizzare:

  • androidx.browser, una libreria Android per interagire con il browser installato sul dispositivo dell'utente.
  • Android Browser Helper, una libreria basata su androidx.browser per i client Trusted Web Activity che fornisce metodi di utilità e valori predefiniti ragionevoli.
  • Bubblewrap, uno strumento per creare attività web attendibili dalle PWA senza modificare il codice Java.

Inoltre, ciascuna di queste librerie/strumenti sostituisce una precedente:

Cronologia

La libreria Android Support

La libreria di supporto Android espande la piattaforma Android con nuove API e funzionalità di compatibilità. È suddiviso in più pacchetti, con la libreria di supporto di Custom Tabs contenente funzionalità per interagire con i browser sul sistema dell'utente. Lo sviluppo della libreria di supporto di Custom Tabs è stato eseguito principalmente nel repository GitHub custom-tabs-client, con le modifiche riportate nella libreria di supporto Android.

Una scheda personalizzata è un'attività Android che utilizza un browser per visualizzare una pagina web. Il vantaggio principale per lo sviluppatore è che può essere personalizzato e include un pulsante di chiusura, quindi l'utente rimane nell'app dello sviluppatore (anziché uscire dall'app e passare all'esperienza di navigazione completa). In qualità di API per Android, Custom Tabs può essere supportata da qualsiasi browser e utilizzerà il browser predefinito dell'utente (anche se questo può essere ignorato dagli sviluppatori).

Poiché le Attività web attendibili sono basate su Custom Tabs, hanno avuto origine in questa libreria custom-tabs-client. Le attività web attendibili rimuovono la barra superiore di Custom Tabs quando l'utente visita un sito di proprietà dello sviluppatore dell'app. In questo modo, puoi integrare perfettamente il tuo sito web in un'app nativa per Android e creare app in cui tutte le funzionalità sono fornite dal web.

AndroidX

La Android Support Library è stata successivamente rinominata AndroidX, che fa parte di un impegno più ampio per migliorare l'esperienza degli sviluppatori chiamato JetPack. Di conseguenza, le schede personalizzate e le attività web attendibili dovevano passare dalla libreria di supporto delle schede personalizzate al nuovo androidx.browser.

Parte del codice che avevamo scritto in custom-tabs-client era appropriato per una libreria di classi di helper per le attività web attendibili, ma non per un'API Android. Il codice che si occupa di verificare la presenza di versioni di Chrome obsolete e di chiedere all'utente di eseguire l'aggiornamento o di prendere decisioni su come devono essere archiviati i dati non può essere trasferito in AndroidX. Pertanto, abbiamo creato una libreria alternativa per contenere queste parti di custom-tabs-client che non potevano essere inserite in androidx.browser, da cui è nato Android Browser Helper.

Android Browser Helper è stato creato per contenere codice che può essere specifico per i browser (non solo Chrome, siamo aperti al codice specifico per altri browser) e può prendere decisioni concrete che le librerie non dovrebbero prendere. Abbiamo colto l'occasione per separare in generale i ruoli di queste due librerie:

  • androidx.browser contiene i componenti di base per interagire con i browser sul sistema dell'utente.
  • Android Browser Helper contiene implementazioni predefinite pratiche e sensate.

Bootstrap

Gli sviluppatori sono persone impegnate, con molto lavoro da fare e scadenze da rispettare. Per aiutarti, abbiamo creato due strumenti per consentire all'utente di avviare la propria Attività web attendibile.

Il primo (e più antico) è svgomg-twa, un progetto Android ospitato su GitHub che avvia un'attività web attendibile. È stato originariamente progettato come progetto dimostrativo, ma si è evoluto in un modello. Gli utenti possono clonare il repository e modificare il file build.gradle in modo che rimandi al proprio sito web, compilarlo e produrre un'attività web attendibile senza toccare alcun codice Java. La verifica di Digital Asset Links richiede più impegno. Scopri di più qui.

svgomg-twa inizialmente dipendeva da custom-tabs-client, ma poi è passato all'helper browser Android (e in modo transitivo ad androidx.browser).

Lo strumento più recente e avanzato è Bubblewrap, uno strumento Node.js che prende il tuo manifest dell'app web e genera un'Attività web attendibile per te. Questo è il modo più semplice per creare un'Attività web attendibile da una PWA esistente e non richiede alcuna conoscenza dello sviluppo Android.

A breve

Rimuoveremo svgomg-twa per due motivi:

  • Bubblewrap genera essenzialmente un file svgomg-twa compilato per uno sviluppatore. Esegue questa operazione in modo interattivo e può recuperare la configurazione da un manifest dell'app web (che una PWA probabilmente avrà già).
  • Se gli sviluppatori vogliono un riferimento su come avviare da zero il proprio progetto Attività web attendibile, possono consultare la directory delle demo di Android Browser Helpers.

I nuovi sviluppatori devono utilizzare Bubblewrap per generare il progetto. Se utilizzi già svgomg-twa e hai apportato alcune modifiche sostanziali, puoi continuare a farlo, ma non riceverai aggiornamenti.

Abbiamo intenzione di rendere Bubblewrap il più efficiente possibile, quindi se manca una funzionalità evidente o se riscontri un bug, non esitare a creare un problema.