Les fonctionnalités qui conviennent particulièrement aux modules à la demande sont celles dont la majorité des utilisateurs n'ont pas besoin au moment de l'installation. Vous trouverez ci-dessous quelques exemples de fonctionnalités d'applications adaptées aux modules à la demande :
- Édition et mise en ligne d'une vidéo dans une application où la majorité des utilisateurs ne regardent que des vidéos
- Ajout d'une recette dans une application où la plupart des utilisateurs ne parcourent et ne suivent que les recettes des autres
- Fonctionnalités d'assistance lorsque la plupart des utilisateurs ne cherchent pas d'aide ou ne la recherchent pas dans l'application
- Grandes bibliothèques pour des fonctionnalités moins utilisées, telles que la capture de bugs et la création de rapports détaillés
- Fonctionnalités de paiement ou de règlement spécifiques
- Expériences multimédias ou fonctionnalités RV/RA très haute résolution
Dans le cas typique où la taille de ces modules est limitée (moins de 10 Mo) et où il n'y a pas de panne réseau ni d'autres défaillances, les utilisateurs peuvent télécharger et utiliser un module à la demande très rapidement. En d'autres termes, l'expérience reste la même que si le module était présent lors de l'installation de l'application.
Cette page décrit les bonnes pratiques qui vous aideront à atteindre les objectifs suivants :
- Assurez-vous que vos utilisateurs soient conscients des téléchargements de modules relativement volumineux qui ne se chargent pas instantanément, ou des erreurs d'installation de module, et qu'ils sachent quoi faire.
- Optimisez l'expérience de livraison des modules, en particulier dans les situations où vous prévoyez qu'un utilisateur aura besoin d'un module particulier.
Une fois que vous aurez lu ce guide, testez ces bonnes pratiques en testant l'application exemple de l'API Play Core.
L'information est clé
Vous devez informer l'utilisateur lorsqu'une fonctionnalité n'est pas disponible immédiatement. Si un utilisateur décide de télécharger la fonctionnalité depuis Google Play, affichez la progression du téléchargement.
Vous pouvez surveiller l'état de la requête afin d'afficher l'état du téléchargement et de l'installation. Toutefois, le type d'interface utilisateur que vous souhaitez afficher peut dépendre de la taille du téléchargement :
- Pour les modules de petite taille (d'environ 10 Mo ou moins) qui peuvent être installés très rapidement, envisagez d'utiliser des indicateurs tels que des icônes de chargement ou un court message ("Téléchargement en cours", par exemple).
- Pour les modules plus volumineux dont le téléchargement et l'installation peuvent prendre quelques secondes ou plus, envisagez d'afficher une barre de progression du téléchargement et de l'installation, comme celle illustrée à la figure 1.
Figure 1 : Affichage d'un message et d'une barre de progression lors du téléchargement et de l'installation d'une fonctionnalité à la demande.
Communiquer au mieux les retards et les échecs d'installation
Si un téléchargement échoue ou progresse lentement, vous devez indiquer clairement et de manière transparente à l'utilisateur ce qui se passe et, le cas échéant, ce qu'il peut faire pour résoudre le problème, comme illustré dans les figures 2 et 3. Par exemple, si vous surveillez l'état de la requête de téléchargement et que votre application reçoit une erreur API_NOT_AVAILABLE
, informez l'utilisateur que son appareil n'est pas compatible avec les téléchargements à la demande.
![](https://developer.android.google.cn/static/studio/images/projects/dynamic-delivery/failed_download.png?authuser=9&hl=fr)
Figure 2. Notification indiquant à l'utilisateur pourquoi une fonctionnalité ne peut pas être installée pour le moment
![](https://developer.android.google.cn/static/studio/images/projects/dynamic-delivery/large_download.png?authuser=9&hl=fr)
Figure 3. Notification expliquant à l'utilisateur pourquoi une fonctionnalité prend plus de temps que prévu
Mettre en avant la valeur ajoutée d'un module avant de demander une autorisation pour les téléchargements volumineux
Si un module à la demande est volumineux (plus de 150 Mo), Google Play exige que l'utilisateur donne d'abord son consentement avant de le télécharger.
Avant de lancer le téléchargement du module, expliquez-en la valeur ajoutée à vos utilisateurs. Aidez-les à comprendre pourquoi vous leur demandez leur autorisation, comme vous le feriez avec des autorisations d'application classiques. En communiquant ouvertement avec les utilisateurs, vous augmentez la probabilité qu'ils acceptent le téléchargement.
Par exemple, imaginez que vous développiez une application d'e-commerce et que l'une des fonctionnalités permette aux utilisateurs de positionner des meubles directement dans leur appartement en réalité augmentée (RA). Vous pouvez inclure le message suivant : "Souhaitez-vous voir ce à quoi ressemblerait votre nouveau canapé dans votre salon ? Installez sans attendre la visionneuse de réalité augmentée."
Effectuer le téléchargement et l'installation en arrière-plan
Le téléchargement et l'installation du module doivent toujours avoir lieu en arrière-plan. Autrement dit, lorsqu'un utilisateur attend qu'une fonctionnalité soit disponible, vous devez lui permettre de continuer à utiliser les autres parties de votre application. Lorsque la fonctionnalité sera disponible, affichez une notification afin que l'utilisateur sache qu'il peut commencer à utiliser cette fonctionnalité à tout moment.
Comme illustré à la figure 5, l'utilisateur continue d'utiliser l'application et reçoit une notification lorsque l'installation d'une fonctionnalité à la demande est terminée.
Figure 5. Plutôt que de modifier soudainement l'environnement de l'utilisateur à la fin de l'installation d'un module, informez-le que la fonctionnalité demandée est disponible.
Lorsque le module est prêt à l'emploi, avisez l'utilisateur et donnez-lui la possibilité de lancer la fonctionnalité. Ce modèle fournit à l'utilisateur des informations contextuelles tout en lui laissant la liberté de choisir quand utiliser la nouvelle fonctionnalité.
Dans certains cas, vous pouvez lancer la fonctionnalité dès qu'elle est prête. Toutefois, comme cela pourrait perturber l'expérience utilisateur, veillez à ce que ce comportement soit complètement justifié et approprié.
Libérer de l'espace de stockage sur l'appareil lorsqu'un module n'est plus nécessaire
Tous les modules de fonctionnalités peuvent être désinstallés individuellement. Si un module de fonctionnalité n'est plus utilisé, vous pouvez réduire la taille de votre application sur l'appareil d'un utilisateur en demandant à Google Play de désinstaller ce module.
Par exemple, votre application peut inclure un processus d'acceptation, contenant peut-être du contenu rich media. Une fois qu'un utilisateur a terminé ce processus ou qu'il est actif depuis un certain temps, vous pouvez utiliser l'API Play Feature Delivery pour demander à Google Play de désinstaller uniquement ce composant de votre application.
N'oubliez pas que vous pouvez également désinstaller les modules que vous incluez lors de l'installation initiale de l'application. Par exemple, un module qui forme les nouveaux utilisateurs à l'utilisation de votre application présente un intérêt lorsqu'ils se familiarisent avec elle. Toutefois, pour réduire la taille de l'application, vous pouvez la désinstaller une fois la prise en main terminée.
Conseils avancés
En règle générale, c'est à vous de gérer les situations dans lesquelles l'utilisateur indique explicitement qu'il souhaite utiliser les fonctionnalités de vos modules à la demande.
Toutefois, il peut être utile de prédire le moment où un utilisateur est susceptible de recourir à une fonctionnalité avant même qu'il ne vous signale son désir de l'utiliser. Prenons l'exemple d'une application qui vous permet de télécharger et de créer des recettes de cuisine. Les consignes suivantes décrivent comment optimiser l'expérience de livraison de modules en anticipant les besoins des utilisateurs.
Anticipez la fonctionnalité dont l'utilisateur aura besoin dans la session en cours. Imaginons que les utilisateurs ne doivent créer un compte pour l'application de recettes que s'ils veulent créer et partager leurs propres recettes avec la communauté. Vous pouvez utiliser l'opération de création du compte comme signal confirmant que l'utilisateur a de grandes chances de vouloir ajouter sa propre recette. Dans ce cas, vous pouvez commencer à télécharger le module de fonctionnalité avant même qu'il n'appuie sur l'option "Ajouter une recette". Vous pouvez appliquer cette approche à d'autres parcours utilisateur de l'application afin de simplifier le téléchargement des fonctionnalités.
Anticipez la fonctionnalité dont l'utilisateur aura besoin dans une session à venir. Si vous n'avez pas besoin que votre application télécharge et installe immédiatement un module à la demande, vous pouvez différer l'installation lorsque l'application est en arrière-plan. Google Play se chargera alors du téléchargement et de l'installation pour vous. Imaginez que vous souhaitiez publier de nouvelles recettes de saison pour l'application de cuisine, mais qu'elles ne présentent pas une priorité pour la session en cours de l'utilisateur. Vous pouvez demander à Play de télécharger et d'installer ces recettes lorsque l'application sera exécutée en arrière-plan. Cela est particulièrement utile pour les fonctionnalités volumineuses (de plus de 10 Mo) qui ne sont pas nécessaires immédiatement, mais qui le seront probablement à l'avenir.
Anticipez la fonctionnalité dont l'utilisateur aura besoin avant l'installation de l'application. Vous souhaitez peut-être ajouter la distribution conditionnelle afin d'inclure votre fonctionnalité au moment de l'installation en fonction du pays de l'utilisateur, de la fonctionnalité matérielle de l'appareil et du niveau d'API. Par exemple, vous pouvez inclure les recettes à base de porc dans un module conditionnel et ne pas proposer l'installation de ce module dans les régions qui ne consomment généralement pas ce produit.