Jetpack Compose definitivamente is the new cool en Android, todos queremos aprender, todos queremos construir UI ya pero, a medida que metemos mano y conocemos este Toolkit podríamos caer en mucho desorden sin darnos cuenta. Haciendo que nuestras aplicaciones tengan código difícil de leer y entender para hacerlas escalar.
Por eso en esta clase hice una iteración de cómo podrías orgranizar un Proyecto de Android que utilice Jetpack Compose, siguiendo las capas de Clean Architecture:
Data
Domain
Presentation
El Core de Jetpack Compose por supuesto es Presentation debemos cuidar que los asuntos de UI se conserven aquí.
Aún en la capa de Presentation podemos hacer una organización de Composables interezante que nos eviten el código espagueti y nos permitan trabajar mejor en equipo.
Te dejo los slides y el código para que nunca se te olvide.
Creo que Jetpack Compose es el futuro que se está haciendo presente muy rápido, la mejor noticia es que ya tenemos release lo que significa que puedes usarlo en Producción.
Ya lo probaste?
Si te gustó esta clase no olvides compartirla haces un excelente trabajo divulgando conocimiento ⚡
Clean code es tu gesto de empatía como autor de software para el programador que vendrá a leerte. En este podcast te cuento un resúmen del libro Clean Code de Robert C. Martín mejor conocído como el Tío Bob.
Clean literalmente traducido significa Limpio y tener algo limpio está totalmente relacionado con que esté ordenado. (aunque no es directamente proporcional pero definitivamente están relacionados)
Ordenar, poner cada cosa en su lugar.
Tu ropa tiene un lugar, las llaves de tu casa tienen un lugar, el cargador de tu celular tiene un lugar, y en medida que respetemos esto, nos traerá una multitud de beneficios.
😉 Encontrar tus llaves y/o cargador nunca más será un problema si todo tiene un órden.
Además traer más ropa a tu closet será mucho más sencillo de integrar si está correctamente ordenada.
En realidad relacionar el termino Clean del software con Órden me gusta mucho porque genera mucho valor. Así como los ejemplos que acabamos de ver parecen hacer tu vida más fácil, aplicar Clean a tus proyectos de software hace más fácil:
Detectar y Resolver Bugs.
Integrar nuevas características a tus proyectos.
Optimizar tu equipo de desarrollo.
Si como programador pasas la mayor parte de tu tiempo leyendo código, desde luego vas a querer que todo lo que esté ahí sea lo más legible y ordenado posible. Esta es la escencia del uso de la palabra Clean en el Software.
Aplicar Clean a tus proyectos te llevará a hacer lo siguiente:
Delegar responsabilidades – Ordenar.
Ordenar nos llevará a separar y categorizar mejor.
3. El deseo de tener legibilidad nos hará colocar estándares para escribir código que nos permitan leer mejor y más rápido. Por ejemplo: Usar nombres que se puedan buscar y que sean habituales al negocio, evitar anidamiento excesivo, evitar clases muy largas, etc.
Gracias a la influencia del Tío Bob, hoy sabemos que podemos aplicar Clean a tres cosas:
Code 〰Clean Code
Architecture 〰Clean Architecture
Agile 〰Clean Agile
Este capítulo habla especialmente sobre Clean Architecture y quiero centrarme meramente en ello. Escucha mi Podcast sobre 🎧 Clean CodeAquí
Pero ¿cómo podemos tener nuestro proyecto lo más Clean / Ordenado posible? Acompañame a ver el siguiente concepto.
👷♀️ Architecture
Arte y técnica de diseñar, proyectar y construir
Wikipedia
Literalmente el concepto de Arquitectura aplicado en la Construcción, el Diseño y el Arte, puede ser aplicado de la misma forma en el software.
Aplicar una arquitectura le da un sentido de proyección hacía el futuro a nuestros proyectos y aplicaciones.
Las preguntas serían: ¿Por qué quiero hacer esto? ¿Por qué es importante proyectar mi código? No debería enfocarme en que el código funcione? ¿Qué significa proyectar mi código hacia el futuro?
Como programadores tenemos dos trabajos:
Hacer que el código funcione ✅
Proyectarlo al futuro: hacerlo mantenible 🌠 (déjame en los comentarios si conoces una mejor palabra para describir esto)
Seguro pensabas que tu única responsabilidad era la número 1. no te preocupes antes yo también lo creía, lo importante es que estamos aprendiendo juntos.
Proyectar el código hacía el futuro es darle una estructura, es dárle el órden (Clean 😎) que se merece, para que implementar nuevas cosas y resolver bug’s sea lo más sencillo posible y con la menor cantidad de desarrolladores posibles.
Existen algunos modelos que nos ayudan a ordenar la estructura de nuestro código en Capas tal vez has escuchado el Modelo de Capas o Layers Model. Estos pueden ir desde tener una sola capa donde se concentre todo el código (por supuesto, nada clean/ordenado que proyecte nuestro código al futuro), hasta tener N capas.
Tío Bob nos recomienda estructurar / ordenar nuestro proyecto en 3 capas principales.
Presentation: Interface de Usuario UI.
Domain: Todas las reglas de negocio, también se llama business logic en inglés.
Data: Todo lo que tega que ver con la persistencia de datos.
En los siguientes capítulos voy a presentarte todos cada uno de ellos a detalle.
👉Clean Architecture es:
La forma de ordenar y proyectar nuestro código hacia el futuro, para que añadir nuevas características y resolver bugs sea lo más simple posible con la menor cantidad de desarrolladores.