DevsLetter #021- Tu newsletter AndroidDev
Antonio Leiva

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 😉

Ver esta newsletter en Klisst

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Í

BLOG DEVEXPERTO

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!

Quizá también te interese…

🧭  Nuevo en Material 3: Tooltips #037

🧭 Nuevo en Material 3: Tooltips #037

Ahora ya se pueden mostrar tooltips en Compose después del long click en un icono. 📍 El mapa de hoy: Los tooltips en Jetpack Compose Noticias y contenido útil: ChatGPT para programadores, Codelab de Material 3, juegos en Kotlin Multiplatform... Píldoras de la semana...

🧭 El Sistema Operativo más usado del mundo #036

🧭 El Sistema Operativo más usado del mundo #036

De cómo fue la aparición y evolución de Android 📍 El mapa de hoy: Historia del nacimiento y expansión de Android Noticias y contenido útil: librerías de Compose, funciones nuevas de testing y artículos sobre optimización de rendimiento Píldoras de la semana Si no...

🧭 Implementa una búsqueda en tu App en Compose #035

🧭 Implementa una búsqueda en tu App en Compose #035

El nuevo update de Material 3 incluye una SearchBar completa 📍 El mapa de hoy: El componente SearchBar de Material 3 Noticias y contenido útil: Todas las novedades de Google I/O. Píldoras de la semana Si prefieres pasar de tutoriales y recibir una formación como...

0 comentarios

Enviar un comentario

Los datos personales que proporciones a través de este formulario quedarán registrados en un fichero de DevExpert, S.L.U., con el fin de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento de la parte interesada. Si no se acepta, no podrás comentar en este blog. Los datos que proporciona solo se utilizan para evitar el correo no deseado y no se usarán para nada más. Puede ejercer los derechos de acceso, rectificación, cancelación y oposición en contacto@devexperto.com.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la política de privacidad *