Enquanto desenvolvemos aplicativos para o iOS é muito comum utilizarmos biblioteca de terceiros, que se tornam dependências no projeto. Algumas vezes utilizamos bibliotecas até demais.
Geralmente baixamos as bibliotecas de algum repositório open source (no github, por exemplo) e a adicionamos manualmente ao projeto. Apesar deste processo ser simples ele possui algumas desvantagens:
- Pode ser complicado adicionar uma versão específica do projeto
- Atualizar as bibliotecas usadas no projeto pode ser um trabalho chato e penoso
- Não há uma forma centralizada de adicionar e/ou remover uma dependência.
Cocoapods é uma ferramenta que resolve todos estes problemas e faz com que a a gerência das dependências do projeto seja muito mais simples.
Instalação
Cocoapods precisa do Ruby para funcionar. Por isso, antes de você instalar a cocoapods, é recomendado atualizar o RubyGems:
$ sudo gem update --system
Instalar o cocoapods é bem simples, basta executar os comandos a seguir:
$ gem install cocoapods
$ pod setup
Depois que o cocoapods for instalado, é fácil gerenciar as dependências dos seus projetos com ele. De forma geral isto é um processo de duas etapas:
1) Criar o arquivo PodFile, responsável por listar as dependências do seu projeto. Sempre vai ser necessário especificar a plataforma. Para criar o arquivo faça
$ > Podfile
$ vi Podfile
O conteúdo do arquivo é bem simples e direto. Basicamente, você só precisa especificar, linha a linha, as dependências e suas versões. Também é preciso definir a plataforma que você está programando. Segue um exemplo de Podfile:
platform :ios
xcodeproj 'HelloWorld.xcodeproj'
pod 'FMDB', '~> 2.0'
pod 'Reachability', '~> 3.0.0'
pod 'iRate', '~> 1.4.7'
pod 'MBProgressHUD', '~> 0.5'
pod 'AFNetworking', '~>1.0RC1'
Note que no exemplo acima eu coloquei uma linha especificando o projeto (xcodeproj). Ela não é obrigatória e, caso não exista, o cocoapods irá buscar um arquivo .xcodeproj no diretório corrente.
2) Instalar no projeto
Agora que o arquivo foi criado e devidamente preenchido com todas as bibliotecas que você deseja utilizar, você pode instalar todas as dependências no seu projeto rodando:
$ pod install
A saída do comando acima será mais ou menos assim:
Updating spec repo `master'
Cocoapods 0.13.0 is available.
Using AFNetworking (1.0RC1)
Using FMDB (2.0)
Using MBProgressHUD (0.5)
Using Reachability (3.0.0)
Using iRate (1.4.7)
Generating support files
Além disso, um novo arquivo será criado, com a extensão .xcworkspace. A partir de agora, você precisa abrir este arquivo sempre, ao invés de abrir o .xcodeproj, como sempre fez. Caso você abra o .xcodeproj, o projeto não irá encontrar as dependências.
$ open HelloWorld.xcworkspace
Pesquisando
Para procurar um podfile basta usar a opção “search”. A saída do comando mostra as bibliotecas encontradas com o termo pesquisado, assim como as versões existentes e outras informações sobres as mesmas. Por exemplo, para pesquisar bibliotecas que lidam com JSON:
$ pod search json
--> JSONKit (1.4, 1.5pre)
A Very High Performance Objective-C JSON Library.
- Homepage: https://github.com/johnezang/JSONKit
- Source: https://github.com/johnezang/JSONKit.git
--> SBJson (2.2.3, 3.0.4, 3.1)
This library implements strict JSON parsing and generation in Objective-C.
- Homepage: http://stig.github.com/json-framework/
- Source: https://github.com/stig/json-framework.git
--> TouchJSON (1.0)
TouchJSON is an Objective-C based parser and generator for JSON encoded data.
- Homepage: https://github.com/TouchCode/TouchJSON
- Source: https://github.com/TouchCode/TouchJSON.git
Este é o uso mais simples e direto do cocoapods. Dá para fazer várias outras coisas, como por exemplo, criar repositórios para bibliotecas internas. Abordarei esta e outras funções do cocoapods nos próximos posts. Por enquanto, brinquem com o comando pod.
Para maiores informações visite: http://cocoapods.org/