Ready to review.

I've tried to explain most of the code in the code.

I think that it covers more or less all requirements, But due to the lack of time, may be I've taken some "licenses".

TODO list:
- Better error handling
- Use pagination from the API to load more pictures.

Thanks for your time.

Me parece correcta tu argumentacion. De hecho, ahora estamos aplicando VIPER para evitar el problema de la gestion de la navegacion como bien comentas. Pero creo que se podria evitar si en vez de un VC hubieras usado una clase NSObject que siemplemente se encargara de la navegacion. Al final el concepto es el mismo pero evitando tener que usar una clase concreta como es VC.