Desarrollo de Android en 2021, ¿es este el final de una era? | Autor: Alexander Ruskovski | Noviembre de 2021
Hace unos meses, Google finalmente propuso una respuesta para SwiftUI de Apple y proporcionó a los desarrolladores de Android un nuevo y poderoso kit de herramientas de construcción de UI. Si aún no lo sabe, Compose está diseñado para reemplazar la forma tradicional de escribir interfaces de usuario de Android. Ahora, podremos describir nuestra interfaz de usuario usando Kotlin, ¿no es genial? .. Por cierto, si aún no ha cambiado de Java a Kotlin, este es definitivamente el momento.
Jetpack Compose es un Un conjunto de herramientas moderno diseñado por Google para simplificar el desarrollo de la interfaz de usuario. Lo crea o no, ahora podremos construir nuestra interfaz de usuario escribiendo Kotlin puro. Jetpack Compose es un marco totalmente declarativo que puede transformar los datos en una jerarquía de IU. No más XML 💪
Bueno, este es un recordatorio de un momento importante e importante en el futuro del desarrollo de Android. Todos los modelos limpios promovidos desde el propio Google, como una aplicación de evento único y la división de todo el contenido en Fragmentos, serán obsoletos (al menos la parte de Fragmentos), especialmente para las aplicaciones de Compose puras.
En Redactar, todavía tenemos actividad y el punto de partida de la aplicación / actividad sigue siendo Crear() método, La única diferencia ahora es que no estamos inflando nuestro diseño XML cuando llamamos Establecer contenido (), Ahora llamaremos a nuestra función componible.
Si ejecuta el código anterior, imprimirá el texto «Hola medio» en la pantalla, y solo escribimos unas pocas líneas de código. Como puede ver, lo logramos usando solo Kotlin. Las funciones de redacción deben anotarse con @Composable y, preferiblemente, comenzar con una letra mayúscula; este es un patrón más común. Luego los llamaremos cuando sea necesario. Creo que puedes empezar a ver el poder de Redactar. Imagine un escenario, si el usuario no ha iniciado sesión, queremos mostrar una pantalla de inicio de sesión. Esto es pan comido para Compose, eche un vistazo:
Verá lo fácil que es para nosotros construir la jerarquía de la interfaz de usuario. Ahora no necesitamos tener diferentes vistas para controlar la visibilidad en función de una entrada determinada; ahora solo estamos creando la interfaz de usuario para un estado determinado de la aplicación.
Podemos agregar fácilmente Compose a una aplicación existente, siempre que apuntemos a API 21 y superior, espero que la mayoría de nosotros lo haga 😀
Google tiene dos estrategias recomendadas para migrar a la escritura.
de abajo hacia arriba:
esta de abajo hacia arriba El método comienza a migrar los elementos de la interfaz de usuario más pequeños en la pantalla, comoButton
oTextView
,Seguido porViewGroup
Elementos hasta que todo se convierta en funciones componibles.De arriba hacia abajo:
esta De arriba hacia abajo El método comienza a migrar fragmentos o ver contenedores, por ejemploFrameLayout
,ConstraintLayout
, oRecyclerView
, Y luego los elementos de IU más pequeños en la pantalla.
Independientemente de nuestra decisión de continuar, lo más importante para nosotros es lograr que la aplicación esté en un estado de mantenimiento de 2021 para que podamos aprovechar todas las bibliotecas de Jetpack. Consulte más información aquí: https://developer.android.com/jetpack/compose/interop
Bien, ¿qué pasa con las vistas personalizadas existentes? ¿Necesitamos reescribirlas?
No estoy seguro de ti, pero soy un gran admirador de las vistas personalizadas y, en general, tiendo a usarlas tanto como sea posible. Entonces, para responder a esta pregunta, no, no necesitamos reescribir nuestras opiniones.
Jetpack compose nos presentó aquí. Hay un componible listo para usar que usa una función de fábrica lambda, que creará una instancia de nuestra vista personalizada para nosotros. Profundicemos en un escenario del mundo real, que podría encontrar si migra una aplicación existente a Compose.Imagina que tenemos un Cargar fragmento Utilice nuestra vista personalizada—— barra de progreso. Hasta ahora, ha migrado todas las vistas XML y se ha encontrado con una vista personalizada. No creerá que puede poner una vista Kotlin / Java personalizada en una jerarquía compuesta con solo una línea de código. Echar un vistazo:
Arriba puedes ver que te estamos llamando Vista de Android Componible, al igual que hacemos con cualquier componible normal. Requiere tres parámetros: fábrica, modificador y actualización.Lo mas importante para nosotros es fábrica, Esto instanciará nuestra vista.
¿Qué tal agregar componible a un diseño XML existente?
Nos presentaron aquí de nuevo. Kotlin tiene muy buena interoperabilidad y podemos migrar nuestras aplicaciones a nuestro propio ritmo. ❤️
Echemos un vistazo al mismo ejemplo anterior. Cargue el fragmento. Imagínese que ahora hemos migrado parcialmente nuestras vistas a Compose, pero todavía tenemos mucho por hacer.En este caso, podemos usar un widget llamado Redactar vista. Puede pensar en él como un contenedor o un Ver grupo Alojará nuestro código de escritura como parte del diseño XML.Entonces, para hacer esto, solo necesitamos agregar Redactar vista Widget para nuestro diseño XML.
¡Hasta aquí todo bien!Lo siguiente es obtener una referencia a la vista y establecer el contenido; por simplicidad, supongamos que tenemos un Cargando pantalla, Esto se cargará en Mi vista de redacción.
Como puede ver, tenemos un soporte sólido para Compose API en la migración de aplicaciones existentes.
Ver más información: https://developer.android.com/jetpack/compose/interop/interop-apis
Bueno, siempre hay lugar para el drama, ¿verdad? Como habrás notado, con la introducción de Jetpack Compose, es posible que ya no necesitemos fragmentos. A pesar de esto, todavía tendremos nuestras actividades, pero podemos representar una sola pantalla con un solo componible; no necesitamos crear un segmento que albergue el componible. Para evitar una función de composición única o piadosa, siempre podemos usar componibles más pequeños para representar una pequeña parte de la pantalla, al igual que la vista en el diseño XML.
Esta es la herramienta más grande y poderosa disponible para nuestros desarrolladores. Jetpack Compose es fácil de usar, fácil de leer y poderoso 💪. Resuelve los problemas más comunes de Android de una manera muy concisa. Todos están familiarizados con la gran cantidad de código repetitivo necesario para crear una lista simple; esta es la historia de Compose. Con solo unas pocas líneas de código, podemos implementar listas avanzadas, incluidos títulos adhesivos, animaciones, transiciones y más. Además, el nivel de personalización con modificadores es una locura: podemos hacer todo tipo de campanas y silbidos, y generalmente se tarda medio día en lograr el mismo resultado en XML.
Todavía soy nuevo en Jetpack Compose, y esta historia se parece más a una nota de experiencia de aprendizaje que quiero compartir con ustedes. Pero no dude en comentar su experiencia con Compose hasta ahora y si ha utilizado Compose para desarrollar aplicaciones de producción.
Esta es mi primera aplicación construida completamente por Compose. Siéntase libre de clonarlo e intentar usarlo. Las relaciones públicas son muy populares. Todavía estoy desarrollando la aplicación, así que podría hacer algunas mejoras y agregar algunas pruebas.
Tecnología utilizada:
-LazyColumn (reemplazo de RecyclerView)
-Navegar usando NavGraph y args
-Navegar por la animación con la ayuda de la biblioteca de acompañamiento
-Retrofit y Moshi (biblioteca JSON)
-Dagger Hilt para inyección de dependencia
-Coil – Biblioteca de carga de imágenes amigable para componer
Este es un adelanto de la aplicación:
Este es el enlace de git: https://github.com/alexruskovski/FalconLaunches