Blog

Añadiendo una librería externa mediante Cocoapods.

04 May 2018 | APPs, Desarrollo

Añadiendo una librería externa mediante Cocoapods.

En el desarrollo de un proyecto no siempre es necesario reinventar la rueda. Existen soluciones probadas que nos permiten no solo ganar tiempo, si no también seguridad, ya que han sido testadas por una gran cantidad de desarrolladores y desarrolladoras.

Estas soluciones (o librerías) se basan en la idea de distribución, compartición y reutilización de código, y son gestionadas mediante gestores de paquetes . Estos permiten, entre otras opciones, centralizar el código en servidores públicos con acceso tanto a los que van a usar esas librerías como a los que las desarrollan, haciendo muy sencillo el proceso de descubrirlas y añadirlas a nuestros proyectos.

La gran mayoría de lenguajes de programación modernos disponen de algún gestor oficial como Composer para PHP, Gradle para Java, NPM para NodeJS, RubyGems para Ruby, …

Apple también dispone del suyo, Swift Package Manager , orientado al lenguaje Swift y totalmente nuevo. Tan nuevo que apenas tiene un año, y por ese motivo esta vez nos centraremos en una de las dos alternativas que existen, Cocoapods.

Listado de gestores de paquetes para Swift:

Cocoapods

Cocoapods es el gestor de paquetes más utilizado a la hora de desarrollar Apps tanto para iOS como para OSX y también el más sencillo, y no es para menos, ya que aun estando desarrollado en Ruby permite usarlo sin apenas saber nada sobre Ruby.

Salió a la luz en 2011 y a día de hoy dispone de más de 45000 librerías que se usan en mas de 3 millones de apps.

Entre las librerías más usadas podemos encontrar las siguientes:

Instalación

Para poder utilizar Cocoapods primero tendremos que instalarlo en nuestro equipo, un proceso tan sencillo como escribir una sola línea en la terminal. 😀

$ sudo gem install cocoapods

Preparando el proyecto

Una vez que tengamos instalado Cocoapods tan solo nos quedará añadirlo a nuestro proyecto. Para ello comenzaremos creando el fichero “Podfile”, que es el encargado de gestionar las librerías que queramos añadir. El fichero lo crearemos mediante la terminal con el siguiente comando, que ejecutaremos desde la raíz del proyecto.

$ pod init

Este comando nos creará un archivo Podfile que utilizaremos para escribir en él todos los Pods que queramos añadir a nuestro proyecto. 

 

 

 

 

El contenido del fichero, que lo podremos abrir con cualquier editor, es el siguiente.

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'Ejemplo-Pod-Binima' do
 # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
    use_frameworks!
    # Pods for Ejemplo-Pod-Binima
end
Hay multitud de posibilidades a la hora de añadir librerías a este archivo, pero esta vez nos limitaremos a la manera más sencilla, por lo tanto dejaremos el archivo tal y como esta.

Añadiendo un Pod a nuestro proyecto.
Las librerías en Cocoapods se denominan Pods, y se añaden en el archivo Podfile que acabamos de crear.

Podemos editar el archivo Podfile desde cualquier editor, tanto Textedit como cualquier editor de código. Para nuestro ejemplo utilizaremos la app de Cocoapods, que trae un editor de archivos Podfile además de una terminal.

En la imagen que aparece debajo, hemos añadido un comando en la línea 9 del archivo Podfile.
pod ‘MBProgressHUD'

Ese comando es el que debemos usar para añadir el Pod (librería) MBProgressHUD a nuestro proyecto.
 
Si quisiéramos añadir otra librería, tan solo tendríamos que añadir otra fila, pero siempre entre “target” y “end”.
pod ‘OtraLibreria'

Llegados a este punto tan solo nos queda ejecutar el comando de instalación de Pods. Lo ejecutaremos desde la terminal, en el path donde se encuentra el Podfile, o en nuestro caso pulsaremos el botón “install” arriba a la derecha.

$ pod install

Si es la primera vez que ejecutamos este comando, además de descargarse las librerías que aparecen en el archivo Podfile, también nos creará un archivo .xcworkspace, un archivo Podfile.lock y una carpeta Pods.
El archivo .xcworkspace será el que tendremos que usar a partir de ahora para abrir el proyecto en Xcode.
El archivo Podfile.lock guardará información sobre los Pods que se han descargado, principalmente la versión de cada Pod, y la carpeta Pods se usará para guardar en ella todos los Pods que descarguemos.

Los Pods pueden ser actualizados por sus dueños o la comunidad de manera constante y estos pueden tener cambios que afecten a nuestro proyecto. Para evitarlo se usa el fichero Podfile.lock que guarda un registro de las versiones de cada Pod, de esta manera podemos seguir descargándonos la versión de un Pod que funciona con nuestro proyecto, aunque se haya actualizado y tenga otras versiones más nuevas.

Por ello, cada vez que ejecutemos el comando pod install Cocoapod buscará el Podfile.lock para comprobar que versión de la librería bajar, y en caso de que no exista se descargará la librería más nueva.
El proceso de configurar el proyecto para utilizar Pods no necesariamente se tiene que hacer cuando se crea, y tampoco es necesario instalar todos los Pods que necesitamos en una sola vez. Lo ideal es ir añadiendo los Pods a medida que los vayamos necesitando.

¿Donde puedo buscar los Pods?

Cocoapod tiene una web en la que se pueden buscar los Pods disponibles, y una vez encontrado el Pod tan solo tendremos que copiar su nombre y añadirlo a nuestro Podfile. 

La imagen de arriba muestra la web de Cocoapods con la información del Pod de Alamofire. En este caso, tan solo tendríamos que añadir pod ‘Alamofire’ al Podfile para añadirlo a nuestro proyecto.

Aitor Zubizarreta

El software es un gas: se expande hasta llenar su contenido

Aitor Zubizarreta

iOS Developer

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *