Yet another
Dependency manager
by the creator of @AirportQuiz
Slide 2
Slide 2 text
Cocoapods
• since 17/9/2011
• originally created by @alloy
• written in ruby
• currently 7499 packages published
Slide 3
Slide 3 text
Carthage
• since 18/11/2014
• created by jspahrsummers
• written in Swift
• theoretically every Xcode project can be a package
Slide 4
Slide 4 text
Cocoapods Installation
gem install cocoapods
Slide 5
Slide 5 text
Carthage installation
brew install carthage
Slide 6
Slide 6 text
Providing a package (Cocoapods edition)
• build your project
• specify a podspec (easy ruby syntax)
• push it to trunk
• new authentication system
• pushes it to Github specs repository
Slide 7
Slide 7 text
Providing a package (Carthage edition)
• build your project
• define dependencies (if any) in a Cartfile (custom DSL)
• provide a Xcode project that builds a framework
Slide 8
Slide 8 text
Integrating other projects into yours
(Cocoapods)
• Write it down in Podfile
• pod "NBNRealmBrowser", '~> 0.2.0'
• pod install
• Cocoapods will download dependencies and integrate
them into your project
Slide 9
Slide 9 text
Integrate other projects into yours
(Carthage)
• Write down in Cartfile
• github "NBNPhotoChooser" ~> 0.2.0
• carthage update
• integrate the built .frameworks yourself
Slide 10
Slide 10 text
Upsides Cocoapods
• well done dev toolset around dependencies
• Cocoadocs
• project bootstrapping
• widely adopted and supported
• no integration pain
Slide 11
Slide 11 text
Upsides Carthage
• new and fresh
• not another language to know
• feels more natural for iOS developers
Slide 12
Slide 12 text
Downsides Cocoapods
• modifies your project and you have to use a Xcode
workspace
• written in Ruby
Slide 13
Slide 13 text
Downsides Carthage
• pretty new
• adoption is not as widely as with cocoapods
• integration is still a small pain
• iOS 8 only