¿Qué es CocoaPods?
CocoaPods es un gestor de dependencias para proyectos de Swift y Objective-C que te permite integrar librerías externas en tu aplicación. Con CocoaPods, puedes instalar fácilmente librerías de terceros y mantenerlas actualizadas con facilidad.
Instalación de CocoaPods
Para utilizar CocoaPods, primero debes instalarlo en tu computadora.
A continuación te presento 3 opciones para realizar la instalación (RubyGems, Homebrew y de forma manual).
Instalación con RubyGems
Para instalar CocoaPods con RubyGems, ejecuta el siguiente comando en una terminal:
sudo gem install cocoapods
Este comando instalará la última versión de CocoaPods en tu máquina.
Instalación con Homebrew
Para instalar CocoaPods con Homebrew, lo primero que debemos tener instalando es el propio homebrew, ejecuta el siguiente comando en una terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Una vez instalado Homebrew, podemos instalar CocoaPods, ejecuta el siguiente comando en una terminal:
brew install cocoapods
Instalación Manual
Puedes descargar el archivo de instalación desde la página de descargas de CocoaPods (https://cocoapods.org/app). Después de descargar el archivo, abre la carpeta que lo contiene y arrastra el archivo CocoaPods.app a la carpeta de aplicaciones en tu Mac. Luego, abre la aplicación y sigue las instrucciones para completar la instalación.
¿Cómo utilizar CocoaPods?
Una vez instalado CocoaPods, lo primero que debes hacer es crear un archivo Podfile.
Crear archivo Podfile
Para crear un archivo Podfile, lo primero que debes hacer es abrir una terminal y situarte en la raíz del proyecto en el que quieres integrar una librería, después ejecuta el siguiente comando:
pod init
Este comando creará un archivo llamado Podfile en el directorio raíz de tu proyecto.
Lo siguiente es abrir el archivo Podfile con el editor de texto de tu preferencia (Visual Studio Code, Notepad ++, TextEdit), tendrás una estructura parecida a la siguiente:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'SSB-App' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for SSB-App
end
Si te interesa, a continuación te explico cada línea de tu archivo Podfile:
Nota: No es necesario para poder continuar con esta guía, ya que más adelante mencionare específicamente que debes modificar en tu archivo.
La línea inicial con el símbolo de numeral (#) indica que es un comentario. Los comentarios en el archivo Podfile se utilizan para proporcionar información sobre el archivo o para explicar el código. En este caso, el comentario indica que si se desea definir una plataforma global para el proyecto, se debe descomentar la siguiente línea.
La siguiente línea, que está actualmente comentada, define la plataforma global para el proyecto. Si la línea se descomenta, el proyecto se configurará para que se ejecute en iOS versión 9.0. Si tu proyecto debe ejecutarse en una versión diferente de iOS, puedes cambiar el número de versión 9.0 por la versión que necesites.
La línea que comienza con «target» define el objetivo o target del proyecto en el que se deben instalar los pods. En este caso, el target se llama ‘SSB-App’.
La línea siguiente, que comienza con «# Comment the next line if you don’t want to use dynamic frameworks», se utiliza para desactivar el uso de frameworks dinámicos en el proyecto. Si quieres usar frameworks dinámicos en tu proyecto, puedes descomentar esta línea para activar su uso.
La línea siguiente, que comienza con «use_frameworks!», indica que se deben utilizar frameworks en el proyecto. Esta línea debe estar comentada si no se quieren utilizar frameworks en el proyecto.
La última sección, que está en blanco, es donde se deben agregar los pods que se quieran utilizar en el proyecto. Los pods se agregan utilizando el comando «pod» seguido del nombre del pod. Por ejemplo, si quisieras agregar el pod «Alamofire», tendrías que agregar la siguiente línea:
pod 'Alamofire'
.
Agregar librerías
Después de crear el archivo Podfile, es momento de agregar las librerías que deseas utilizar en tu proyecto, para este ejemplo vamos a suponer que queremos utilizar la librería Alamofire.
Usualmente en la descripción del repositorio del proyecto encontraras las instrucciones para integrar la librería, en el caso de Alamofire podemos encontrar algo como lo siguiente:
A nosotros nos interesa el apartado de CocoaPods, ya que Carthage y Swift Package Manager son otras alternativas para gestionar dependencias.
Vamos agregar la línea pod ‘Alamofire’ a nuestro archivo Podfile justo debajo de la línea «# Pods for SSB-App».
Nota: En tu caso el nombre «SSB-App» es el nombre de tu proyecto.
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'SSB-App' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for SSB-App
pod 'Alamofire'
end
Es importante quitar el «#» de la segunda línea (#platform :ios‘9.0’), con ello estaremos quitando el comentario de esa línea y podremos usarla.
En esa línea debemos especificar la plataforma global para el proyecto, es decir, con que versión de iOS se ejecutará el proyecto.
Para este ejemplo, Alamofire especifica que la versión mínima es 12, por lo que haremos el ajuste.
Nota: Es importante leer la documentación de nuestras librerías para saber cuál es la versión mínima que soporta y que no ocasione ningún tipo de error al momento de instalarla.
# Uncomment the next line to define a global platform for your project
platform :ios, '12'
target 'SSB-App' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for SSB-App
pod 'Alamofire'
end
Instalar librerías
Una vez que hayas agregado las librerías en tu archivo Podfile, debes instalarlas en tu proyecto. Para hacerlo, ejecuta el siguiente comando en una terminal (Ubicados en la raíz de nuestro proyecto):
pod install
Este comando instalará las librerías que has especificado en tu archivo Podfile y creará un archivo .xcworkspace en el directorio raíz de tu proyecto.
A partir de ahora el archivo que debes abrir para trabajar tu proyecto es ese, el archivo .xcworkspace y no el archivo .xcodeproj, ya que este nuevo proyecto incluye todos los pods que se han instalado en tu proyecto
¿Cómo utilizar las librerias en mi proyecto?
Puedes importar las librerías en tu código utilizando la sentencia import. Por ejemplo, si has instalado la librería Alamofire, puedes importarla en tu archivo Swift de la siguiente manera:
import 'Alamofire'
¿Cómo mantener actualizadas ls librerías?
Es importante destacar que una de las principales funcionalidades de CocoaPods es la capacidad de mantener actualizadas las librerías externas que se han agregado al proyecto. Para ello, se puede utilizar el comando «pod update» en la terminal, el cual buscará y descargará las últimas versiones disponibles de las librerías especificadas en el archivo Podfile y actualizará el proyecto.
pod update
Es recomendable utilizar el comando «pod update» con precaución y revisar cuidadosamente los cambios que se han realizado en las librerías, ya que las actualizaciones pueden incluir cambios en la funcionalidad o en la compatibilidad con versiones anteriores.
¿Cómo especificar versiones de mi libreria?
es posible especificar versiones específicas de las librerías en el archivo Podfile utilizando el operador «~>», lo que permite asegurar que las actualizaciones no rompan la compatibilidad con el proyecto. Por ejemplo, si se desea utilizar la versión 2.0 de la librería Alamofire, se puede agregar la siguiente línea en el archivo Podfile:
pod 'Alamofire', '~> 2.0'
Comandos adicionales interesantes
También es importante destacar que se pueden utilizar algunos comandos adicionales de CocoaPods para gestionar las dependencias del proyecto. Algunos ejemplos son:
- «pod outdated»: muestra las librerías que necesitan ser actualizadas.
- «pod deintegrate»: elimina los archivos generados por CocoaPods del proyecto.
- «pod clean»: elimina los archivos de caché y temporales de CocoaPods.
Consejos y Buenas practicas
- Es importante revisar la documentación y la compatibilidad de las librerías antes de agregarlas a un proyecto. Además, se recomienda verificar si hay problemas conocidos con ciertas versiones de las librerías para evitar posibles conflictos.
- Se recomienda utilizar versiones específicas de las librerías en lugar de utilizar siempre la última versión disponible, ya que pueden haber cambios que afecten la funcionalidad del proyecto.
- En caso de que una librería no tenga soporte para CocoaPods, es posible agregarla manualmente utilizando la opción «source» en el archivo Podfile.
- Es recomendable crear un archivo .gitignore para evitar que los archivos generados por CocoaPods se incluyan en el repositorio de Git, ya que esto puede aumentar el tamaño del repositorio y generar conflictos.
- Si se trabaja en un equipo de desarrollo, se recomienda utilizar la opción «lockfile» al ejecutar el comando «pod install» para asegurarse de que todos los miembros del equipo estén utilizando las mismas versiones de las librerías.
- Es importante mantener actualizadas las librerías instaladas en el proyecto, ya que las actualizaciones pueden incluir correcciones de errores y nuevas funcionalidades.
- En caso de tener problemas al utilizar CocoaPods, se puede consultar la documentación oficial o buscar ayuda en la comunidad de desarrolladores de Swift y Objective-C.
Conclusión
CocoaPods es una herramienta de gestión de dependencias muy útil para proyectos en Swift y Objective-C, que permite integrar fácilmente librerías externas y mantenerlas actualizadas con facilidad. Para utilizar CocoaPods, es necesario instalarlo en la computadora y crear un archivo Podfile que incluya las librerías que se desean utilizar. Además, es importante estar al tanto de las actualizaciones de las librerías y utilizar los comandos proporcionados por CocoaPods para mantener un control adecuado de las dependencias del proyecto.
Entre las mejores prácticas al utilizar CocoaPods, se recomienda revisar la documentación y la compatibilidad de las librerías antes de agregarlas, utilizar versiones específicas de las librerías, crear un archivo .gitignore para evitar conflictos en el repositorio, y utilizar el comando «pod update» con precaución. También es posible utilizar otros comandos adicionales de CocoaPods, como «pod outdated», «pod deintegrate» y «pod clean», para gestionar las dependencias del proyecto.
En resumen, CocoaPods es una herramienta muy útil y fácil de utilizar que ayuda a ahorrar tiempo en la integración de librerías externas en proyectos de Swift y Objective-C, siempre y cuando se utilice de manera adecuada y se sigan las mejores prácticas recomendadas.