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

CocoaPods at Square

CocoaPods at Square

A Peek Into iOS Engineering at Square

Brian Partridge

June 09, 2015
Tweet

More Decks by Brian Partridge

Other Decks in Technology

Transcript

  1. In the dark times… Slow Builds Xcode has to build

    each target. Release Management Managing branches in multiple repositories. Lost Engineer Time 15 hours a week.
  2. In the dark times… Slow Builds Xcode has to build

    each target. Release Management Managing branches in multiple repositories. Lost Engineer Time 15 hours a week. There’s got to be a better way…
  3. The Hunt VESSEL & SUBMODULES VESSEL & SUBTREES COCOAPODS CARTHAGE

    MAVEN/GRADLE Auto Download Dependencies Auto Build Config Dependency Versioning Nested Dependencies Diamond Dependencies Conflict Detection Tools & iOS Support Team Opinion Workflow Impact
  4. CocoaPods Semantic Versioning Meaningful version numbers. a1b2c3d4… vs 1.23.45 Dependency

    Resolution Diamond dependencies are no longer surprises. Supports Libraries Does not require Frameworks. Extensibility Plugins and scripting.
  5. Methodology Bottom Up Start at the leaves. Start Small Smaller

    apps with fewer dependencies. Tests Transition test targets to consume pods first. Tests@2x Use tests for validation of generated podspecs.
  6. Challenges Partial Podification Making Vessel and CocoaPods work together. Code

    Generation Protocol buffer bindings. Concurrent Development Developing a pod alongside a consumer.
  7. Future Faster Builds Caching build artifacts from for use as

    binary pods. Plugins Podfile.local replacement.