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
Tweet

More Decks by Piet Brauer

Other Decks in Programming

Transcript

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

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

    in Swift • theoretically every Xcode project can be a package
  3. 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
  4. 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
  5. 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
  6. Integrate other projects into yours (Carthage) • Write down in

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

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

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

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

    widely as with cocoapods • integration is still a small pain • iOS 8 only