Slide 1

Slide 1 text

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

Slide 14

Slide 14 text

Conclusion This page intentionally left blank.