Middle
Como gerir dependências num projeto iOS?
sobes.tech IA
Resposta da IA
Existem várias formas populares:
-
CocoaPods:
- Gestor de dependências descentralizado, escrito em Ruby.
- Utiliza ficheiros
.podspecpara descrever dependências. - Instala-se com o comando
sudo gem install cocoapods. - Adiciona um Podfile na raiz do projeto.
- Executa
pod installpara instalar dependências e criar o espaço de trabalho.xcworkspace.
-
Carthage:
- Gestor de dependências descentralizado que compila frameworks.
- Escrito em Swift.
- Prefere frameworks binários.
- Instala-se via Homebrew com
brew install carthage. - Utiliza Cartfile para descrever dependências.
- Executa
carthage update --platform iOS. - Os frameworks compilados são adicionados manualmente em Target > General > Frameworks, Libraries, and Embedded Content.
-
Swift Package Manager (SPM):
- Gestor de dependências integrado no Xcode para Swift.
- Abordagem centralizada usando repositórios de pacotes.
- Utiliza
Package.swiftpara descrever dependências. - Está integrado diretamente no Xcode.
- Adiciona dependências através de File > Add Packages... ou Project > Package Dependencies.
- Resolução e download automáticos de dependências.
Comparação:
| Característica | CocoaPods | Carthage | Swift Package Manager (SPM) |
|---|---|---|---|
| Linguagem | Ruby | Swift | Swift |
| Instalação | gem install |
brew install |
Integrado no Xcode |
| Ficheiros de configuração | Podfile, .podspec |
Cartfile | Package.swift |
| Tipo de dependências | Código fonte, frameworks binários | Prefere frameworks binários | Código fonte |
| Integração com Xcode | Cria .xcworkspace |
Adição manual de frameworks | Integrado no Xcode |
| Descentralização | Sim | Sim | Sim |
| Centralização | Não | Não | Sim (através de repositórios) |
A escolha depende das preferências da equipa, do tipo de dependências e da necessidade de uma integração estreita com o Xcode. O SPM está a tornar-se o padrão de facto, especialmente para novos projetos em Swift.