Jetpack Compose ofrece un rendimiento excelente listo para usar. Configura tu app siguiendo las prácticas recomendadas para evitar dificultades comunes y optimizar el rendimiento de tu aplicación de Compose.
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 compilan previamente el código esencial, lo que permite iniciar apps más rápido y generar interacciones más fluidas.
- Estabilidad: Aumenta la estabilidad de la app para omitir de manera más eficiente las recomposiciones innecesarias, lo que mejora 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 verificar las siguientes opciones de configuración:
- Compila en modo de lanzamiento con R8: Intenta ejecutar tu app en el 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 deberías habilitar la optimización y la reducción con el compilador R8 para garantizar una compilación de lanzamiento eficaz y eficiente.
- Usa perfiles de Baseline: Los perfiles de Baseline mejoran el rendimiento a través de la compilación previa del código para los recorridos críticos del usuario. Compose incluye un perfil predeterminado, pero lo ideal es que también deberías crear uno específico para la app. Más información sobre los perfiles de Baseline en los documentos generales de 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
remember
para almacenar en caché los resultados de cálculos costosos. - Ayuda a los diseños diferidos: Proporciona claves estables a los diseños diferidos con el parámetro
key
para minimizar las recomposiciones innecesarias. - Limita las recomposiciones innecesarias: Usa
derivedStateOf
para limitar las recomposiciones cuando el estado cambie con rapidez. - Aplaza las lecturas de estado: Difiere las lecturas de estado el mayor tiempo posible uniéndolas en funciones lambda.
- Usa modificadores lambda para cambiar el estado: Usa modificadores basados en lambda, como
Modifier.offset { ... }
, para cambiar con frecuencia las variables de estado. - Evita las escrituras hacia atrás: Nunca escribas en el estado que ya se leyó en un elemento componible.
Para obtener más detalles, consulta la guía de prácticas recomendadas.
promedio
Si trabajas con vistas en lugar de Compose, consulta la guía dedicada Cómo mejorar el rendimiento del diseño.
Recursos adicionales
- Guía de rendimiento de la app: Descubre prácticas recomendadas, bibliotecas y herramientas para mejorar el rendimiento en Android.
- Inspeccionar el rendimiento: Inspecciona el rendimiento de la app.
- Comparativas: Haz comparativas del rendimiento de la app.
- Inicio de la app: Optimiza el inicio de la app.
- Perfiles de Baseline: Información sobre los perfiles de Baseline.