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

Effective Use of Open Source Software

Ash Furrow
September 10, 2013

Effective Use of Open Source Software

Ash Furrow

September 10, 2013
Tweet

More Decks by Ash Furrow

Other Decks in Programming

Transcript

  1. Agenda 1. How to Choose a Library 2. Traditional library

    management sucks 3. CocoaPods is the new hotness 4. Getting started is easy 3
  2. Why? • Build applications faster • Write less code •

    Build better applications • Expose yourself to other devs’ code 6
  3. A Bad Idea • Dependency management Hell • Lack of

    separation of code • No versioning of libraries • Per-file compiler flags 14
  4. Git Submodules • A submodule is like a pointer to

    another repo • Another repo at a specific point in its history • Checks out code into your directory • Submodule interface is not mature • Still have to specify per-file flags • Requires command-line interface 16
  5. CocoaPods • Manages versions and dependencies • Solves a lot

    of problems with file-management • Easy to use 22
  6. CocoaPods • A CocoaPod is a file that specifies a

    library • Name, dependencies, version, etc • CocoaPods is a tool to manage these specs 25
  7. Best Practices • Don’t check in your Pods directory •

    Use .gitignore • Specify explicit version numbers • Inhibit pod warnings 40
  8. Creating a Library • Specify a license • Write a

    good README • Include screenshots • Include sample library usage • Keep files organized 43
  9. Agenda 1. How to Choose a Library 2. Traditional library

    management sucks 3. CocoaPods is the new hotness, submodules are OK too 4. Getting started is easy 47