Sign in

mobile developer

Desarrollado por la gente de Point Free, The Composable Architecture es una librería para construir aplicaciones de una forma consistente y entendible.

Puede ser usado con SwiftUI o con UIKit y para cualquier plataforma del ecosistema iOS, esto es, iOS, macOS, tvOS y watchOS.

The Composable Architecture es una arquitectura limpia.

Es la primera pregunta que me hice y me recordó al comentario de Robert C. Martin. Software es una palabra compuesta, formada por soft y ware. La palabra ware significa producto y la palabra soft suave.

El software se inventó para ser suave, es decir, que cambie con facilidad. …


En El arte de destruir software, Greg Young no nos habla de que destruir software es un arte. En vez de eso, hace toda una ponencia de que si construimos el software como una unión de piezas pequeñas, independientes, separadas y desacopladas, éstas pueden ser borradas y ser reescritos de nuevo sin preocuparnos de romper nada más que esa misma pieza.

Cuando apareció por primera vez The Composable Architecture y los videos de Point Free, lo primero que me recordó fue a esta genial charla de Greg Young.

Hoy, vamos a jugar con un pequeño formulario. …


Poner comentarios o no poner comentarios. Ésa es la cuestión.

En cualquier lenguaje de programación se permite la introducción de comentarios en el código. Ciertamente, podemos escribir comentarios, ¿pero hoy en día tiene sentido poner mensajes en el código?

Te respondo. Haz lo que consideres adecuado. En general, estarás trabajando en equipo, habrán acuerdos de equipo, y el equipo habrá decidido qué es lo correcto. Sin embargo, en este artículo, voy a proponer varias ideas para evitar la introducción de comentarios innecesarios.

¿Cómo se introducen comentarios en Swift?

Tenemos dos formas.

  • La primera sería para introducir un comentario de una sola linea.
// Esto es una…

Hi! In this post, I explain how to develop an iOS application that can recognize if a picture is a cat or a dog. Firstly, I will build the model that can do the classification and finally, we develop an iOS application that can use this model.

We need a dataset of images. We can download from

A dataset is a set of images, in this case, a set of cats images and dogs images. From kaggle webpage we can download large datasets for this purpose.

Now we can build the model with Create ML Application. We can open it.


Hoy traemos un truco, que es el prefetch de una TableView en RxSwift. Es muy sencillo y bastante potente.

Recuerda, venimos de aquí, si eres nuevo.

Vamos adelante. Ahora mismo, tenemos un listado con información de álbumes que viene de un servicio paginado. Vamos a añadir un campo nuevo. Así que iremos al Album de la capa de datos.

El dato que recogeremos del servicio es cover_image y lo guardaremos como url.

Aquí ya hemos terminado. Ahora iremos a la capa de dominio. Agregaremos url en la entidad Album.


Seguimos con la aplicación desde 0. Recuerda, si vienes de nuevo, el primer capítulo de la serie, empieza aquí.

Y, el código final de este artículo lo tenemos aquí.

Vamos a hacer un pequeño resumen de lo que tenemos hasta ahora.

  • En el primer capítulo, empezamos haciendo un listado de resultados de álbumes de música.
  • En el segundo capítulo, introducimos el patrón llamado MVVM.
  • En el tercer capítulo, introducimos la capa de dominio; muy útil cuando estamos diseñando una aplicación grande. Aunque, también para aplicaciones pequeñas.
  • Y, en el capítulo anterior, terminamos una primera iteración, añadiendo la capa de Data…

Seguimos nuestro camino en la construcción de una aplicación en iOS con RxSwift. En este artículo, hoy terminaremos de crear la primera funcionalidad en su primera aproximación. Nos queda implementar la capa de Servicio, o Data o Infraestructura.

En la segunda parte de este artículo, implementaremos una paginación. La llamada que busca álbumes, viene paginada. Así que, me parece muy interesante, utilizar esta opción para devolver una tabla con muchos elementos. En marcha.

Vamos a usar el servicio API de discogs. Si no lo has usado nunca, te recomiendo registrarte para usar una api key.

El código de este artículo…


En esta tercera entrega, entramos de lleno en los tests unitarios en RxSwift. Si acabas de aterrizar, tienes aquí el enlace al capítulo anterior.

Antes de empezar a testear, tenemos que tener un código testeable. Y me da a mi que el código anterior no es testeable. Mientras lo preparamos, haremos lo siguiente.

Si el valor de álbumes tiene alguna información la tabla pintará la información tal y como la tenemos. …


Seguimos con la construcción de nuestra pequeña aplicación para buscar álbumes con RxSwift.

Recuerda que el código fuente se encuentra aquí.

Y que, el artículo anterior es éste.

Así que empezamos.

En este artículo hablaremos, de Model-View-ViewModel. Es un patrón bien interesante. En iOS, la idea es separar el ViewController, lo que es propiamente controlar de lo que es el modelo de la vista. Así que vamos para allá.

Lo primero que haremos será crear un nuevo archivo llamado ListViewModel. Y copiaremos el modelo, que ahora mismo son los álbumes.

Ahora tenemos que actualizar el controlador para que haga uso…


Una breve historia con RxSwift, programando una aplicación iOS desde 0.

Con la llegada de Combine y SwiftUI, la programación reactiva viene para quedarse. Tanto si eres un programador que viene con ganas de aprender RxSwift, como si ya llevas unos años usándolo, me planteo iniciar este camino, que no es más, que tirar hacia adelante con lo que yo he estado aprendiendo estos últimos años.

Como requisito, pido conocer un poco RxSwift, y claro está, conocer Swift y algún que otro patrón de diseño más o menos conocido (o reconocido).

Si vienes no sabiendo absolutamente nada, hace un tiempo…

Albert Gil Escura

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store