fbpx
 

Tutorial Paso a Paso de CocoaPods

Tutorial Paso a Paso de CocoaPods

1. Introducción

CocoaPods. Estoy seguro que has oído hablar de esta herramienta.

Se trata del Gestor de Dependencias más conocido y utilizado en Desarrollo iOS.

Es una herramienta fundamental que te hará la vida más fácil a la hora de trabajar con librerías externas en tus proyectos con Swift y Objective-C.

Si no has trabajado nunca con CocoaPods, este tutorial es para ti.

2. ¿Qué vas a aprender en este Tutorial?

Estos son los puntos más importantes en los que nos centraremos:

  • ¿Qué es CocoaPods?
  • ¿Por qué deberías usar CocoaPods en tus proyectos iOS?
  • ¿Como configurar un Proyecto iOS con CocoaPods?

¡Comenzamos!

3. ¿Qué es CocoaPods?

Como hemos comentado al principio, CocoaPods es un Gestor de Dependencias para Proyectos iOS. Pero empecemos por lo básico.

¿Qué es un Gestor de Dependencias?

Cuando hablamos de Dependencias, nos referimos a Librerías Externas que queremos integrar en nuestros proyectos. Si nunca antes has integrado una librería externa en alguno de tus proyectos iOS, te recomiendo que eches un vistazo a uno de nuestros últimos tutoriales, donde puedes ver paso a paso este proceso:

Integrando Librerías Externas en tus proyectos

Ahora que ya entiendes a que nos referimos cuando hablamos de dependencias, podríamos llegar a la conclusión de que si CocoaPods se trata de un gestor de dependencias, su misión será automatizar parte de este proceso de integración y mantenimiento de las librerías externas en nuestros proyectos.

Exacto, esa es su función.

4. ¿Por qué deberías usar CocoaPods en tus proyectos iOS?

Si has echado un vistazo al tutorial que te he recomendado en el apartado anterior habrás visto paso a paso el proceso manual de añadir una librería externa a un proyecto iOS.

Basicamente el proceso consiste en esto:

  • Buscar el enlace de descarga de la última versión de la librería.
  • Descargar dicha librería.
  • Añadir la carpeta con la librería a nuestro proyecto en Xcode.
  • Comprobar si nuestra librería depende de otras librerías.
  • En caso afirmativo descargarlas también.
  • Añadirlas a nuestro proyecto en Xcode.

Todo este proceso puede hacerse de forma rápida y sencilla utilizando CocoaPods.

Si esto no te parece suficiente ventaja, te voy a mostrar un problema muy común que puede surgir si no utilizas CocoaPods.

La Maldición de las Librerías

Imagina que has integrado de forma manual (Sin utilizar CocoaPods) la librería AFNetworking en uno de tus proyectos.

[caja-roja]AFNetworking es junto con Alamofire la librería de comunicaciones más importante y utilizada en Desarrollo iOS. Vamos a usarla como ejemplo en el Tutorial sobre CocoaPods[/caja-roja]

Tu aplicación está funcionando perfectamente con AFNetworking. Un día, Mattt Thompson el principal desarrollador de la librería, libera una nueva versión que mejora la seguridad y corrige algunos bugs importantes detectados en versiones anteriores.

¿Qué es lo que haces? Se trata de una nueva versión que aumenta la seguridad de las comunicaciones de la librería.

Ummm… Seguridad…Suena a que tengo que actualizar la librería si o si.

Te toca acceder al repositorio de AFNetworking, descargar el SDK completo de nuevo y añadirlo a tu proyecto iOS.

¿Y si un mes después el bueno de Mattt vuelve a liberar otra versión?

Tendríamos que volver a repetir el proceso.

¿Y si en vez de en un proyecto estás trabajando en 5 proyectos? Tendrías que ir actualizando todas tus aplicaciones con cada nueva versión.

Esto te llevaría a convertirte en esclavo de tu código.

CocoaPods te permite automatizar la búsqueda, descarga e integración de nuevas versiones de librerías externas en tus proyectos iOS.

Solo por este motivo deberías plantearte seriamente utilizarlo.

¿Todavía no te he convencido?

Bien, pues como última medida desesperada te diré que hay una empresa bastante conocida que lo utiliza de forma intensiva en sus desarrollos: Google

Si Google utiliza CocoaPods, quiere decir que se trata de una gran herramienta. Si nosotros como desarrolladores disponemos de una gran herramienta y además es GRATIS, no se me ocurre ninguna razón para no utilizarla.

5. Instalando CocoaPods en tu ordenador

Instalar CocoaPods es un proceso muy sencillo. Simplemente tienes que abrir el terminal de tu sistema y escribir el siguiente comando:

CocoaPods se distribuye mediante Ruby y como en OS X, Ruby está disponible por defecto en nuestro sistema, podemos utilizar este comando para instalarlo fácilmente.

Después de teclear esta instrucción, se nos solicitará nuestra contraseña de Administrador para continuar. Una vez que la hayas introducido tendrás que esperar unos instantes hasta que el proceso de instalación finalice. Al acabar, en tu terminal aparecerá algo similar a esto:

cocoapods terminal installing

 

Si se produjera algún error durante la instalación te recomiendo que actualices a la última versión de Ruby Gems con el siguiente comando y luego vuelvas a intentar instalar CocoaPods:

6. Usando CocoaPods en uno de nuestros proyectos

Una vez que hemos instalado CocoaPods, veamos como utilizarlo.

Vamos a crear un proyecto de prueba en Xcode para demostrar como podemos instalar la librería AFNetworking a través de CocoaPods.

[caja-gris]Si te interesa la instalación de cualquier otra librería en alguno de tus proyectos, los pasos que debes seguir son exactamente iguales a los que vamos a ver con AFNetworking[/caja-gris]

Crea un nuevo proyecto en Xcode. Elige la plantilla “Single View Application“. Puedes nombrarlo TestingCocoaPods. Deja el resto de opciones tal y como ves en la imagen:

 

cocoapods new project

 

Al guardar el proyecto, asegúrate de guardarlo en el Escritorio de tu Mac. Es importante para poder seguir paso a paso este Tutorial.

Lo siguiente que harás, una vez que has creado y guardado el proyecto en tu escritorio será cerrarlo. Sí, como oyes, cierra tu proyecto y cierra Xcode. Lo primero que vamos a hacer es configurar CocoaPods en nuestro proyecto y para eso ahora mismo no necesitamos Xcode.

Abre el Terminal de nuevo y teclea el siguiente comando:

Esto nos permitirá navegar a través del terminal a la ruta exacta donde está guardado nuestro proyecto.

[caja-gris]Para poder configurar CocoaPods en cualquier proyecto debes situarte mediante el Terminal en la ruta exacta donde esté guardado dicho proyecto[/caja-gris]

Creando un Podfile

Lo siguiente que haremos será crear un Podfile.

Un Podfile es un fichero que se almacena en el directorio raiz de nuestro proyecto y se encarga de gestionar los pods que queramos instalar en nuestro proyecto.

Sí, ya se cual es tu siguiente pregunta: ¿Y qué es un Pod?

Un pod es simplemente una referencia a una librería externa que queramos añadir a nuestro proyecto.

A modo de resumen, CocoaPods funciona de la siguiente forma:

  1. Creamos un Podfile en la raiz de nuestro proyecto.
  2. Este PodFile tendrá un Pod por cada una de las librerías que vayamos a añadir a nuestra aplicación.
  3. CocoaPods antes de realizar cualquier cambio, utiliza el fichero Podfile para saber que es lo que tiene que hacer.

Vamos entonces a por el paso 1.

Para crear el Podfile en nuestro proyecto, escribe el siguiente comando en el terminal:

CocoaPods generará un Podfile como este:

De hecho, si accedes al directorio raiz de tu proyecto podrás ver como el fichero Podfile aparece ahí mismo.

cocoapods podfile createdEsta sería la estructura básica del Podfile. Lo que tenemos que hacer ahora es editar este fichero para poder añadir nuestros pods.

Editando el Podfile con Vim

Para realizar la edición de este fichero vamos a utilizar un editor llamado Vim. Vim es un programada incorporado dentro de cada Mac que permite editar ficheros de texto directamente desde el terminal.

Para editar el Podfile escribe el siguiente comando en tu terminal:

A través de este comando accedes al Vim. Se mostrará en tu terminal una pantalla como esta:

cocoa pods editing pod file with vimTeniendo en cuenta que la librería que queremos integrar en nuestro proyecto es AFNetworking, tendrás que editar el podfile y añadir la siguiente linea justo antes del end del fichero:

El aspecto que debería tener tu podfile después de añadir esta linea es el siguiente:

Una vez que hemos añadido el pod de AFNetworking tendremos que guardar los cambios y salir.

Para hacer esto en Vim, pulsa la tecla Esc y teclea esto:

Esto quiere decir, Write and Quit. Es decir, guardar cambios y cerrar Vim.

Resumen del Podfile

Antes de continuar, veamos un pequeño resumen del podfile:

  • Las lineas que aparecen detrás de # son comentarios, por lo que realmente no influyen en nuestro fichero
  • La primera linea que vemos es target ‘TestingCocoaPods’ do. Lo que especifica esta linea es el nombre del proyecto donde estamos añadiendo CocoaPods. Adopta el nombre de nuestro proyecto en Xcode.
  • La siguiente linea es use_frameworks! Esta linea indica a CocoaPods que vamos a utilizar frameworks en lugar de librerías estáticas. Simplemente quédate con que esta linea es obligatoria cuando trabajas con proyectos en Swift.
  • La última linea es pod ‘AFNetworking’, ‘~> 3.0’ y define que vamos a utilizar un pod que corresponde con la librería de AFNetworking, con una versión determinada. Se pueden especificar diferentes versiones utilizando algunos operadores. Puedes consultar de forma exacta lo que significa el operador ~> y el resto de operadores de CocoaPods, en esta página.

En este punto tal vez te preguntes como he sabido el nombre del pod que tengo que utilizar para agregar la librería AFNetworking.

Tienes dos opciones para conocer este nombre:

Opción 1: A través de la página oficial: cocoapods.org

cocoapods cocoapods.org web

 

Desde la web oficial de CocoaPods puedes hacer una búsqueda de cualquier librería que quieras añadir a tu proyecto. Por ejemplo, si buscamos AFNetworking, verás que obtienes una serie de resultados en la parte inferior. Si haces clic en la primera opción que nos ofrece (Que corresponde con la librería sin ningún otro framework añadido) se mostrará en la web un apartado llamado Podfile donde viene la linea que tendríamos que añadir en nuestro fichero podfile:

cocoapods afnetworking instalation

Opción 2: Directamente en la documentación de la librería

Si por ejemplo, accedes al repositorio de AFNetworking podrás ver como existe un apartado llamado Installation with CocoaPods donde aparece perfectamente explicado el aspecto que debe tener tu fichero Podfile para agregar esta librería. La mayoría de librerías conocidas disponen de este apartado en su documentación.

 

cocoapods installation from afnetworking repository

 

Ahora que ya has comprendido al 100% el funcionamiento del fichero PodFile, vayamos con el último comando que debes introducir en tu terminal para que CocoaPods realice la instalación de AFNetworking:

CocoaPods comenzará a descargar la librería e instalará el pod de AFNetworking en nuestro proyecto.

Ten paciencia porque es probable que en tu terminal aparezca “Setting up CocoaPods master repo” durante algunos minutos.

El problema que existe en este punto es que el Terminal no nos muestra en ningún momento si el proceso de instalación está avanzando correctamente. A pesar de que CocoaPods es una herramienta muy fiable, como cualquier otro programa, no es perfecto, por lo que puede ocurrir que el proceso de descarga/instalación de nuestra librería se quede congelado por algún error y nosotros no nos enteremos.

Aprovechando el Monitor de Actividad

Existe un pequeño truco para saber si el proceso está realizando la descarga correctamente.

Simplemente tienes que ir al Monitor de Actividad de tu Mac, acceder al apartado Red y buscar el proceso git-remote-https. Este proceso es el que está realizando el trabajo de instalación de nuestra librería. Si ves que pasados unos segundos, los bytes recibidos no avanzan, te recomiendo que canceles el proceso utilizando las teclas Ctrl+C desde el terminal y repitas de nuevo el comando de instalación.

cocoapods process downloadingDespués de realizar la descarga e instalación, se creará un workspace en tu proyecto llamado TestingCocoaPods.xcworkspace. Este workspace englobará a tu proyecto original en Xcode y a la librería AFNetworking.

A partir de ahora, para abrir tu proyecto, tendrás que abrirlo desde el fichero TestingCocoaPods.xcworkspace en lugar de utilizar como siempre TestingCocoaPods.xcodeproj.

7. Echando un ojo al aspecto final de nuestro proyecto

Como acabamos de decir, abre tu proyecto haciendo doble clic en el fichero TestingCocoaPods.xcworkspace

Puedes ver que dentro de nuestro workspace tenemos dos proyectos:

  • TestingCocoaPods (Nuestro proyecto original)
  • Pods (El proyecto que contiene nuestra librería AFNetworking)

cocoapods xcode with afnetworking addedDe esta forma, ya tenemos añadida la librería AFNetworking y podemos utilizarla en cualquier parte de nuestro proyecto.

Si quieres comprobar que todo funciona correctamente puedes añadir la siguiente linea de código a tu fichero ViewController.swift justo después de import UIKit:

Como ves, Xcode no da ningún error y nuestro proyecto compila perfectamente.

cocoapods project compilingLo más importante de todo este proceso, es que a partir de ahora, CocoaPods gestionará automáticamente la librería AFNetworking de nuestro proyecto, por lo que no tendremos que preocuparnos de realizar nosotros ese trabajo.

8. Resumen Final y Descarga del Proyecto

Estos son los puntos más importantes que hemos visto en el tutorial de esta semana:

  • ¿Qué es CocoaPods?
  • ¿Para qué sirve CocoaPods?
  • Ventajas de usar CocoaPods
  • Como configurar CocoaPods en tus proyectos iOS paso a paso
  • Como añadir una librería externa a tu proyecto iOS utilizando CocoaPods

Puedes descargar el proyecto completo que hemos desarrollado siguiendo este tutorial desde aquí.

9. Has terminado el Tutorial

Espero que hayas disfrutado este tutorial y sobre todo te sirva para poder integrar CocoaPods en tus proyectos iOS.

Como siempre, aquí tienes el video-chorra de esta semana (Activa el sonido de tu ordenador porque si no no tiene gracia).

Nunca vienen mal unas buenas carcajadas 😉

[ejercicio titulo = “La lancha del calvo” num=”1″]

[/ejercicio]

10. ¿Donde ir ahora?

Puedes acceder a más tutoriales disponibles en EfectoApple desde aquí.

Si este artículo te ha parecido útil, me harías un gran favor compartiéndolo en tus redes sociales.

Y como siempre, para cualquier duda, tienes los comentarios a tu disposición.

Recuerda, cada lunes un nuevo Tutorial sobre Desarrollo iOS.

Gracias por leer EfectoApple.

Etiquetas:
9 Comentarios
  • adario
    Publicado a las 03:07h, 21 enero Responder

    Hola. Si tengo un proyecto que alguien más hizo, pero éste no trae consigo las librerías, existe alguna forma para decirle a cocoapods “instala todas las librerías que se necesitan”?

    • Luis R
      Publicado a las 15:32h, 21 enero Responder

      Hola adario.
      Si las librerías no están incluidas en el proyecto pero tienes el Podfile puedes instalar las librerías fácilmente.
      Si tampoco tienes el Podfile lo que yo haría sería compilar la aplicación, echar un vistazo a los errores, e ir viendo los nombres de las librerías que faltan. Con los nombres de las librerías ya podrías crear tu mismo el Podfile.
      Si tienes alguna duda más, me dices.

      Un saludo!

  • Paullina
    Publicado a las 21:04h, 03 abril Responder

    Hola, al instalar cocoapods, mi Mac me marca un error, actualicé Gem y salió que ya estaba en su ultima versión, el error que me aparece es: ERROR: While executing gem . . . (Errno : : EPERM)
    Operation not permitted – /usr/bin/fuzzy_match

    • Luis R
      Publicado a las 12:37h, 04 abril Responder

      Hola Paullina.

      Prueba con el siguiente comando:

      sudo gem install -n /usr/local/bin cocoapods

      Saludos!

  • Paullina
    Publicado a las 21:08h, 07 abril Responder

    Una pregunta mas, no entiendo como guardar los cambios en vim, en donde escribo :wq? y despues donde escribo el comando pod install? gracias

    • Luis R
      Publicado a las 08:34h, 08 abril Responder

      Hola Paullina.

      Para poder escribir :wq en Vim, hay que pulsar la tecla Esc antes.

      Es decir, una vez que has terminado de editar el fichero y quieres guardarlo, debes pulsar la tecla Esc. Después ya podrás teclear :wq para indicarle a Vim que quieres guardar el contenido del fichero y salir del editor.

      Por otro lado, el comando pod install lo tienes que escribir directamente en tu terminal.

      Para lanzar el terminal en Mac, lo mas sencillo es pulsar la combinación de teclas cmd+espacio, escribir directamente terminal y pulsar Intro.

  • Daniel Arboleda
    Publicado a las 16:18h, 28 abril Responder

    Muchas gracias, excelente guía, se nota el esfuerzo en el detalle con el que realizan cada numeral.

    • Luis R
      Publicado a las 21:00h, 01 mayo Responder

      Gracias a ti por el comentario Daniel.
      Me alegra mucho que te sean útiles los tutoriales.

      Un saludo grande.

  • Ana R
    Publicado a las 11:46h, 24 agosto Responder

    Hola Luis,

    En el último paso, cuando quiero instalar el pod. Es decir cuando escribo:

    pod install

    Me aparece el siguiente error:

    [!] Invalid `Podfile` file: syntax error, unexpected tIDENTIFIER, expecting keyword_do or ‘{‘ or ‘(‘.

    Soy incapaz de solucionarlo. ¿Me ayudas?

    Gracias

Escribe un comentario

10AppsIpad

Descarga las 10 Aplicaciones

Introduce tu Nombre y tu Email para recibir las Apps en tu Correo

Acabo de enviarte un email. Sigue las instrucciones para descargar las Aplicaciones. Puede que tengas que revisar tu buzón de correo no deseado. Gracias.