Le funzionalità che funzionano bene come moduli on demand sono quelle che non sono necessarie alla maggior parte degli utenti al momento dell'installazione. Di seguito sono riportati alcuni esempi di funzionalità dell'app che sarebbero adatte ai moduli on demand:
- Modifica e caricamento di un video in un'app in cui la maggior parte degli utenti si limita a guardare i video
- Aggiungere una ricetta in un'app in cui la maggior parte degli utenti si limita a sfogliare e seguire le ricette di altri
- Funzionalità di guida e assistenza quando la maggior parte degli utenti non cerca assistenza o non la cerca all'interno dell'app
- Librerie di grandi dimensioni per funzionalità meno utilizzate, come l'acquisizione e la segnalazione dettagliata di bug
- Funzionalità specifiche di pagamento o checkout
- Esperienze multimediali ad altissima risoluzione o funzionalità VR/AR
Nel caso tipico in cui questi moduli sono relativamente piccoli (meno di 10 MB) e non si verificano errori di rete o di altro tipo, gli utenti possono scaricare e utilizzare un modulo on demand molto rapidamente. In altre parole, l'esperienza è in genere la stessa che si avrebbe se il modulo fosse stato presente al momento dell'installazione dell'app.
Questa pagina descrive le best practice che ti aiutano a:
- Assicurati che gli utenti siano consapevoli e sentano di avere il controllo dei download di moduli relativamente più grandi che non vengono caricati istantaneamente o degli errori di installazione dei moduli.
- Ottimizza ulteriormente l'esperienza di distribuzione dei moduli, soprattutto in situazioni in cui puoi prevedere che un utente avrà bisogno di un modulo specifico.
Dopo aver letto questa guida, scopri queste best practice in azione provando l'app di esempio della libreria di base Play.
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 l'avanzamento del download.
Puoi monitorare lo stato della richiesta per visualizzare l'avanzamento del download e lo stato dell'installazione. Tuttavia, il tipo di UI che vuoi visualizzare potrebbe dipendere dalle dimensioni del download:
- Per i moduli più piccoli (~10 MB o meno) che possono essere installati molto rapidamente, valuta la possibilità di utilizzare indicatori come rotelle o un breve messaggio "Download dei contenuti in corso".
- Per i moduli più grandi che possono richiedere alcuni secondi o più per il download e l'installazione, valuta la possibilità di mostrare una barra di avanzamento del download e dell'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 i ritardi e gli errori di installazione in modo chiaro
Se un download non va a buon fine o procede più lentamente del previsto, comunica all'utente in modo chiaro e trasparente cosa sta succedendo e cosa può fare, se possibile, 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, comunica all'utente che il suo dispositivo non supporta i download on demand.
Figura 2. Comunica all'utente il motivo per cui una funzionalità non può essere installata in questo momento.
Figura 3. Spiega all'utente perché il download di una funzionalità potrebbe richiedere più tempo del previsto.
Mostra il 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 che l'utente fornisca il proprio consenso prima di scaricarlo.
Prima di richiedere il modulo, spiega agli utenti il valore del modulo. Aiutali a capire perché stai facendo 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 che una delle funzionalità consenta agli utenti di posizionare i mobili direttamente nel loro appartamento utilizzando la realtà aumentata (AR). Potresti includere un messaggio del tipo: "Vuoi vedere il tuo nuovo divano in Living Room? Installa subito il visualizzatore di realtà aumentata."
Eseguire il download e l'installazione in background
Il download e l'installazione dei moduli devono sempre avvenire in background. In altre parole, mentre un utente attende che una funzionalità diventi disponibile, devi consentirgli di continuare a utilizzare altre parti della tua app. Inoltre, quando la funzionalità è disponibile, devi fornire una notifica che consenta all'utente di passare all'utilizzo di quella funzionalità a sua discrezione.
Come mostrato nella figura 5, l'utente continua a utilizzare l'app e riceve una notifica quando l'installazione di una funzionalità on demand è completata.
Figura 5. Anziché cambiare improvvisamente il contesto dell'utente al termine dell'installazione di un modulo, comunica all'utente che la funzionalità richiesta è pronta per l'uso.
Quando il modulo è pronto per l'uso, invia una notifica all'utente e dagli la possibilità di scegliere se lanciare la funzionalità. Questo pattern fornisce all'utente il contesto e il controllo sulla sua esperienza.
In alcuni casi, potresti lanciare la funzionalità non appena è pronta. Tuttavia, poiché potrebbe interrompere l'esperienza dell'utente, valuta attentamente se questo comportamento è previsto e appropriato.
Liberare spazio sul dispositivo quando un modulo non è più necessario
Una funzionalità utile di tutti i moduli delle funzionalità è la possibilità di disinstallarli singolarmente. Se un modulo della 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 contenuti multimediali. Dopo che un utente ha completato il flusso di onboarding o dopo che è stato un utente attivo per un determinato periodo di tempo, puoi utilizzare l'API Play Feature Delivery per richiedere a Google Play di disinstallare solo quel componente della tua app.
Suggerimenti avanzati
In genere, devi gestire le situazioni in cui l'utente segnala esplicitamente l'intenzione di utilizzare la funzionalità dei moduli delle funzionalità on demand.
Tuttavia, potresti voler prevedere quando è probabile che un utente interagisca con una funzionalità prima che ti segnali di volerla utilizzare. Prendendo come esempio un'app che consente di scaricare e creare ricette di cucina, le seguenti linee guida descrivono come ottimizzare l'esperienza di distribuzione dei moduli anticipando le esigenze degli utenti:
Anticipare la necessità di una funzionalità da parte di un utente nella sessione corrente. Ad esempio, se gli utenti devono creare un account per l'app di 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 probabilmente vorrà aggiungere la propria ricetta e iniziare a scaricare il modulo della funzionalità prima ancora che l'utente tocchi "Aggiungi ricetta". Puoi applicare questo approccio ad altri percorsi dell'utente nell'app per rendere più fluido il processo di download delle funzionalità.
Anticipare la necessità di un utente di utilizzare la funzionalità in una sessione imminente. Se non hai bisogno che la tua app scarichi e installi immediatamente un modulo on demand, puoi posticipare l'installazione a quando l'app è in background e Google Play gestirà il download e l'installazione per te. Ad esempio, immagina di voler rilasciare nuove ricette stagionali per l'app di cucina, che non sono una priorità elevata per la sessione corrente dell'utente. Puoi richiedere a Play di scaricare e installare queste ricette quando l'app è in background. Questo è 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 di un utente prima dell'installazione dell'app. Potresti voler aggiungere il supporto per la distribuzione condizionale per includere la tua funzionalità al momento dell'installazione in base al paese dell'utente, alle funzionalità hardware del dispositivo e al livello API. Ad esempio, potresti voler includere ricette che utilizzano carne di maiale nei moduli condizionali e omettere questo modulo dall'installazione dell'app nelle regioni che evitano prevalentemente i piatti a base di carne di maiale.