Transizione dalle app di Chrome

Opzioni di migrazione

Esistono due opzioni principali per la migrazione dalle app di Chrome: applicazioni web ed estensioni di Chrome:

È possibile eseguire la migrazione delle app di Chrome ad applicazioni web o estensioni di Chrome

Le applicazioni web sono il percorso preferito nella maggior parte dei casi. Le estensioni di Chrome possono essere utilizzate in alcuni scenari per casi d'uso non supportati dal web, come l'esecuzione in background senza un'interfaccia utente.

Applicazioni web

L'alternativa preferita per la migrazione dalle app di Chrome è creare un'applicazione web. In questo modo puoi utilizzare funzionalità avanzate, come quelle del progetto sulle funzionalità web. Le API che fanno parte del progetto Capabilities ora coprono la maggior parte dei casi d'uso precedentemente raggiungibili con le API per app di Chrome. Tuttavia, non è obbligatorio utilizzare nessuna di queste funzionalità: la flessibilità del web consente agli sviluppatori di scegliere il livello di complessità più adatto alle proprie esigenze.

Vantaggi delle applicazioni web

Le applicazioni web hanno alcuni vantaggi rispetto alle app di Chrome:

  • Portabilità: le app di Chrome vengono eseguite solo in Chrome. Le applicazioni web vengono eseguite sulla maggior parte dei browser e dei sistemi operativi, anche se il supporto per API diverse varia da uno all'altro.
  • Esperienza di sviluppo: le app di Chrome utilizzano le stesse tecnologie delle applicazioni web (HTML, JavaScript e CSS), ma alcune funzionalità avanzate delle app (ad esempio le pagine in background) non sono standard e pertanto richiedono conoscenze aggiuntive.
  • Insieme di funzionalità: le app di Chrome si basano su API che non vengono più gestite o aggiornate con nuove funzionalità. Le applicazioni web si basano sul web aperto, che si evolve continuamente e ha accesso a tutte le API aggiornate.
  • Installazione e aggiornamenti: le app di Chrome richiedono l'installazione e l'aggiornamento manuali e talvolta richiedono revisioni dello store. È possibile accedere alle applicazioni web direttamente da un browser e, facoltativamente, possono essere installate. Gli aggiornamenti per le applicazioni web sono istantanei al momento dell'implementazione, non appena il browser recupera i nuovi file.
  • Supporto: sia le app di Chrome che le applicazioni web hanno community considerevoli, la piattaforma web ha una presenza molto più ampia e offre una gamma più ampia di strumenti di sviluppo, come framework e librerie, per supportare gli sviluppatori.

App web progressive

Le app web progressive, o PWA, sono solo applicazioni web create e ottimizzate con API moderne per offrire funzionalità, installabilità e affidabilità avanzate. L'implementazione di queste funzionalità ti consente di creare esperienze simili a quelle di un'app sul web.

Installabilità

Le PWA sono installabili sia su piattaforme desktop sia su piattaforme mobile, ma si tratta di un'opzione facoltativa, perché è ancora possibile accedervi direttamente dal browser. Gli utenti che scelgono di installare una PWA possono avviarla tramite icone e scorciatoie. Puoi fornire i metadati nel file manifest web della tua PWA per indicare che, una volta avviata dopo l'installazione, verrà aperta in una propria finestra.

Affidabilità

Le PWA sono in grado di funzionare in modo coerente anche in condizioni di rete difficili. Ciò è reso possibile da un componente fondamentale delle PWA, noto come lavoratori dei servizi. I Service worker consentono di intercettare le richieste di rete e pubblicare contenuti memorizzati nella cache per garantire che l'app funzioni offline o in scenari di scarsa connettività. Librerie come Workbox, forniscono una serie di strategie predefinite per consentirti di implementare funzionalità offline comuni, semplificando notevolmente lo sviluppo.

Funzionalità avanzate

Il progetto delle funzionalità web consente alle applicazioni web di raggiungere molti casi d'uso che potrebbero essere implementati dalle app di Chrome. Tuttavia, il modello di sicurezza del web impone determinate limitazioni. Di seguito sono riportati alcuni esempi di funzionalità web avanzate che puoi utilizzare al posto delle API per app Chrome esistenti:

  • Accesso a Bluetooth e USB: il Web Bluetooth e il Web USB forniscono un'alternativa rispettivamente a chrome.bluetooth e chrome.usb.
  • Gestione del file system: l'API File System Access è l'alternativa all'API chrome.fileSystem.
  • Scorciatoie:le app web possono supportare le scorciatoie da tastiera ascoltando i vari eventi relativi ai tasti (ad esempio, keydown), ma le scorciatoie supportate sono limitate. Quando la tua app web viene utilizzata in modalità a schermo intero, puoi intercettare queste scorciatoie di sistema con l'API Keyboard Lock.
  • Archiviazione permanente: la richiesta di autorizzazione per l'archiviazione permanente all'interno della tua applicazione web può offrire funzionalità simili a quelle dell'autorizzazione unlimitedStorage nelle app di Chrome.
  • Geolocalizzazione: in alternativa all'autorizzazione di geolocalizzazione, puoi utilizzare l'API Geolocation nelle app web per individuare la posizione di un utente.
  • Elaborazione in background:le alternative all'autorizzazione background includono l'API Background Sync e l'API Periodic Background Sync.
  • Copia negli appunti:l'API Async Clipboard ti consente di copiare e incollare testo e immagini in modo programmatico.

Estensioni di Chrome

Le applicazioni web sono l'alternativa migliore alla migrazione dalle app di Chrome, ma in alcuni casi le estensioni di Chrome possono essere un'opzione. Le estensioni, inoltre, vengono create con tecnologie web (HTML, CSS e JavaScript) e possono essere utilizzate per aggiungere o modificare le funzionalità del browser e personalizzare altre applicazioni web per una migliore esperienza utente.

Crea un'estensione autonoma

A seconda dell'esperienza utente che vuoi offrire, potrebbe avere senso convertire l'app Chrome in un'estensione. Ad esempio, puoi fornire un pulsante di azione nel browser che mostra una piccola finestra popup per l'interfaccia utente o che apre una pagina fornita dall'estensione. Questo modello di UI potrebbe essere più adatto alle app che svolgono la maggior parte del loro lavoro in background.

Collegare un'estensione di Chrome da un'applicazione web

Se la tua app Chrome offre funzionalità che non sono disponibili sulla piattaforma web, potrebbe essere possibile connettere un'estensione di Chrome a un'applicazione web e concederle l'accesso alle API di estensione.Lo svantaggio di questo approccio è che gli utenti o gli amministratori IT devono gestire due parti diverse (estensioni di applicazioni web ed estensioni companion). È importante tenere presente che le estensioni di Chrome non possono essere eseguite su alcuni browser; dovresti rilevare quando le funzionalità richieste non sono disponibili e fornire un testo esplicativo per gli utenti di questi altri browser.

Devo creare un'applicazione web o un'estensione di Chrome?

Un'applicazione web è la tecnologia preferita per la migrazione dalle app di Chrome. In alcuni casi d'uso le estensioni di Chrome possono essere una scelta migliore. Prima di decidere, analizza l'opzione migliore in base a diversi fattori:

  • Scopo: le estensioni di Chrome vengono utilizzate principalmente per estendere la funzionalità del browser. I casi d'uso comuni includono: strumenti di produttività, arricchimento di contenuti di pagine web e aggregazione di informazioni. Le applicazioni web possono avere una gamma molto più ampia di casi d'uso sfruttando tutta la potenza del web.
  • Esperienza utente: le estensioni di Chrome in genere hanno un'interfaccia utente più limitata e sono progettate per integrarsi con il browser. Le applicazioni web possono avere un'interfaccia utente completa che assomiglia a quella di un'app nativa ed è altamente personalizzabile.
  • Portabilità: le estensioni di Chrome sono specifiche di Chrome. Alcuni browser (ad esempio, Firefox ed Edge) supportano le stesse API di estensione di Chrome, ma questo supporto non è universale. Le applicazioni web sono supportate da tutti i browser (sebbene non tutte le API lo siano).
  • Rilevabilità: le estensioni di Chrome devono essere installate (ad esempio dal Chrome Web Store o tramite hosting autonomo) e devono essere accessibili tramite la barra degli strumenti del browser. Le applicazioni web possono essere caricate istantaneamente tramite un URL ed è possibile accedervi da tutti i browser. Possono essere installate facoltativamente, ma non è obbligatorio.
  • Set di funzionalità:le estensioni di Chrome hanno una profonda integrazione con Chrome, tramite le API di Chrome. Le applicazioni web potrebbero essere più limitate nelle attività di basso livello o a livello di sistema. Come spiegato in precedenza, è possibile chiamare un'estensione da un'applicazione web per avere accesso alle API di sole estensioni.
  • Operazioni in background:le estensioni di Chrome possono eseguire operazioni in background ed essere eseguite anche quando la finestra del browser è chiusa. Le applicazioni web, invece, sono generalmente progettate per essere eseguite in primo piano e hanno funzionalità in background più limitate, utilizzate principalmente per migliorare le prestazioni e l'affidabilità.

Passi per la migrazione

Migrazione delle app di Chrome

Segui questi passaggi per eseguire la migrazione da un'app di Chrome alle applicazioni web o alle estensioni di Chrome:

  1. Ambito della funzionalità dell'app. In alcuni casi l'app ti impone se devi scegliere un'applicazione web o se la tua unica scelta è creare un'estensione di Chrome. Nei casi in cui entrambi possono soddisfare le tue esigenze, hai la possibilità di scegliere. Consulta il sito Web Capabilities e il riferimento sull'API delle estensioni di Chrome per saperne di più su ciò che ogni tecnologia ha da offrire.
  2. Impara e crea: segui le risorse di apprendimento per conoscere le tecnologie e rendere la tua app operativa. La formazione su PWA e le guide introduttive delle estensioni di Chrome sono ottime risorse per iniziare a utilizzare ciascuna di queste tecnologie.
  3. Testa e distribuisci:offri la tua nuova app a una percentuale inferiore di utenti prima di un'implementazione più ampia per assicurarti che funzioni correttamente. Per una distribuzione più ampia, è possibile accedere alle applicazioni web e installarle dal browser. In genere le estensioni di Chrome vengono distribuite tramite il Chrome Web Store o in self-hosting. Gli amministratori possono forzare l'installazione di entrambe in scenari gestiti.

Eseguire la migrazione degli utenti

Indipendentemente dalla tecnologia scelta per la migrazione dalle app di Chrome, devi comunicare agli utenti di disinstallare l'app corrente e guidarli verso la nuova esperienza.

Ti consigliamo di aggiornare l'app in modo da includere un messaggio che indichi che non è più disponibile e che gli utenti devono visitare il tuo sito web o il Chrome Web Store in futuro (vedi l'esempio che segue). Puoi anche includere un pulsante "Disinstalla" che richiama il metodo uninstallSelf().

A partire da Chrome 75, il metodo installReplacementWebApp() può essere utilizzato all'interno di un'app di Chrome, in risposta a un clic su un pulsante o a un altro gesto dell'utente, per attivare automaticamente il flusso di installazione dell'applicazione web sostitutiva.

Sostituzione dell'app Chrome per Google Foto

Un'ulteriore considerazione è informare gli amministratori del browser Chrome Enterprise e di ChromeOS Enterprise di aggiornare i criteri delle app per le loro organizzazioni. In genere, per gli utenti gestiti Enterprise ed Education le app e le estensioni vengono installate forzatamente tramite criteri di gestione. Gli sviluppatori devono comunicare agli amministratori di aggiornare il criterio ExtensionInstallForcelist (utilizzato per installare le app di Chrome) e sostituirlo con il criterio WebAppInstallForceList con l'URL dell'app web.

Criterio di installazione forzata delle estensioni della Console di amministrazione e dell'app web.

Assistenza

In caso di domande tecniche, ecco alcune risorse che puoi utilizzare per ricevere assistenza: