Desarrollar aplicaciones Android con Kotlin es una de las mejores opciones si quieres empezar desde cero en este sector. Kotlin es un lenguaje de programación que corre sobre la máquina virtual de Java, aunque también puede compilarse a código fuente JavaScript. Hace unas semanas celebramos un webinar con José Antonio Blanes y Ángel Hernández, especialistas en movilidad en la empresa Deloitte, quienes nos han hablado de todo lo relacionado con la arquitectura de desarrollo Android con Kotlin .
¿Qué encontrarás en este post?
ToggleComponentes de arquitectura
Los principales conceptos y relaciones que encontrarás en el desarrollo de aplicaciones Android con Kotlin son:- ViewModel: almacena y gestiona la lógica de vista de manera optimizada. Permite que los datos sobrevivan a cambios de configuración que el sistema realiza sobre las vistas. Se comunica con la vista mediante propiedades de tipo LiveData de forma que la refrescan en los cambios de estado.
- Fragment: es la unidad mínima y recomendada de vista, aunque siempre debe estar alojado en una Activity. Google promueve cada vez más aplicaciones SingleActivity. Debe ser statless, para almacenar el estado y toda la lógica tenemos el ViewModel. Se encarga de escuchar a las propiedades de LiveData que expone el ViewModel y reacciona en consecuencia según cambien. Su ciclo de vida está afectado por el de su “padre”, pero es independiente.
- LiveData: es un contenedor de datos observable, optimizado para los ciclos de vida de los componentes de vista. Lanza eventos solo en los cambios de estado a sus observadores. Solo actualiza observadores de componentes con ciclo de vida activo. Es la tecnología recomendada para la interconexión del Fragment con su ViewModel. Aumento del número de operadores al estilo RX.
Componentes de visualización de Aplicaciones Android con Kotlin
Respecto a los componentes de visualización enfocados en el desarrollo de aplicaciones Android con Kotlin, encontramos:- View Binding: es una función que genera una clase de vinculación para cada archivo de diseño XML presente en el módulo. Contiene todas las vistas que tiene un ID, incluyendo includes. Además, tiene un getter root para acceder al contenedor raíz de la pantalla.
- Jetpack Compose: es un kit de herramientas para crear IU nativas de Android con funciones declarativas. Se usan las funciones de Jetpack Compose para decir qué elementos visuales se desean añadir.