Jetpack Compose ofrece un rendimiento excelente de inmediato. Configura tu app con las prácticas recomendadas para evitar errores comunes y optimizar el rendimiento de tu aplicación de Compose.
Comparativas de Jetpack Compose
Para validar el rendimiento de Jetpack Compose en comparación con Views, usamos comparativas de héroes, que se enfocan en recorridos importantes y reales del usuario, como iniciar una app en frío o desplazarse por una lista o cuadrícula con imágenes. Realizamos estas comparativas con la app de Pokedex de código abierto, comparando sus implementaciones de Views y Compose.
Estos comparativos muestran que Compose 1.9 y versiones posteriores igualan el rendimiento de Views en cuanto a tirones durante el desplazamiento.
Para obtener más métricas y conocer nuestras metodologías, consulta Comparativas de Hero.
Conceptos clave
Estos son algunos de los conceptos clave para el rendimiento en Compose:
- Fases: Comprender las fases de composición, diseño y dibujo es fundamental para optimizar la forma en que Compose actualiza tu IU.
- Perfiles de Baseline: Estos perfiles precompilan código esencial, lo que permite que la app se inicie más rápido y que las interacciones sean más fluidas.
- Estabilidad: Aumenta la estabilidad de tu app para omitir de manera más eficiente las recomposiciones innecesarias y mejorar el rendimiento.
Configura tu app de forma correcta
Si el rendimiento de tu app es deficiente, es posible que haya un problema de configuración. Un buen primer paso es revisar las siguientes opciones de configuración:
- Compila en modo de lanzamiento con R8: Intenta ejecutar tu app en modo de lanzamiento. El modo de depuración es útil para detectar muchos problemas, pero implica un costo de rendimiento y puede dificultar la detección de otros problemas. También debes habilitar la optimización y la reducción con el compilador R8 para garantizar una compilación de lanzamiento eficiente y con buen rendimiento.
- Usa perfiles de Baseline: Los perfiles de Baseline mejoran el rendimiento, ya que precompilan el código para los recorridos críticos del usuario. Compose incluye un perfil predeterminado, pero, idealmente, también deberías crear uno específico para la app. Obtén más información sobre los perfiles de Baseline en la documentación general sobre el rendimiento de Android
Herramientas
Familiarízate con el paquete de herramientas disponibles para ayudarte a medir y analizar el rendimiento de tu app de Compose.
Prácticas recomendadas
Cuando desarrolles tu app con Compose, ten en cuenta estas prácticas recomendadas:
- Evita los cálculos costosos: Usa
rememberpara almacenar en caché los resultados de los cálculos costosos. - Ayuda a los diseños diferidos: Proporciona claves estables a los diseños diferidos con el parámetro
keypara minimizar las recomposiciones innecesarias. - Limita las recomposiciones innecesarias: Usa
derivedStateOfpara limitar las recomposiciones cuando el estado cambia rápidamente. - Aplazar las lecturas de estado: Aplaza las lecturas de estado el mayor tiempo posible envolviéndolas en funciones lambda.
- Usa modificadores lambda para cambiar el estado: Usa modificadores basados en lambda, como
Modifier.offset { ... }, para las variables de estado que cambian con frecuencia. - Evita las escrituras hacia atrás: Nunca escribas en un estado que ya se haya leído en un elemento componible.
Para obtener más detalles, consulta la guía de prácticas recomendadas.
Vistas
Si trabajas con vistas en lugar de Compose, consulta la guía específica para mejorar el rendimiento del diseño.
Recursos adicionales
- Guía de rendimiento de la app: Descubre las prácticas recomendadas, las bibliotecas y las herramientas para mejorar el rendimiento en Android.
- Inspeccionar el rendimiento: Inspecciona el rendimiento de la app.
- Comparativas: Compara el rendimiento de la app.
- Inicio de la app: Optimiza el inicio de la app.
- Perfiles de Baseline: Comprende los perfiles de Baseline.