A veces me sorprendo de lo rápido que pasa el tiempo, ya han pasado 15 días desde la última newsletter y parece que fue ayer.
Es cierto que entre formación a empresas, grabar vídeos, actualizar clases en mis cursos y crear contenido no he parado, así que prepárate porque viene muy cargadita la DevsLetter de hoy 😉
Cómo organizar y mantener actualizadas AUTOMÁTICAMENTE las dependencias en tus proyectos
En este vídeo veremos cómo organizar y mantener actualizadas automáticamente las dependencias de nuestros proyectos Gradle y Android sin morir en el intento.
¿Serás reemplazado? 🤯 Descubre cómo COPILOT puede cambiar tu futuro como desarrollador
O cómo al menos podemos ser mucho más productivos gracias a GitHub Copilot.
Y aquí se abre un debate muy interesante, cada vez hay más herramientas de este estilo que evolucionan a pasos agigantados ¿Cómo será la figura del desarrollador en un futuro?
Patrones de diseño
Hace tiempo que quería hacer un artículo dedicado a cada Patrón de diseño en el blog, así que dicho y hecho, aquí están los 23 patrones:
- Abstract Factory: Nos provee una interfaz que delega la creación de un conjunto de objetos relacionados sin necesidad de especificar en ningún momento cuáles son las implementaciones concretas.
- Factory Method: Expone un método de creación, delegando en las subclases la implementación de este método.
- Builder: Separa la creación de un objeto complejo de su estructura, de tal forma que el mismo proceso de construcción nos puede servir para crear representaciones diferentes.
- Singleton: Limita a uno el número de instancias posibles de una clase en nuestro programa, y proporciona un acceso global al mismo.
- Prototype: Permite la creación de objetos basados en «plantillas». Un nuevo objeto se crea a partir de la clonación de otro objeto.
- Adapter: Permite a dos clases con diferentes interfaces trabajar entre ellas, a través de un objeto intermedio con el que se comunican e interactúan.
- Bridge: Desacopla una abstracción de su implementación, para que las dos puedan evolucionar de forma independiente.
- Composite: Facilita la creación de estructuras de objetos en árbol, donde todos los elementos emplean una misma interfaz. Cada uno de ellos puede a su vez contener un listado de esos objetos, o ser el último de esa rama.
- Decorator: Permite añadir funcionalidad extra a un objeto (de forma dinámica o estática) sin modificar el comportamiento del resto de objetos del mismo tipo.
- Facade: Una facade (o fachada) es un objeto que crea una interfaz simplificada para tratar con otra parte del código más compleja, de tal forma que simplifica y aísla su uso. Un ejemplo podría ser crear una fachada para tratar con una clase de una librería externa.
- Flyweight: Una gran cantidad de objetos comparte un mismo objeto con propiedades comunes con el fin de ahorrar memoria.
- Proxy: Es una clase que funciona como interfaz hacia cualquier otra cosa: una conexión a Internet, un archivo en disco o cualquier otro recurso que sea costoso o imposible de duplicar.
- Command: Son objetos que encapsulan una acción y los parámetros que necesitan para ejecutarse.
- Chain of responsibility: Se evita acoplar al emisor y receptor de una petición dando la posibilidad a varios receptores de consumirlo. Cada receptor tiene la opción de consumir esa petición o pasárselo al siguiente dentro de la cadena.
- Interpreter: Define una representación para una gramática así como el mecanismo para evaluarla. El árbol de sintaxis del lenguaje se suele modelar mediante el patrón Composite.
- Iterator: Se utiliza para poder movernos por los elementos de un conjunto de forma secuencial sin necesidad de exponer su implementación específica.
- Mediator: Objeto que encapsula cómo otro conjunto de objetos interactúan y se comunican entre sí.
- Memento: Este patrón otorga la capacidad de restaurar un objeto a un estado anterior.
- Observer: Los objetos son capaces de suscribirse a una serie de eventos que otro objetivo va a emitir, y serán avisados cuando esto ocurra.
- State: Permite modificar la forma en que un objeto se comporta en tiempo de ejecución, basándose en su estado interno.
- Strategy: Permite la selección del algoritmo que ejecuta cierta acción en tiempo de ejecución.
- Template Method: Especifica el esqueleto de un algoritmo, permitiendo a las subclases definir cómo implementan el comportamiento real.
- Visitor: Permite separar el algoritmo de la estructura de datos que se utilizará para ejecutarlo. De esta forma se pueden añadir nuevas operaciones a estas estructuras sin necesidad de modificarlas.
Y si quieres tener una guía gratuita donde te lo explico paso a paso puedes acceder desde AQUÍ
Cómo ves le he dado caña al blog y además de los patrones te dejo con varios artículos nuevos:
Utilizando Mockito para simular dependencias en proyectos de Kotlin
Inyección de dependencias con Koin en proyectos Android con Kotlin
Cómo mejorar la organización y mantenibilidad de tu código Android con la arquitectura MVI
Creando relaciones entre tablas con Room y Kotlin: una guía paso a paso
Cómo hacer migraciones de base de datos con Room y Kotlin
¿Cuál es la diferencia entre un algoritmo y un patrón de diseño?
Cómo utilizar two-way data binding en aplicaciones Android
Ya no sé programar si no es reactivo
Mi amigo José Luis González, Profesor de Desarrollo de Software en DAM/DAW/ASIR y Kotlin Trainer Certified by JetBrains entre otras cosas, ha escrito una entrada en su blog sobre Reactividad muy interesante y no solo porque me mencione XD
Si no lo sigues por LinkedIn ya estás tardando.
Shorts de la quincena
Aquí os dejo con los shorts subidos las dos últimas semanas, ¿Te gustaría que hiciera un vídeo más extenso sobre alguno? Déjamelo en los comentarios del vídeo.
Si no quieres perderte ninguno, pero pasas de redes sociales, te animo a que te unas a nuestro canal de Telegram, donde además podemos comentar cada uno de ellos.
3 razones por las que no usar AndroidViewModel
RxJava vs Corrutinas: ¿Debería migrar?
El mejor equipo para desarrollar Apps Android
¿Está Kotlin Multiplatform listo para producción en 2022?
Retrofit vs Ktor como cliente HTTP en Kotlin
Live Edit de Compose mejorados en Android Studio Flamingo
Crea Apps Android con plantillas de arquitectura diseñadas por Google
Soporte para version catalogs en Android Studio Flamingo
—
¡Aquí tienes todo por esta semana! Espero que todos los links te sean de ayuda, y si se te ocurre alguna forma de mejorar esta newsletter, estaré más que encantado de escucharla.
¡Un fuerte abrazo!
0 comentarios