Le funzionalità che danno ottimi risultati in un modulo on demand sono quelle che non sono necessarie dalla maggior parte dei tuoi utenti al momento dell'installazione. Di seguito sono riportati alcuni esempi di funzionalità dell'app adatte ai moduli on demand:
- L'editing e il caricamento di video in un'app dove la maggior parte degli utenti guarda solo video
- Aggiungere una ricetta in un'app, dove la maggior parte degli utenti sfoglia e segue solo le ricette di altri
- Funzionalità di guida e supporto quando la maggior parte degli utenti non cerca aiuto o non la cerca all'interno dell'app
- Grandi librerie per le funzionalità meno utilizzate, come l'acquisizione dettagliata dei bug e la generazione di report
- Funzionalità specifiche di pagamento o pagamento
- Esperienze multimediali ad altissima risoluzione o funzionalità VR/AR
Nel caso in cui questi moduli siano relativamente piccoli (meno di 10 MB) e non ci siano errori di rete o altri errori, gli utenti possono scaricare e utilizzare un modulo on demand molto rapidamente. Questo significa che in genere l'esperienza non è diversa se il modulo fosse stato presente durante l'installazione dell'app.
In questa pagina vengono descritte le best practice che ti consentono di:
- Assicurati che i tuoi utenti siano a conoscenza e sentano di avere il controllo dei download di moduli relativamente grandi, che non vengono caricati immediatamente, o degli errori di installazione dei moduli.
- Ottimizza ulteriormente l'esperienza di pubblicazione dei moduli, soprattutto in situazioni in cui è possibile prevedere che un utente avrà bisogno di un determinato modulo.
Dopo aver letto questa guida, scopri queste best practice in azione provando l'app di esempio dell'API Play Core.
Tieni informato l'utente
Devi informare l'utente quando una funzionalità non è immediatamente disponibile. Se un utente decide di scaricare la funzionalità da Google Play, mostra lo stato di avanzamento del download.
Puoi monitorare lo stato della richiesta per visualizzare l'avanzamento del download e lo stato dell'installazione. Tuttavia, il tipo di interfaccia utente che vuoi visualizzare potrebbe dipendere dalle dimensioni del download:
- Per i moduli più piccoli (circa 10 MB o meno) che possono essere installati molto rapidamente, considera gli indicatori come le rotelline o un breve messaggio di "download dei contenuti".
- Per i moduli più grandi il cui download e l'installazione può richiedere alcuni secondi o più, valuta la possibilità di mostrare una barra di avanzamento di download e installazione, come quella mostrata nella figura 1.
Figura 1. Visualizzazione di un messaggio e di una barra di avanzamento durante il download e l'installazione di una funzionalità on demand
Comunica facilmente i ritardi e gli errori di installazione
Se un download non va a buon fine o avanza più lentamente del previsto, comunica in modo chiaro e trasparente all'utente cosa sta succedendo e cosa può fare, se del caso, come mostrato nelle figure 2 e 3. Ad esempio, se monitori lo stato della richiesta di download e la tua app riceve un errore API_NOT_AVAILABLE
, informa l'utente che il suo dispositivo non supporta i download on demand.
![](https://developer.android.com/static/studio/images/projects/dynamic-delivery/failed_download.png?authuser=8&hl=it)
Figura 2. Comunica all'utente il motivo per cui una funzionalità non può essere installata in questo momento
![](https://developer.android.com/static/studio/images/projects/dynamic-delivery/large_download.png?authuser=8&hl=it)
Figura 3. Spiega all'utente perché il download di una funzionalità potrebbe richiedere più tempo del previsto
Mostra valore prima che venga richiesta l'autorizzazione per i download di grandi dimensioni
Se un modulo on demand è di grandi dimensioni (> 150 MB), Google Play richiede il consenso dell'utente prima di scaricarlo.
Prima di richiedere il modulo, spiega il valore del modulo ai tuoi utenti. Aiutali a capire perché stai inviando questa richiesta, come faresti quando richiedi le autorizzazioni app. Comunicare apertamente con gli utenti aumenta la probabilità che accettino il download.
Ad esempio, immagina di creare un'app di e-commerce e una delle funzionalità consente agli utenti di posizionare mobili direttamente nel proprio appartamento utilizzando la realtà aumentata (AR). Potresti includere un messaggio come "Vuoi vedere il tuo nuovo divano in salotto? Installa subito il visualizzatore di realtà aumentata".
Esegui download e installazione in background
Il download e l'installazione dei moduli devono sempre avvenire in background. In altre parole, mentre un utente è in attesa che una funzionalità diventi disponibile, devi consentirgli di continuare a utilizzare altre parti della tua app. Inoltre, quando la funzionalità sarà disponibile, dovresti fornire una notifica che consenta all'utente di passare all'utilizzo della funzionalità a sua discrezione.
Come mostrato nella Figura 5, l'utente continua a utilizzare l'app e riceve una notifica al termine dell'installazione di una funzionalità on demand.
Figura 5. Anziché modificare improvvisamente il contesto dell'utente quando l'installazione di un modulo è completa, informa l'utente che la funzionalità richiesta è pronta.
Quando il modulo è pronto per l'uso, informa l'utente e offrigli la possibilità di scegliere se avviare o meno la funzionalità. Questo pattern fornisce all'utente contesto e controllo sulla sua esperienza.
In alcuni casi, puoi lanciare la funzionalità non appena è pronta. Tuttavia, poiché potrebbe interrompere l'esperienza dell'utente, valuta attentamente se questo comportamento è previsto e appropriato.
Liberare spazio di archiviazione sul dispositivo quando un modulo non è più necessario
Una funzionalità utile di tutti i moduli delle caratteristiche è la possibilità di disinstallarli singolarmente. Se un modulo delle funzionalità non viene più utilizzato, puoi ridurre le dimensioni della tua app sul dispositivo di un utente chiedendo a Google Play di disinstallare il modulo.
Ad esempio, la tua app potrebbe avere un flusso di onboarding efficace, magari contenente rich media. Dopo che un utente ha completato il flusso di onboarding o dopo che sono diventati utenti attivi per un determinato periodo di tempo, puoi utilizzare l'API Play Feature Delivery per richiedere la disinstallazione di Google Play solo del componente della tua app.
Tieni presente che puoi anche disinstallare in un secondo momento i moduli che includi al momento dell'installazione iniziale dell'app. Ad esempio, un modulo che forma i nuovi utenti su come utilizzare la tua app è importante quando gli utenti la utilizzano per la prima volta. Tuttavia, per ridurre le dimensioni dell'app, puoi disinstallarla al termine della formazione.
Suggerimenti di livello avanzato
In genere, devi gestire situazioni in cui l'utente indica esplicitamente di voler usare la funzionalità dei tuoi moduli delle funzionalità on demand.
Tuttavia, potresti voler prevedere quando è probabile che un utente interagisca con una funzionalità prima che ti segnali che vuole utilizzarla. Se utilizzi un'app che ti consente, ad esempio, di scaricare e creare ricette di cucina, le seguenti linee guida descrivono come ottimizzare l'esperienza di consegna dei moduli prevedendo le esigenze degli utenti.
Anticipa la necessità di una funzionalità da parte di un utente nella sessione corrente. Valuta se gli utenti devono creare un account per l'app delle ricette solo quando vogliono creare e condividere le proprie ricette con la community. Puoi utilizzare la creazione dell'account come indicatore del fatto che l'utente potrebbe voler aggiungere la propria ricetta e iniziare a scaricare il modulo delle funzionalità prima ancora che l'utente tocchi "Aggiungi ricetta". Puoi applicare questo approccio ad altri percorsi degli utenti nell'app per rendere più fluida la procedura di download delle funzionalità.
Prevedi la necessità di questa funzionalità da parte degli utenti nella prossima sessione. Se non hai bisogno che la tua app scarichi e installi immediatamente un modulo on demand, puoi posticipare l'installazione quando l'app è in background e Google Play gestirà il download e l'installazione per te. Ad esempio, immagina di voler pubblicare nuove ricette stagionali per l'app di cucina, che non sono una priorità elevata per la sessione corrente dell'utente. Puoi chiedere a Google Play di scaricare e installare queste ricette quando l'app è in background. Ciò è particolarmente utile per le funzionalità più grandi (> 10 MB) che non sono necessarie immediatamente, ma che probabilmente lo saranno in futuro.
Anticipa la necessità di una funzionalità da parte dell'utente prima dell'installazione dell'app. Ti consigliamo di aggiungere il supporto per la pubblicazione condizionale in modo da includere la funzionalità al momento dell'installazione in base al paese dell'utente, alle funzionalità hardware del dispositivo e al livello API. Ad esempio, potresti includere ricette che utilizzano la carne di maiale in moduli condizionali e omettere questo modulo dall'installazione di app nelle regioni in cui si evitano prevalentemente piatti a base di carne di maiale.