Disposizione del terreno

Peter Conn
Peter Conn

Esiste una quantità discreta di ecosistema intorno alle attività web attendibili e può essere piuttosto difficile capire la correlazione tra i vari elementi e cosa dovresti utilizzare. Questo articolo si augura di riuscire a risolvere questo problema.

Se non hai mai utilizzato le attività web attendibili o stai cercando l'insieme di strumenti consigliati che dovresti utilizzare oggi, ecco ciò che devi sapere:

  • Bubblewrap: uno strumento NodeJS che consente agli sviluppatori di creare e sviluppare un APK Android che esegue il wrapping di una PWA esistente. L'applicazione generata è basata sulle attività web attendibili, ma questo è trasparente per lo sviluppatore. Non è richiesta alcuna esperienza di sviluppo Android. Per iniziare, consulta la documentazione relativa al wrapping di fumetti.
  • android-browser-helper: una libreria Android che incapsula il protocollo delle attività web attendibili. Consigliato per gli sviluppatori che hanno familiarità con lo sviluppo Android e vogliono utilizzare Attività web attendibili come una delle attività della propria 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) c'è una sezione di storia che mostra come siamo arrivati fin qui e dove prevediamo di andare nel prossimo futuro.

Una panoramica delle librerie

Ecco un breve riepilogo di ciascuna delle librerie 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 client di attività web attendibili che offre metodi pratici e valori predefiniti sensibili.
  • Bubble wrap, uno strumento per creare attività web attendibili dalle PWA senza toccare alcun codice Java.

Inoltre, ognuno di questi strumenti/librerie sostituisce uno precedente:

Cronologia

Android Support Library

La libreria di supporto Android estende la piattaforma Android con nuove API e funzionalità di compatibilità. È suddiviso in più pacchetti e la libreria di supporto delle schede personalizzate offre funzionalità per l'interazione con i browser sul sistema dell'utente. Lo sviluppo della libreria di supporto delle schede personalizzate è stato eseguito principalmente nel repository delle schede personalizzate del repository GitHub, con le modifiche a monte nella libreria di supporto di Android.

Una scheda personalizzata è un'attività Android che utilizza un browser per visualizzare una pagina web. Il vantaggio principale per lo sviluppatore è che può includere un tema e avere un pulsante di chiusura, in modo che l'utente rimanga ancora nell'app dello sviluppatore (anziché uscire dall'app per accedere all'esperienza di navigazione completa). Come API Android, le schede personalizzate possono essere supportate da qualsiasi browser e usano il browser predefinito dell'utente (sebbene possa essere ignorato dagli sviluppatori).

Poiché le attività web attendibili sono basate sulle schede personalizzate, hanno iniziato la loro vita in questa libreria client-schede-personalizzate. Le attività web attendibili rimuovono la barra superiore delle schede personalizzate quando l'utente visita un sito di proprietà dello sviluppatore dell'app. Ciò consente un'integrazione perfetta del tuo sito web all'interno di un'app Android nativa e può essere utilizzato per creare app in cui tutte le funzionalità sono fornite dal web.

AndroidX

La libreria di supporto Android è stata successivamente rinominata AndroidX, che a sua volta fa parte di un più ampio impegno per migliorare l'esperienza degli sviluppatori chiamata JetPack. Pertanto, le schede personalizzate e le attività web attendibili hanno dovuto 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 helper Attività web attendibili, ma non per un'API Android. Il codice per controllare la presenza di versioni obsolete di Chrome e richiedere all'utente di aggiornare i dati o prendere decisioni in merito alla modalità di archiviazione dei dati non può essere spostato su AndroidX. Di conseguenza, abbiamo creato una libreria alternativa per contenere queste parti di custom-tabs-client che non poteva accedere a androidx.browser e così è nato l'Assistente del browser Android.

L'Assistente del browser Android è stato creato per contenere codice che può essere specifico per i browser (non solo per Chrome, siamo aperti a scrivere un codice in modo specifico per altri browser) e può prendere decisioni concrete che le librerie non dovrebbero usare. Abbiamo sfruttato questa opportunità per separare in genere i ruoli di queste due librerie:

  • androidx.browser contiene gli elementi di base per interagire con i browser sul sistema dell'utente.
  • L'Assistente del browser Android contiene implementazioni predefinite facili da usare e sensibili.

Bootstrap

Gli sviluppatori sono persone molto impegnate, con molto lavoro da fare e scadenze a cui attenersi. Per facilitare questa operazione, abbiamo creato due strumenti che consentono all'utente di eseguire il bootstrap della sua Attività web attendibile.

Il primo (e meno recente) è svgomg-twa, un progetto Android ospitato su GitHub che avvia un'attività web attendibile. Originariamente era stato progettato come progetto dimostrativo che si è poi evoluto più di un modello. Gli utenti possono clonare il repository e modificare il file build.gradle in modo che rimandi al proprio sito web, crearlo e generare un'attività web attendibile senza toccare alcun codice Java. La verifica dei link agli asset digitali richiede più sforzi. Per saperne di più, fai clic qui.

svgomg-twa è iniziato in base al client-tabs-client, poi è passato all'Android Browser Helper (e in modo transitivo ad androidx.browser).

Lo strumento più recente e brillante è Bubblewrap, uno strumento Node.js che prende il file manifest della tua app web e genera automaticamente un'attività web attendibile. Questo è il modo più semplice per creare un'attività web attendibile da una PWA esistente e non richiede alcuna conoscenza di sviluppo Android.

A breve

svgomg-twa verrà ritirato per due motivi:

  • Il wrapper genera essenzialmente un svgomg-twa compilato per uno sviluppatore. Lo fa in modo interattivo e può prendere la configurazione da un manifest di un'app web (che probabilmente sarà già presente una PWA).
  • Se gli sviluppatori cercano un riferimento su come avviare il loro progetto di attività web attendibile da scratch, possono consultare la directory demo di Android Browser Helper.

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

Prevediamo di rendere la funzionalità Bubble wrap più efficace possibile, quindi se manca una funzionalità evidente o riscontra un bug, non esitare a creare un problema.