Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Yet another Dependency Manager

Yet another Dependency Manager

Held at the local Cocoaheads Hamburg


Piet Brauer

January 08, 2015

More Decks by Piet Brauer

Other Decks in Programming


  1. Yet another Dependency manager by the creator of @AirportQuiz

  2. Cocoapods • since 17/9/2011 • originally created by @alloy •

    written in ruby • currently 7499 packages published
  3. Carthage • since 18/11/2014 • created by jspahrsummers • written

    in Swift • theoretically every Xcode project can be a package
  4. Cocoapods Installation gem install cocoapods

  5. Carthage installation brew install carthage

  6. 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
  7. 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
  8. 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
  9. Integrate other projects into yours (Carthage) • Write down in

    Cartfile • github "NBNPhotoChooser" ~> 0.2.0 • carthage update • integrate the built .frameworks yourself
  10. Upsides Cocoapods • well done dev toolset around dependencies •

    Cocoadocs • project bootstrapping • widely adopted and supported • no integration pain
  11. Upsides Carthage • new and fresh • not another language

    to know • feels more natural for iOS developers
  12. Downsides Cocoapods • modifies your project and you have to

    use a Xcode workspace • written in Ruby
  13. Downsides Carthage • pretty new • adoption is not as

    widely as with cocoapods • integration is still a small pain • iOS 8 only
  14. Conclusion This page intentionally left blank.