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

48f07655aeed5ca639b37b05e52d4cb3?s=128

Piet Brauer

January 08, 2015
Tweet

Transcript

  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.