Racionalización del Desarrollo del Cacao Con CocoaPods

CocoaPods es una herramienta de administración de dependencias fácil de usar para el desarrollo de iOS y OS X. A pesar de que CocoaPods es bastante claro y fácil de usar, siento que muchos desarrolladores de cacao son reacios a probarlo. En este tutorial, te mostraré cómo empezar a utilizar CocoaPods en menos de cinco minutos..


¿Qué es CocoaPods??

CocoaPods es una herramienta de administración de dependencias para el desarrollo de iOS y OS X. Hace que la administración de bibliotecas de terceros en un proyecto Xcode sea fácil y directa. CocoaPods ha ganado una considerable tracción en la comunidad del cacao y, como resultado, cientos de bibliotecas de código abierto ahora ofrecen soporte para CocoaPods. Para tener una idea de qué bibliotecas están disponibles a través de CocoaPods, visite el sitio web de CocoaPods y busque algunas de sus bibliotecas de terceros favoritas. Compañías como TestFlight, Mixpanel y Google hacen que sus bibliotecas estén disponibles a través de CocoaPods.


¿Por qué debo usar CocoaPods?

Trabajar con bibliotecas de terceros en un proyecto Xcode no siempre es fácil y, a menudo, puede ser una molestia, especialmente cuando se integran bibliotecas que no son ARC en un proyecto habilitado para ARC. Eloy Durán comenzó el proyecto CocoaPods para aliviar este dolor. Antes de cambiar a CocoaPods, hice lo que la mayoría de los desarrolladores hacen; copian manualmente los archivos de origen de las bibliotecas de terceros en un proyecto de Xcode y compilan esos archivos con el resto del proyecto. Aunque este método funcionó bien, actualizar las dependencias de un proyecto fue un proceso engorroso y propenso a errores.

CocoaPods hace que la gestión de las dependencias de un proyecto sea mucho más fácil e intuitiva. Solo necesita especificar qué dependencias o pods desea incluir en su proyecto y CocoaPods se encarga del resto. Actualizar un pod a una nueva versión es tan simple como ejecutar un solo comando en la línea de comandos. Si ha evitado la línea de comandos en el pasado, ahora puede ser un buen momento para familiarizarse con ella..


1. Instalar CocoaPods

Otra gran característica de CocoaPods es que se distribuye como una gema Ruby. Esto hace que la instalación de CocoaPods sea prácticamente indolora. Para instalar la gema CocoaPods, su sistema necesita tener Ruby y RubyGems instalados. No temas porque es probable que tanto Ruby como RubyGems ya estén instalados en tu computadora.

Abre una nueva ventana de Terminal y escribe gema -v para determinar si RubyGems está instalado en su sistema. Si necesitas ayuda para instalar Ruby o RubyGems, Andrew Burgess escribió un excelente tutorial sobre RubyGems en Nettuts +. En caso de que tenga problemas al instalar CocoaPods, es probable que el artículo de Andrew tenga la solución a su problema..

Antes de instalar CocoaPods, asegúrese de actualizar RubyGems ejecutando el siguiente comando en la línea de comandos:

 actualización de gemas --sistema

Dependiendo de la configuración de su sistema, puede ser necesario prefijar este comando con sudo.

Si quieres leer más sobre Ruby y Rubygems, Jeffrey Way escribió un buen artículo sobre Ruby en Net Tuts +. El tutorial de Andrew Burgess que mencioné anteriormente, es parte de una serie en profundidad llamada Ruby for Newbies. Definitivamente vale la pena echarle un vistazo.

Instalar CocoaPods es fácil una vez que Ruby y RubyGems están instalados. Solo ejecuta lo siguiente:

 gema instalar cocoapods

Una vez instalado, configure CocoaPods ejecutando el configuración de la vaina mando. Durante el proceso de configuración, el entorno de CocoaPods se forma y .cocoápodos El directorio se crea en su carpeta de inicio. Esta carpeta oculta contiene todas las especificaciones de pod o especificaciones de pod disponibles..


2. Comenzando con CocoaPods

Paso 1

En lugar de explicar cómo funciona CocoaPods, es mucho más fácil mostrarlo creando un proyecto simple de Xcode utilizando CocoaPods. Abra Xcode y cree un nuevo proyecto basado en el Aplicación vacía modelo. Nombra el proyecto CocoaPods y asegúrese de habilitar ARC (conteo automático de referencias) para el proyecto (figura 1).

Figura 1

Paso 2

Ahora que creamos el proyecto, necesitamos agregar un Podfile. Un Podfile es similar a un Gemfile. Es un archivo de texto que contiene información sobre el proyecto y también incluye las dependencias del proyecto, es decir, las bibliotecas que son administradas por CocoaPods. Cierre el proyecto Xcode y abra una nueva ventana de Terminal. Navegue hasta la raíz de su proyecto Xcode y cree un nuevo Podfile ejecutando toque podfile en la terminal. los toque comando actualiza el modificado La fecha de un archivo, pero crea el archivo para usted si no existe, que es exactamente lo que queremos. Asegúrate de crear el archivo Pod en la raíz de tu proyecto Xcode.

 toque podfile

Paso 3

Abra el Podfile en su editor de texto favorito. Al momento de escribir este tutorial, la versión actual de CocoaPods es 0.16. En esta versión, se requiere especificar la plataforma, iOS u OS X. Esto ya no será necesario en la próxima versión de CocoaPods (0.17). En este ejemplo, le decimos a CocoaPods que apuntamos a la plataforma iOS como se muestra a continuación. Es posible especificar el destino de implementación del proyecto, pero esto es opcional. El destino de implementación predeterminado es 4.3 para iOS y 10.6 para OS X.

 plataforma: ios, '6.0'

Etapa 4

Con la plataforma especificada, es hora de crear la lista de dependencias para el proyecto. Una dependencia consiste en la palabra clave vaina seguido del nombre de la dependencia o pod. Un pod es como una gema, una dependencia o una biblioteca que desea incluir en un proyecto o aplicación. Opcionalmente, puede especificar la versión de la dependencia como se muestra a continuación.

 pod 'SVProgressHUD', '0.9'

Al omitir el número de versión de un pod, CocoaPods usará la última versión disponible (eso es lo que desea la mayoría de las veces). También puede prefijar el número de versión con un especificador para darle a CocoaPods más control sobre qué versión usar. Los especificadores son en su mayoría autoexplicativos (>, > =, <, <=), pero un especificador, ~>, Puede parecer extraño si no está familiarizado con RubyGems. Voy a explicar que ~> significa en el ejemplo que se muestra a continuación. La especificación de pod que se muestra a continuación indica que la versión de la biblioteca AFNetworking debe estar entre 1.0.1 y 1.1 pero excluyendo este último. Esto es muy útil si quiere darle a CocoaPods la capacidad de actualizar las dependencias de un proyecto cuando haya disponibles versiones menores (correcciones de errores), pero excluya las versiones importantes que pueden incluir cambios en la API que podrían romper algo en su proyecto.

 pod 'AFNetworking', '~> 1.0.1'

Una declaración de dependencia tiene muchas más opciones de configuración, que se pueden configurar en el Podfile. Si desea trabajar con la versión de vanguardia de una biblioteca, por ejemplo, puede reemplazar el número de versión de un pod con :cabeza Como se muestra abajo. Incluso puede decirle a CocoaPods qué fuente usar especificando el repositorio git o remitiendo CocoaPods a una copia local de la biblioteca. Estas son las características más avanzadas de CocoaPods..

 pod 'AFNetworking',: head pod 'SVProgressHUD',: git => 'https://github.com/samvermette/SVProgressHUD' pod 'ViewDeck',: local => '~ / Development / Library / ViewDeck'

Paso 5

Con nuestra lista de dependencias especificada, es hora de continuar con el proceso de configuración. Actualice el Podfile como se muestra a continuación y ejecute instalación de la vaina en la terminal. Asegúrese de ejecutar este comando en la raíz de su proyecto Xcode donde también creó el archivo Pod del proyecto..

 plataforma: ios, '6.0' pod 'ViewDeck', '~> 2.2.2' pod 'AFNetworking', '~> 1.1.0' pod 'SVProgressHUD', '~> 0.9.0' pod 'HockeySDK', '~ > 3.0.0 '
 instalación de la vaina

CocoaPods inspecciona la lista de dependencias e instala cada dependencia como se especifica en el archivo de Pod del proyecto. La salida en la línea de comandos muestra lo que CocoaPods está haciendo bajo el capó. Las dos últimas líneas son especialmente interesantes para nosotros; CocoaPods crea un área de trabajo de Xcode y agrega nuestro proyecto a esa área de trabajo. También crea un nuevo proyecto llamado Vainas, agrega las dependencias enumeradas a ese proyecto y vincula de forma estática a una biblioteca. El proyecto Pods recién creado también se agrega al mismo espacio de trabajo (figura 2).

 Resolviendo dependencias de./ Podfile 'Actualizando los repositorios de especificaciones Cocoapods 0.17.0.rc7 está disponible. Resolviendo dependencias para destinopredeterminado '(iOS 6.0) Descargar dependencias Instalar AFNetworking (1.1.0) Instalar HockeySDK (3.0.0) Instalar SVProgressHUD (0.9) Instalar ViewDeck (2.2.5) Generar archivos de soporte 2013-03-28 11: 13: 54.663 xcodebuild [1352 : 1207] XcodeColors: carga (v10.1) 2013-03-28 11: 13: 54.665 xcodebuild [1352: 1207] XcodeColors: pluginDidLoad: [!] De ahora en adelanteCocoaPods.xcworkspace '. IntegrandolibPods.a 'en destinoProyecto CocoaPods 'de Xcode./CocoaPods.xcodeproj '.
Figura 2

Cuando se ejecuta el instalación de la vaina Comando, CocoaPods nos dice que debemos usar el CocoaPods.xcworkspace de ahora en adelante. Los espacios de trabajo de Xcode son un componente clave de cómo funciona CocoaPods. Un espacio de trabajo de Xcode es un contenedor que agrupa uno o más proyectos de Xcode, lo que facilita el trabajo con múltiples proyectos. Como vimos anteriormente, CocoaPods crea un nuevo proyecto para usted, llamado Vainas, y agrega automáticamente este proyecto a un nuevo espacio de trabajo de Xcode. El proyecto con el que comenzamos también se agrega a este espacio de trabajo. La ventaja clave es que su código y las dependencias del proyecto están estrictamente separados. Las dependencias en el proyecto Pods están vinculadas estáticamente con una biblioteca que puede ver en el Construir fases pestaña de nuestro proyecto (figura 3). Es importante recordar utilizar el espacio de trabajo creado por CocoaPods en lugar del proyecto con el que comenzamos. Nuestro proyecto ya está listo para nosotros y podemos comenzar a usar las bibliotecas especificadas en el archivo Pod del proyecto..

figura 3

3. Actualizando Dependencias

Es obvio que CocoaPods facilita la configuración rápida de un proyecto con varias dependencias. Sin embargo, actualizar las dependencias también se vuelve más fácil. Si una de las dependencias de su proyecto recibió una actualización importante y desea utilizar esta actualización en su proyecto, entonces todo lo que necesita hacer es actualizar el Podfile de su proyecto y ejecutar actualización de pod en la linea de comando CocoaPods actualizará las dependencias de su proyecto para usted.


4. Línea de comando

La gema CocoaPods tiene muchos más trucos bajo la manga. Aunque puede usar el sitio web de CocoaPods para explorar la lista de pods disponibles, la gema CocoaPods también le permite enumerar (lista) y buscar (buscar) las especificaciones de pod disponibles. Abra una nueva ventana de Terminal e ingrese el comando progreso de búsqueda de pod para buscar bibliotecas que incluyan la palabra Progreso. La ventaja de buscar pods utilizando la línea de comandos es que solo ve la información que le importa, como la fuente del pod y las versiones disponibles..

Ejecutar el vaina comando (sin ninguna opción) para ver una lista completa de las opciones disponibles. El manual de CocoaPods es excelente, así que asegúrese de leerlo si tiene problemas o tiene alguna pregunta..


Conclusión

Ahora debería tener un conocimiento básico de CocoaPods para poder utilizar CocoaPods en su desarrollo. Una vez que comience a usar CocoaPods, es probable que no pueda vivir sin él. A pesar de que había oído hablar de CocoaPods muchas veces, me llevó algo de tiempo hacer la transición. Sin embargo, una vez que comencé a usar CocoaPods, no he creado un solo proyecto sin él. Estoy seguro de que te encantará una vez que lo hayas probado. No solo le ahorrará tiempo, también hará que su vida como desarrollador sea un poco más fácil.