Test ready to review

When the user launches our app, he can see a list of most popular photos from 500px, ordered by rating score from higher to lower. To improve the performance and user experience, the list is paginated with 20 items per page. When the user scrolls to bottom of the list, automatically, if there are more photos, the app fetch the next page and reloads the list when we receive the data. All pictures are loaded asynchronously, using a third party library called SDWebImage. For handle the dependence I've used Cocoapods. The user can select one picture from the list to see more info about it also.

In the more info view, the user can see the photo preview and in the bottom, he can see the avatar and username of author and a button that expands the details view with a vertical animation. This view contains the photo description, camera and lens used to take a picture, if is available, and a mapview with photo location, if is available. 

Featured list:
	- Use CoreData as cache's storage. When user select one picture, the app in first time search the photo in database, if isn't available, we request the photo at server and save the data on database to next times. 
	- Design Patterns. I've used the singleton pattern to CoreData Connector object.
	- In the view of more info about picture, I've added two gestures recognizers:
		* Single Tap: Shows or hides UI elements to the user can see only the photo. 
		* Double Tap: When user pinch the photo to scale it, with double tap restores the photo at original scale.  
Realmente me podría haber creado el modelo de datos con NSObject y que éstos tuviesen una propiedad que hiciera referencia a su NSManagedObject, en el caso de que tuviese. Pero por falta de tiempo, decidí crearlos como NSManagedObject directamente con XCode, tampoco he querido usar ninguna librería externa para la generación de la impletación del modelo.

El problema que tenemos con esto es que si modificamos el modelo y generamos de nuevo las clases de los objetos, toda la implementación que tuviésemos dentro de la clase se borraría. Para este ejemplo puede valer, pero en un proyecto real, si los datos fueran NSManagedObject, no podrían contener ninguna implementación dentro, podríamos crear un wrapper que contenga dicha implementación.