Stratégies de chargement de Firebase Remote Config

Firebase Remote Config offre une grande flexibilité quant à la manière et au moment d'extraire de nouvelles valeurs du serveur et de les activer dans votre application. Vous pouvez ainsi garantir une expérience utilisateur de qualité en contrôlant le moment où les modifications de configuration visibles sont effectuées. Vous pouvez extraire de nouvelles valeurs au lancement de l'application à l'aide de fetchAndActivate() et utiliser Remote Config en temps réelRemote Config comme méthode complémentaire pour extraire automatiquement les dernières valeurs de paramètre après la publication d'une nouvelle version de Remote ConfigRemote Config.

Ce guide présente quelques stratégies de chargement et aborde les points clés à prendre en compte pour choisir la meilleure option pour votre application.

Stratégie 1 : Extraire et activer au chargement

Dans cette stratégie, votre application appelle fetchAndActivate() lors de son premier démarrage pour extraire de nouvelles valeurs de Remote Config et les activer dès qu'elles sont chargées. Cette approche simple est adaptée aux modifications de configuration qui n'entraînent pas de changements visuels importants dans votre interface utilisateur. Elle doit être évitée dans toutes les situations où votre interface utilisateur pourrait changer de manière notable pendant que les utilisateurs l'utilisent.

Une fois que votre application appelle fetchAndActivate(), elle peut commencer à écouter les mises à jour des valeurs de paramètre en temps réel en appelant addOnConfigUpdateListener. Cette méthode commence à écouter toutes les mises à jour côté serveur des valeurs de paramètre, les extrait automatiquement, puis appelle l'écouteur. Une stratégie simple consiste à activer les nouvelles valeurs dans l'écouteur. Toutefois, comme mentionné pour fetchAndActivate(), l'activation immédiate doit être évitée pour les interfaces utilisateur sensibles.

Stratégie 2 : Activer derrière l'écran de chargement

Pour résoudre le problème potentiel d'interface utilisateur rencontré dans la stratégie 1, vous pouvez utiliser un écran de chargement. Au lieu de démarrer votre application immédiatement, affichez un écran de chargement et appelez fetchAndActivate dans votre gestionnaire de finalisation. Ensuite, juste après, à l'aide d'un rappel ou d'une notification, fermez l'écran de chargement et autorisez l'utilisateur à commencer à interagir avec votre application.

Si vous utilisez cette stratégie, il est recommandé d'ajouter un délai d'inactivité à l'écran de chargement. Le délai d'inactivité d'une minute de Remote Config peut être trop long pour une expérience de démarrage d'application de qualité pour les utilisateurs.

L'écoute des mises à jour Remote Config en temps réel en appelant addOnConfigUpdateListener fonctionne bien avec cette stratégie. Ajoutez l'écouteur lorsque l'écran de chargement s'affiche, puis utilisez activate() à un ou plusieurs endroits de votre application où les valeurs Remote Config n'entraîneront pas de changements visuels importants.

Stratégie 3 : Charger de nouvelles valeurs pour le prochain démarrage

Une stratégie efficace consiste à charger de nouvelles valeurs de configuration à activer lors du prochain démarrage de votre application. Dans cette stratégie, votre application active les valeurs extraites au démarrage avant de tenter d'en extraire de nouvelles, en partant du principe qu'elle a peut-être déjà extrait de nouvelles valeurs de configuration, mais ne les a pas encore activées. L'ordre des opérations pour cette stratégie est le suivant :

  1. Au démarrage, activez immédiatement les valeurs précédemment extraites. Cela applique toutes les valeurs que vous avez téléchargées depuis le serveur lors d'une session précédente, et est presque instantané.
  2. Pendant que l'utilisateur interagit avec votre application, lancez un appel asynchrone pour extraire de nouvelles valeurs en fonction de l'intervalle d'extraction minimal par défaut et ajoutez un écouteur de mise à jour de configuration en temps réel. L'écouteur en temps réel extrait automatiquement toutes les valeurs publiées sur le serveur pendant l'exécution de votre application. Les mises à jour en temps réel contournent le paramètre d'intervalle d'extraction minimal.
  3. Dans le gestionnaire de finalisation ou le rappel de l'appel d'extraction, ne faites rien. Votre application conserve les valeurs téléchargées jusqu'à ce que vous les activiez au prochain démarrage de l'application.

Avec cette stratégie, le temps d'attente de l'utilisateur est considérablement réduit. La combinaison des stratégies d'extraction et d'écouteur en temps réel avec des appels activate() selon les besoins dans le cycle de vie de l'application permet de s'assurer que les utilisateurs disposent des dernières valeurs de Remote Config lorsqu'ils interagissent avec votre application.

Stratégies de chargement à éviter

Comme vous l'avez peut-être compris d'après la discussion ci-dessus sur les avantages et les inconvénients du chargement, il existe quelques modèles d'utilisation à éviter.

  • Ne modifiez pas ni ne changez aucun aspect de l'interface utilisateur pendant que l'utilisateur la consulte ou interagit avec elle, sauf si vous avez de bonnes raisons d'application ou commerciales de le faire, par exemple pour supprimer des options liées à une promotion qui vient de se terminer.
  • N'envoyez pas un grand nombre de requêtes d'extraction simultanées, car le serveur pourrait limiter votre application. Si vous devez extraire des mises à jour fréquemment, utilisez en temps réel Remote Config. Bien que le risque de limitation soit faible dans la plupart des scénarios de production, il peut s'avérer problématique lors du développement actif. Remote Config en temps réel est conçu pour ce cas d'utilisation. Consultez les consignes de limitation.
  • Ne comptez pas sur la connectivité réseau pour obtenir les valeurs Remote Config. Définissez des valeurs de paramètre par défaut dans l'application afin que votre application se comporte toujours comme prévu. Vous pouvez synchroniser régulièrement les valeurs par défaut de l'application et du backend Remote Configà l'aide des valeurs par défaut du modèle téléchargé.

Étapes suivantes

Ces trois stratégies de base ne constituent en aucun cas une liste complète des méthodes de chargement des valeurs de configuration. En fonction de vos besoins, vous pouvez concevoir des stratégies beaucoup plus sophistiquées.

Consultez la documentation de référence de l'API pour votre plate-forme afin d'en savoir plus sur les appels spécifiques permettant d'extraire et d'activer les valeurs de configuration.