BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Carthage: Um gerenciador de dependências para projetos Xcode

Carthage: Um gerenciador de dependências para projetos Xcode

O Carthage é um gerenciador de dependências para projetos Objective-C e Swift que pretende ser "implacavelmente simples", diz o autor Justin Spahr-Summers. O Carthage vem sendo desenvolvido pelo GitHub e sua filosofia é "delegar tarefas para o XCode e Git" o tanto quanto possível para que os desenvolvedores possam usar as ferramentas que já estão familiarizados.

Para que seja possível reutilizar códigos de forma eficiente é fundamental o gerenciamento das dependências através de bibliotecas ou frameworks. Segundo Spahr-Summers antes do Carthage existiam várias maneiras de distribuir bibliotecas em projetos Cocoa/CocoaTouch:

  • Cópia manual de arquivos fontes, que não suportam nenhum tipo de versionamento e assim é suscetível a conflitos;
  • Subversions externos, submódulos ou árvores Git, cada um deles com seus problemas, diz Spahr-Summers. Em particular, os submódulos do Git tendem a funcionar muito bem até dois ou mais projetos terem uma dependência em comum;
  • O CocoaPods, o gerenciador de dependências padrão do Cocoa. Infelizmente, o CocoaPods tem alguns inconvenientes, de acordo com Spahr-Summers, como a exigência de adicionar um arquivo de especificação Pod para todos os projetos e enviá-lo para um repositório central. A maior desvantagem do CocoaPods, entretanto, é como ele faz o "controle de configuração do projeto," criando um workspace no Xcode para adicionar os Pods nele.

O Carthage nasceu com o objetivo de ser "um simples coordenador entre o Git e o Xcode" que "escolhe versões compatíveis para todas as dependências, fazendo a verificação das dependências com o Git e então construindo os frameworks com o XCode".

O uso do Carthage requer que o desenvolvedor realize uma série de passos:

  1. O primeiro passo para usar o Carthage é instalá-lo, através de um pacote de instalação binário ou usando o Homebrew. Este passo só é feito uma única vez.
  2. Então, todas as dependências hospedadas no GitHub podem ser especificadas em um Cartfile, por exemplo:
    github "Mantle/Mantle" ~> 1.5
    github "ReactiveCocoa/ReactiveCocoa" >= 2.4.7
    github "ReactiveCocoa/ReactiveCocoaLayout" == 0.5.2
    
  3. Uma vez que o Cartfile foi criado, o comando carthage update fará o download e construir todas as dependências;
  4. Finalmente, todos frameworks que o Carthage construir podem ser adicionados a um projeto Xcode. Para o iOS, um passo adicional é necessário, remover as arquiteturas, uma vez que a App Store não permite frameworks binários que incluem binários X86_64.

Uma limitação do Carthage é que somente possui suporte a frameworks, sendo assim não é possível usá-lo em aplicações usando versões anteriores ao iOS 8.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT