Cocoa Pods

Standard

Después de algunos años de resistencia a implementar Cocoa Pods, me vi casi obligado a cambiar mi proyecto actual a esa modalidad por un componente de Gráficas que al final, terminé por no usar por cierto.

¿Por qué me resistía? Porque CocoaPods tiene una manera muy particular de trabajar, mientras que en otros ambientes de desarrollo como Rails, Java, NodeJS por citar algunos, tu instalas tu dependencia y se integra de manera natural en tu proyecto, CocoaPods te genera un workspace, que es un integrador de proyectos. Este workspace integra tu(s) proyecto(s) y agrega otro proyecto con los Pods.

Pero dada la popularidad de CocoaPods, muchos sitios que publican sus componentes solo incluyen el pod que tienes que instalar para empezar a usarlos. Ya se imaginaran en las que me vi para sacarle la vuelta.

Desde el punto de vista de Arquitectura no se me hace un proceso natural, pero en la práctica es muy sencillo de utilizar, y si obviamos ese punto, podemos tener un manejo de dependencias muy dinámico, escalable y es amigable con el control de versiones.

cocoapods-twitter

¿Qué es un Dependency Manager?

Es un Administrador de todos los componentes de los que dependen nuestros proyectos. Tiene bibliotecas que nos ayudan en las diferentes capas y aspectos de nuestra aplicación. Aparte de que alguien más hizo la chamba, por lo regular la integración es muy sencilla y requieren mínima o ninguna configuración.

¿Qué es CocoaPods?

Tomado del sitio: https://cocoapods.org/

CocoaPods es el administrador de dependencias para los Proyectos de Cocoa basados Swift y Objective-C. Tiene más de diez mil bibliotecas y puede ayudar a escalar tus proyectos elegantemente.

Dicho de otra forma, es el estándar de-facto para administrar las dependencias en los proyectos de Cocoa, iOS en mi caso.

Como usar Cocoa Pods en 5 Pasos

Paso 1. Instalación

cocoapods.org dice:

CocoaPods está construido con Ruby y se instala con la última versión de Ruby disponible en OS X (mi caso). Recomiendo hacer esto.

Vamos a la terminal en OS X y escribe este comando:

$ sudo gem install cocoapods

Con esto ya estas listo para empezar.

Para más detalles acerca del proceso de instalación:
http://guides.cocoapods.org/using/getting-started.html#getting-started

Paso 2. Crea un Podfile

Podfile es un archivo específico para CocoaPods donde se listan las bibliotecas que quieres usar en tu proyecto. Para crear el Podfile hay dos opciones:

  • Crea un archivo de texto vacío que se llame Podfile en el directorio del proyecto.
  • O ejecuta el comando “$ pod init“ en el directorio del proyecto y cocoapods creara el archivo por ti, con algunas características por default.

cocoapds01

Ambas son maneras sencillas de crear el archivo Podfile, yo en lo personal soy flojo y uso el segundo. 🙂

Paso 3. Lista tus bibliotecas

Aqui un par de ejemplos de archivos Podfile:

platform :ios, '7.0'
pod 'AFNetworking', '~> 2.0'
platform :ios, '8.0'
use_frameworks!
pod 'Alamofire', '~> 1.2'

cocoapds02

Paso 4. Instala las bibliotecas

Habiendo hecho los pasos anteriores, estamos listos para instalar las dependencias en nuestro Podfile. Es tan fácil como correr
$ pod install
en el directorio del proyecto. (Donde ya está el archivo del Podfile)

cocoapds03

Ahora si todo va de acuerdo a lo esperado, ahora tienes tus bibliotecas en tu proyecto. Y un archivo más con la extensión xcworkspace. De ahora en adelante debes abrir el proyecto con ese archivo. (Xcode workspace)

No abras tu proyecto desde el archivo de extensión xcodeproj si quieres usar cocoapods.

cocoapds04

Asegúrate de correr el comando “$ pod install“ cada vez que agregues o borres una biblioteca de tu Podfile.

Paso 5. Usa las bibliotecas en tu Proyecto.

cocoapds05

Ahora puedes importar tus bibliotecas para usarlas en Swift.
En caso de ser una dependencia de Objective-C, debes importarla en tu archivo de Bridgin-Header.h.

#import <AFNetworking/AFNetworking.h>

Con eso ya estás listo para usar tu dependencias.

cocoapds06

Comparando la situación

Antes

  • Tenía que clonar los repositorios de los componentes que necesitaba.
  • Identificar los archivos base. (quitar la paja)
  • Agregar los archivos en Xcode.
  • Validar si me hacía falta algún archivo o incluso mover código.
  • En caso de una nueva versión, era repetir el proceso.

Ahora

  • Configuro CocoaPods una sola vez.
  • Agrego las dependencias y ejecuto $ pod install y listo.
  • Si no queda claro, revisar la guía de 5 pasos. ñ.ñ

Próximas entregas

En Hunabsys ya contamos con el Apple Watch y estamos haciendo pruebas de desarrollos.
Dado que hasta este último release que liberaron esta semana como Beta, podemos acceder a la información de sensores que maneja, en la próxima semana compartiré un post acerca de como me fue.
Si tienen dudas deja tu comentario o mándame un mensaje por Redes Sociales. Saludos a todos.

Referencias

https://medium.com/5-step-ios-tutorials/how-to-use-cocoapods-137df1bbb89a
http://www.raywenderlich.com/64546/introduction-to-cocoapods-2
https://cocoapods.org/
https://github.com/AFNetworking/AFNetworking
https://github.com/Alamofire/Alamofire

One thought on “Cocoa Pods

  1. Karen Gonzalez

    Muchas gracias!
    Sólo que la instalación no me generó el archivo Bridgin-Header.h.
    Ya vi que no ocupo un puente como ese si dejo habilitada la opción “use_frameworks!”. Lo único que ocupo es hacer un import en el swift file donde lo vaya ocupar. Menos carrilla 😀

Leave a Reply

Your email address will not be published. Required fields are marked *