10 librerías open source que todo desarrollador iOS debe conocer

A la hora de desarrollar aplicaciones es muy importante tener una estrategia en mente y no malgastar nuestro tiempo en desarrollar algoritmos y piezas de código que están ya disponibles en plataformas como Github, BitBucket y que fácilmente podemos integrar en nuestro proyecto utilizando CocoaPods.

Entre las ventajas de utilizar librerías encontramos el hecho de que suelen ser mantenidas, mejoradas y testadas por la comunidad; una comunidad numerosa y globalizada que se sirve de estas librerías diariamente. Esto nos ofrece una garantía: cualquiera de estas librerías estará libre de errores graves de seguridad, problemas con el manejo de recursos, etc. De haberlos, estos serían subsanados.

Hoy en GeekyTheory hemos hecho una recopilación de las 10 librerías que todo desarrollador iOS debe conocer; aquellas que lo pueden cambiar todo en tu aplicación.

Alamofire

Vamos encaminados a un mundo en el que estar conectados a esa gran red llamada Internet lo es todo. Cuando conectamos nuestra aplicación a Internet, nos comunicamos con los servidores mediante el protocolo HTTP. Generalmente mediante peticiones GET y POST.

Alamofire es una librería que simplifica enormemente este proceso de comunicación para hacerlo fácil y seguro.

Ahí tenemos un ejemplo de una petición GET con Alamofire.

Link a la librería en Github

SwiftyJSON

Acabamos de mostrar un ejemplo de cómo hacer una petición GET a un servidor con Alamofire. Pero, ¿cómo interpretamos la respuesta que nos devuelve?

Los servidores generalmente devuelve la información en formato JSON o XML. SwiftyJSON es una librería que se encarga de interpretar la respuesta en JSON devuelta por el servidor. Este proceso lo podríamos entender cómo convertir los Objetos JSON en Objetos de Swift, Arrays JSON en Arrays de Swift, etc.

Podemos observar la diferencia entre interpretar JSON sin la librería y con ella. Menos líneas de código, mayor legibilidad y sintaxis mejorada.

Link a la librería en Github

ObjectMapper

Cuando te sirves de una API para descargar datos en tu aplicación, estos datos vienen en formato JSON tal cómo hemos explicado anteriormente. ObjectMapper es una librería extremadamente útil en aquellos casos en que los datos que estamos descargando se interpretarán directamente en una clase.

Tomemos como ejemplo que estamos haciendo una app que muestra coches, tendríamos una clase llamada coche con los siguientes valores: nombre, modelo, imagen-url. La estructura del JSON sería la siguiente:

Finalmente utilizando ObjectMapper mapeamos todos los datos a nuestra clase de la siguiente forma:

Link a la librería en Github

Eureka

Todos los datos que anteriormente hemos aprendido a interpretar y convertir a clases de Swift, normalmente la finalidad de descargar esos datos es mostrarlos en una TableView. Eureka es una librería que te ayuda mucho de crear esas TableView y popularlas con los datos anteriormente recibidos.

Link a la librería en Github

SnapKit

SnapKit simplifica el diseño de interfaces gráficas. Permite de una forma elegante y sencilla declarar constraints mediante código.

Link a la librería en Github

Spring

Spring te permite crear animaciones, que llevarán la interfaz gráfica y experiencia de usuario de tu aplicación al siguiente nivel. Como siempre, de una forma intuitiva, elegante y sencilla.

Link a la librería en Github

KingFisher

Una librería que te permite descargar y almacenar en caché imágenes de Internet. Tiene muy poco impacto sobre todo a nivel de memory consumption, lo cual es importantísimo tener en cuenta a la hora de desarrollar una aplicación.

Link a la librería en Github

CoreStore

Una librería que mejora la seguridad y la elegancia de Core Data.

Link a la librería en Github

Chameleon

Chameleon hace crecer exponencialmente las posibilidades de crear una UI de 10. Añade colores a la librería UIColor por defecto de Swift. Además nos permite crear color palettes.

Link a la librería en Github

Quick

Algo que muy pocos programadores hacen es Unit Testing, ese gran desconocido de vital importancia para garantizar la perfecta funcionalidad de nuestra app. Quick es una robusta librería que simplifica el proceso de testear nuestra aplicación.

Link a la librería en Github

¿Conocéis alguna librería que consideréis imprescindible para desarrollar aplicaciones en iOS? Podéis dejarla en un comentario.