Cuando la reutilización se vuelve contra la arquitectura

En el mundo del desarrollo solemos sentir pavor ante un fragmento de código repetido. Como defensores del código limpio, corremos a refactorizar esa aberración unificando toda la lógica en un único método de utilidad o clase. Así, conseguimos algo más reusable, reducimos el impacto del mantenimiento y nos sentimos genial. Pues bien, esta misma idea … Leer más

Testing unitario y el factor tiempo

No hace mucho que estuve involucrado en un proyecto donde la importancia del testing unitario fue cayendo hasta pasar de ser un requisito a un extra. Cada semana la exigencia por parte del cliente aumentaba, y el factor tiempo acabó imponiéndose de tal manera que el equipo terminamos por sentir que cualquier cosa que no … Leer más

Asincronía y paralelismo con Kotlin coroutines

En este artículo explicaré una propuesta de cómo tratar la asincronía de nuestros Interactors utilizando las Kotlin coroutines. Para ello utilizaré conceptos de Clean Architecture, si no estás muy familiarizado con esta parte, te recomiendo que antes le eches un ojo a un artículo anterior: De MVP a Clean II. ¡Hagámoslo Clean!. Las piezas necesarias … Leer más

5 comandos git para salvar tu día

Actualmente estoy trabajando en un proyecto grande, en el que estamos implicados varios desarrolladores. Esta experiencia me ha ayudado a reunir 5 comandos git que creo que pueden ser útiles a la hora de sortear ciertas minicrisis que surgen a diario trabajando con un sistema de control de versiones: 1. git rebase <branch_name> Git nos proporciona … Leer más

Actualiza tu vista con el patrón Observer

Seguro que más de una vez, al encontrarnos ante la necesidad de saber si los datos han cambiado, hemos optado por lanzar una Activity y esperar su resultado (startActivityForResult()), o por actualizar el contenido siempre que la pantalla pasa a primer plano (onResume()). Estas, aunque válidas, no son opciones del todo eficientes: la primera, si … Leer más

RxJava: dale un respiro al hilo principal

La ejecución de procesos asíncronos forma parte de nuestro día a día como desarrolladores. Tanto si queremos lanzar una petición a un servicio web, como si realizamos una operación pesada sobre base de datos, tenemos que aislarnos del hilo principal (Main Thread) si no queremos bloquear la interfaz o recibir una NetworkOnMainThreadException. En este artículo … Leer más

De MVP a Clean II. ¡Hagámoslo Clean!

Entender qué es eso de Clean Architecture no siempre resulta fácil ni intuitivo. En este artículo intentaré explicar los puntos claves de un proyecto Clean; centrándome en clarificar la visión de conjunto, pero sin descuidar esas peculiaridades que tantos quebraderos de cabeza nos dan en el día a día. Antes de empezar, si no te … Leer más

Patrón Builder: bueno, bonito y ¿barato?

El patrón Builder nos permite crear representaciones diferentes de un mismo objeto, al mismo tiempo que centraliza el proceso de creación en un único punto. Este patrón es muy flexible, ofrece una forma sencilla y legible de crear un objeto, y se vuelve especialmente atractivo a la hora de trabajar con objetos inmutables que tienen varios campos … Leer más

De MVP a Clean I. ¿Es esto MVP?

La primera vez que decidimos en mi empresa desarrollar una app con MVP, me puse a leer un poco de aquí y otro poco de allá, y empecé a aplicar desconfiado las soluciones que me proponía la comunidad. Con el paso de los proyectos, el conocimiento iba creciendo, pero las dudas también, y debo decir … Leer más