7 cosas molestas sobre Jetpack ComposePor sinasamaki | Abr 2022

Errores molestos y funciones faltantes que he encontrado personalmente al migrar aplicaciones heredadas a tiempo completo para componer.

Jetpack Compose es posiblemente una de las innovaciones más emocionantes en el desarrollo de Android. El anticuado sistema de interfaz de usuario XML le ha dado un soplo de aire fresco con muchas mejoras.
Además de eso, también está creciendo a un ritmo asombroso. Ha pasado casi un año desde que se estabilizó y varios equipos lo están adoptando. Pero no todo es perfecto. Jetpack componer todavía tiene algunas áreas que no están completamente maduras o sin explotar. En este artículo, hablaré sobre algunos errores molestos y funciones faltantes que encontré al migrar una aplicación heredada para componer a tiempo completo, así como algunos de mis propios proyectos paralelos.
En Android Studio, podemos configurar una vista previa para ver nuestro diseño implementado en composición. Pero en términos de rendimiento, esta vista previa está muy lejos de la anterior vista previa de XML. Los cambios no son inmediatamente visibles en la pantalla y requieren una reconstrucción para verlos. Pero con el tiempo, aparecerá la vista previa de redacción y probablemente superará la vista previa de XML. Actualizado recientemente para habilitar la interactividad y las animaciones de vista previa.
Dependiendo de cuándo comenzó a usar componer, encontrará menos bibliotecas de interfaz de usuario de las que usamos normalmente. Terminé creando soluciones personalizadas para algunos problemas comunes (en el lado positivo, esto me dio más experiencia escribiendo componibles). Por supuesto, esto es de esperar ya que componer es todavía relativamente joven.
El rendimiento es una parte muy importante de una aplicación y, como desarrolladores, nuestro trabajo es mantener una experiencia fluida para nuestros usuarios. Desafortunadamente, no podemos hacer esto sin las herramientas adecuadas para depurar el rendimiento. Todavía podemos usar las herramientas para depurar la antigua interfaz de usuario XML, pero creo que necesitamos nuevas herramientas y sistemas para construir el sistema declarativo de Compose. En mi experiencia, la mayoría de los retrasos en la redacción de la interfaz de usuario se deben a un malentendido sobre cómo funciona el estado, lo que termina dando lugar a múltiples reorganizaciones innecesarias. El equipo de Google Play también se dio cuenta de esto y creó un modificador personalizado para realizar un seguimiento de las reorganizaciones durante la optimización. Debería hacer que estas herramientas sean más accesibles, directamente en la redacción. También puede haber advertencias en Android Studio para evitar antipatrones comunes que causan retrasos en la interfaz de usuario.
La mayoría de las aplicaciones dependen de la publicidad para obtener ingresos. Por lo tanto, es posible que deba implementar anuncios en su aplicación de una forma u otra. Sin embargo, si usa componer en su aplicación, puede encontrar algunas situaciones en las que tenga que cambiar a la vista XML. Todavía no hay una biblioteca de anuncios nativos en Jetpack compose. Esto se convierte en un problema especialmente para los anuncios nativos cuando define el elemento de texto del anuncio en xml pero aún necesita hacerlo coincidir con el diseño del tema de creación.Esta AndroidView
Proporciona una interoperabilidad muy buena, pero creo que es solo un trampolín para conectar temporalmente los dos mundos. Para una gran experiencia, la biblioteca de anuncios debe proporcionar una versión componible de su contenedor de anuncios.
Cualquier aplicación con múltiples pantallas definitivamente necesitará un sistema para administrar la navegación de la aplicación. La navegación Jetpack es la forma recomendada oficialmente, pero tiene un error extraño que es difícil de ignorar. Hay una animación de desvanecimiento entre pantallas que no es configurable y no se puede apagar. También está el problema de rastrear cuándo agregar animaciones al navegar, pero por ahora, puede usar la biblioteca Comps Navigation y ajustar las animaciones para activarlas o desactivarlas.
Atrás quedaron los días de escribir adaptadores y ViewHolders para RecyclerView. Ahora tenemos LazyLists que se pueden crear en segundos.Pero en términos de animación, todavía no es tan bueno como RecyclerView
Ha habido algunas actualizaciones que agregan reordenación de animaciones (aunque se han informado algunos problemas), pero aún no hay una implementación oficial de agregar y eliminar animaciones. He estado usando esta solución en mi aplicación hasta que haya una implementación oficial y estable.
El último parece pequeño, pero tiene un gran impacto en cómo los usuarios perciben la aplicación. El desplazamiento anidado es un bloque de construcción común en algunos patrones de interfaz de usuario. Ya sea una barra de aplicaciones plegable o un modal con una lista, tiene muchos usos. En estos casos, el rendimiento del desplazamiento debe ser reactivo y fluido. Si falla, la aplicación puede sentirse tartamudeando o no nativa. El error fling proporciona un valor de velocidad incorrecto al desplazarse, lo que hace que la lista deje de desplazarse inmediatamente o incluso comience a desplazarse en la dirección incorrecta.
Aquí hay 7 cosas molestas que encontré al migrar a Compose.Avíseme si desea compartir mis frustraciones o si encontró una solución adecuada a estos problemas.
¡Gracias por leer y buena suerte!