Monzo améliore ses métriques de performances jusqu'à 35% grâce à une simple mise à jour R8
Temps de lecture : 2 min
Monzo est une banque numérique britannique qui compte 15 millions de clients et dont le nombre ne cesse d'augmenter. Au fur et à mesure que l'application évoluait, l'équipe d'ingénieurs a identifié le temps de démarrage de l'application comme un domaine essentiel à améliorer, mais craignait que cela ne nécessite des modifications importantes de sa base de code.
En activant pleinement les optimisations R8, Monzo a réussi à réduire considérablement son taux d'erreurs « L'application ne répond pas » (ANR) de 35 %. Ce simple changement a prouvé que les optimisations efficaces ne nécessitent pas toujours d'efforts d'ingénierie complexes.
Des gains de performances importants grâce au mode complet R8
Monzo a identifié le mode complet R8 comme une solution simple à essayer. Cela a fonctionné et a amélioré les performances de manière générale :
- Fiabilité du démarrage : les démarrages à froid ont été améliorés de 30%, les démarrages à chaud de 24 % et les démarrages à chaud de 14%.
- Vitesse de lancement : les temps de lancement P50 ont été améliorés de 11% et les temps de lancement P90 de 12%.
- Efficacité : la taille globale de l'application a été réduite de 9%.
- Stabilité : réduction des erreurs ANR de 35%.
Activer les optimisations en une seule modification
De nombreuses applications Android utilisent un fichier de configuration par défaut obsolète qui désactive la plupart des fonctionnalités de l'optimiseur R8. La principale modification apportée par Monzo pour améliorer les performances a consisté à remplacer le fichier par défaut proguard-android.txt par proguard-android-optimize.txt. Cette modification supprime l'instruction -dontoptimize et permet à R8 de fonctionner correctement.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}Après avoir apporté cette modification, il est intéressant d'examiner vos fichiers de configuration Keep. Ces fichiers indiquent à R8 les parties de votre code à laisser telles quelles (généralement parce qu'elles sont appelées de manière dynamique ou par des bibliothèques externes). En simplifiant les règles Keep inutiles, R8 peut en faire plus.
Améliorer les performances de défilement avec les profils de référence
Pour améliorer encore l'expérience utilisateur, Monzo a implémenté des profils de référence, en ciblant spécifiquement les performances de défilement et de rendu dans son flux principal. Cette stratégie a permis de s'assurer que les parcours utilisateur les plus courants (ouverture de l'application et défilement du flux) étaient entièrement optimisés. L'impact sur le rendu a été considérable : les performances de défilement P90 ont été 71% plus rapides et les performances de défilement P95 ont été améliorées de 87%. Le défilement dans l'application est désormais plus fluide qu'auparavant.
Monzo a intégré cette fonctionnalité à son processus de publication afin de maintenir ces améliorations au fil du temps. "Nous déclenchons la génération de profils de référence tous les jours de la semaine (avant d'exécuter nos builds nocturnes) et nous validons les dernières modifications une fois qu'elles sont terminées", explique Neumayer.
Se tenir au courant du développement Android moderne
L'expérience de Monzo montre ce qu'il est possible de faire lorsque vous vous tenez au courant des recommandations concernant les outils de compilation Android. Alors que les applications héritées ont souvent du mal à utiliser la réflexion complexe, Monzo a trouvé la transition simple en documentant correctement ses règles Keep. "Nous ajoutons toujours un commentaire expliquant pourquoi les règles Keep sont en place, afin de savoir quand il est possible de les supprimer", note Neumayer.
Le conseil de Neumayer aux autres équipes ? Vérifiez régulièrement vos pratiques par rapport aux normes actuelles : "Consultez les dernières recommandations de Google concernant les performances des applications et vérifiez si vous suivez tous les derniers conseils."
Pour commencer et en savoir plus sur R8, accédez à https://d.android.com/r8.
-
Études de casKarrot est une application de marketplace peer-to-peer hyperlocale et communautaire qui permet aux utilisateurs d'acheter, de vendre et d'échanger des articles avec d'autres utilisateurs validés. Depuis son lancement en Corée du Sud en 2015, la plate-forme s'est étendue aux marchés mondiaux et compte plus de 43 millions d'utilisateurs inscrits.
Thomas Ezan, Tracy Agyemang • Temps de lecture : 2 min -
Études de casDans le monde dynamique des réseaux sociaux, l'attention des utilisateurs est rapidement gagnée ou perdue. Les applications Meta (Facebook et Instagram) font partie des plus grandes plates-formes sociales au monde et desservent des milliards d'utilisateurs dans le monde entier.
Mayuri Khinvasara Khabya, Tracy Agyemang • Temps de lecture : 4 min -
Études de casLorsque vous créez une application Android pour un accessoire connecté, le véritable travail commence lorsque l'écran s'éteint.
Breana Tate, Tracy Agyemang • Temps de lecture : 4 min
Recevez chaque semaine les dernières informations sur le développement Android dans votre boîte de réception.