Casos de éxito
Monzo aumenta las métricas de rendimiento hasta en un 35% con una simple actualización de R8
Lectura de 2 min
Monzo es un banco digital del Reino Unido con 15 millones de clientes y en crecimiento. A medida que la app crecía, el equipo de ingeniería identificó el tiempo de inicio de la app como un área crítica para mejorar, pero le preocupaba que requiriera cambios significativos en su código base.
Al habilitar por completo las optimizaciones de R8, Monzo logró una reducción masiva del 35% en su tasa de errores de "Aplicación no responde" (ANR). Este simple cambio demostró que las optimizaciones eficaces no siempre requieren esfuerzos de ingeniería complejos.
Cómo obtener grandes logros de rendimiento con el modo completo de R8
Monzo identificó el modo completo de R8 como una solución sencilla que valía la pena probar, y funcionó, ya que mejoró el rendimiento en general:
- Confiabilidad del inicio: Los inicios en frío mejoraron un 30%, los inicios semicalientes, un 24%, y los inicios en caliente, un 14%.
- Velocidad de lanzamiento: Los tiempos de lanzamiento del percentil 50 mejoraron en un 11% y los del percentil 90, en un 12%.
- Eficiencia: El tamaño general de la app se redujo en un 9%.
- Estabilidad: Reducción de ANR en un 35%.
Cómo habilitar optimizaciones con un solo cambio
Muchas apps para Android usan un archivo de configuración predeterminado desactualizado que inhabilita la mayoría de las funciones del optimizador R8. El principal cambio que realizó Monzo para desbloquear estas mejoras de rendimiento fue reemplazar el archivo predeterminado proguard-android.txt por proguard-android-optimize.txt. Este cambio quita la instrucción -dontoptimize y permite que R8 haga su trabajo correctamente.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}
Después de realizar este cambio, vale la pena que revises tus archivos de configuración de Keep. Estos archivos le indican a R8 qué partes del código debe dejar intactas (por lo general, porque se llaman de forma dinámica o mediante bibliotecas externas). Limpiar las reglas de Keep innecesarias significa que R8 puede hacer más.
Cómo mejorar el rendimiento del desplazamiento con los perfiles de Baseline
Para mejorar aún más la experiencia del usuario, Monzo implementó perfiles de Baseline, que se enfocan específicamente en el rendimiento de desplazamiento y renderización en su feed principal. Esta estrategia garantizó que los recorridos del usuario más comunes (abrir la app y desplazarse por el feed) estuvieran completamente optimizados. El impacto en la renderización fue considerable: el rendimiento de desplazamiento de P90 se aceleró en un 71%, y el rendimiento de desplazamiento de P95 mejoró en un 87%. Ahora, desplazarse por la app es más fluido que antes.
Monzo incorporó esta mejora en su proceso de lanzamiento para mantenerla a lo largo del tiempo. "Activamos la generación del perfil de Baseline todos los días de la semana (antes de ejecutar nuestras compilaciones nocturnas) y confirmamos los cambios más recientes una vez que se completan", explica Neumayer.
Mantente al día con el desarrollo moderno de Android
La experiencia de Monzo muestra lo que es posible cuando te mantienes al día con las recomendaciones de las herramientas de compilación de Android. Si bien las apps heredadas suelen tener problemas con el uso complejo de la reflexión, Monzo descubrió que la transición era sencilla porque documentó sus reglas de conservación de forma adecuada. "Siempre agregamos un comentario en el que explicamos por qué se aplican las reglas de conservación, de modo que sabemos cuándo es seguro quitarlas", señala Neumayer.
¿Qué consejo le daría Neumayer a otros equipos? Revisa periódicamente tus prácticas en comparación con los estándares actuales: "Consulta las recomendaciones más recientes de Google sobre el rendimiento de las apps y verifica si sigues todos los consejos más recientes".
Para comenzar y obtener más información sobre R8, visita https://d.android.com/r8.
Seguir leyendo
-
Casos de éxito
Karrot es una app de mercado hiperlocal y basada en la comunidad que permite a los usuarios comprar, vender y canjear artículos con otros usuarios verificados. Desde su lanzamiento en Corea del Sur en 2015, la plataforma se expandió a los mercados globales y acumuló más de 43 millones de usuarios registrados.
Thomas Ezan, Tracy Agyemang • Lectura de 2 min
-
Casos de éxito
En el mundo dinámico de las redes sociales, la atención de los usuarios se gana o se pierde rápidamente. Las apps de Meta (Facebook e Instagram) se encuentran entre las plataformas sociales más grandes del mundo y atienden a miles de millones de usuarios a nivel global.
Mayuri Khinvasara Khabya, Tracy Agyemang • Lectura de 4 min
-
Casos de éxito
Compilar una app para Android para un wearable significa que el trabajo real comienza cuando se apaga la pantalla.
Breana Tate, Tracy Agyemang • Lectura de 4 min
Mantente al día
Recibe la información más reciente sobre el desarrollo de Android en tu bandeja de entrada todas las semanas.