David Cordero


UX / Dev

Published on 08 Oct 2016

One of the most important things to keep in mind when building mobile Apps, is thinking about the user. It is not that easy trying to understand the problems or needs of our users, and the reason that led them to use our App to solve those problems or needs.

No matter how great is your app, and how well it was developed and designed. Apps are always a handicap, the handicap that users have to suffer to get the valuable part of your product, the part that is actually giving a solution for their problem or need.

Continue reading...

Danshari Oriented Development

Published on 15 Aug 2016

Despite of that title I am not going to speak here about any new paradigm, or about any new programming pattern, but about an attitude, and about how we applied that attitude to improve our iOS App in Zattoo.

If you don’t know the concept of Danshari, it is a Japanese made up word consisting of three kanji, meaning in sequence: refusal, disposal and separation.

Continue reading...

Data Sources in Swift… or how to avoid that this new trendy persistence framework determines the architecture of your App

Published on 13 Jun 2016

There are really good frameworks to deal with the persistency of our data in the world of iOS.

Core Data for instance is a great solution offered by Apple that provides an incredible good performance even when dealing with a really huge amount of data. But there are also, some other alternatives poping around. One of these alternatives is Realm which is said to offer even better performance than Core Data, with a simpler syntax.

Continue reading...

A different way to deal with Localized strings in Swift

Published on 31 May 2016

Dealing with localized strings has never been an easy task in iOS development. Apple has never provided a good way to deal with this issue in a clean and organized way, and our strings at the end tends to be scattered all around the project.

In addition Localizable.strings files, without any syntax validation at all, are a very error prone way to deal with strings, making very easy to have problems in runtime or even in Production.

Continue reading...

My first month with Swift

Published on 31 Jan 2016

Yes you don’t have to say that, you are fully right, I am indeed late to the party and I know it. But as the saying goes… better late than never, isn’t it?

On the other hand, since I have worked in iOS (using Objective C) for the last years, I have to say that I am not a one hundred percent rookie in this world of iOS, but I’ve never done any Swift coding apart from really minor things… So, now that I am for a while apart from the iOS development in my current position. I have decided to take advantage of this period to improve my knowledge about Swift.

Continue reading...

Swift: Avoid auto return in closures

Published on 06 Dec 2014

In Swift, you have several options for writing closures more concisely.

When a closure’s type is already known, such as the callback for a delegate, you can omit the type of its parameters, its return type, or both. Single statement closures implicitly return the value of their only statement.

Continue reading...

Swift: Raiders of the Lost Nib

Published on 03 Dec 2014

If you are used to work with Objective-C you are most probably familiar with the following documentation from UIViewController.nibName property:

Continue reading...

Strings validation with Rubustrings

Published on 29 Sep 2014

Rubustrings is a format validator for Localizable.string files.

Continue reading...


Published on 29 Jun 2014

SwiftyVersion provides a simpler way to manage Versions in Swift.

Continue reading...


Published on 28 Jun 2014

TimeBlock is a simple set of macros to measure the time spent for executing a block in Objective-C, you can find it published on my GitHub.

Continue reading...

A tour of Mantle

Published on 28 Jun 2014

Mantle is most probably the best library nowadays for parsing JSON responses with Objective-C, but I am not going to say so much here about what is Mantle since that is not the proposal of this post.

There is already a quite good explanation about what Mantle is and what problems it solves on the oficial github page of the project. So I am not going to repeat the same things here.

The problems I had with Mantle were mainly related with the lack of example code in this project. Mainly about how to do specific things, so that is what I am going to explain here using some examples.

Continue reading...

Parche para N70

Published on 16 Mar 2008

Este parche mejora considerablemente la velocidad del teléfono Nokia N70, ya que corrige algunos bugs.

Concretamente mejora la velocidad de navegación en los menús, aplicación de themes y gestión de conexiones.

Continue reading...

Internet Explorer en GNU/Linux

Published on 10 Feb 2008

Los motivos que nos pueden llevar a querer instalar Internet Explorer pueden ser muchos. Quizás seas desarrollador web y tienes que probar como se ven tus webs en todos los navegadores, o quizás te interesa ver alguna web que no funciona correctamente con Firefox que aunque cada vez son menos, aun abundan.

De cualquier forma, puede interesarnos tener un Internet Explorer en Ubuntu que en estos casos puntuales no saque del apuro, y no tener que reiniciar a Windows o bien tener que arrancar todo un Windows virtual que tengamos en el qemu de turno para ver una simple página web.

Continue reading...

Cualquier programa en el systray

Published on 01 Feb 2008

Algunos programas no tienen la opción de permanecer abiertos en el systray, siendo en muchos casos muy interesante que permanezcan abiertos sin ocupar espacio todo el tiempo en la lista de ventanas.

Para ello existe una aplicación llamada alltray que nos permite llevar al systray cualquier programa que queramos.

Continue reading...

How to configure Ubuntu for webcam Vaio FE41M

Published on 31 Jan 2008

This was one of my first posts, which made me receive a lot of visitors. That is why I’ll translate it now to English.

One of the problems that you can find during the installation of Ubuntu in the Vaio FE41M is the webcam. The webcam of this laptop is not autoconfigured by default.

Continue reading...