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

CocoaPods - State of the Union

Orta
September 17, 2013

CocoaPods - State of the Union

2 thirds of the CocoaPods core dev team discuss what you should really know about CocoaPods and where it's heading.

Slides obviously aren't as funny as me and @fabiopelosin but you can get the general gist and check out some of the new design work that's coming to CocoaPods soon.

Orta

September 17, 2013
Tweet

More Decks by Orta

Other Decks in Programming

Transcript

  1. CocoaPods Sunday, 29 September 13 CocoaPods state of the Union

    We’ll throw out some stats We’ll show what’s happened in the last two years and highlight some of the important things you mis have missed CocoaPods Internals We’ll talk about some of the internal details of how cocoapods works CocoaPods Future We’ll discuss what’s happening in the future, where the site, communit yan dproject are heading
  2. CocoaPods 2 Years 1,400 Contributors 2,300 Libraries 4,000 Pull Requests

    6,000 Podspecs 220,000 Gem Downloads Sunday, 29 September 13 40 new contributors a week
  3. CocoaPods 2 Years 1,400 Contributors 2,300 Libraries 4,000 Pull Requests

    6,000 Podspecs 220,000 Gem Downloads Sunday, 29 September 13 40 new contributors a week
  4. CocoaPods 2 Years 1,400 Contributors 2,300 Libraries 4,000 Pull Requests

    6,000 Podspecs 220,000 Gem Downloads Sunday, 29 September 13 40 new contributors a week
  5. CocoaPods 2 Years 1,400 Contributors 2,300 Libraries 4,000 Pull Requests

    6,000 Podspecs 220,000 Gem Downloads Sunday, 29 September 13 40 new contributors a week
  6. CocoaPods 2 Years 1,400 Contributors 2,300 Libraries 4,000 Pull Requests

    6,000 Podspecs 220,000 Gem Downloads Sunday, 29 September 13 40 new contributors a week
  7. CocoaPods 2 Years 1,400 Contributors 2,300 Libraries 4,000 Pull Requests

    6,000 Podspecs 220,000 Gem Downloads Sunday, 29 September 13 40 new contributors a week
  8. CocoaPods 2 Years 1,400 Contributors 2,300 Libraries 4,000 Pull Requests

    6,000 Podspecs 220,000 Gem Downloads Sunday, 29 September 13 40 new contributors a week
  9. CocoaPods Sunday, 29 September 13 Countries: The Netherlands, Italy, UK,

    Switzerland, USA, Australia Projects: Cocoapods.org, CLAide, Cocoapods-core, Cocoapods-downloader, CocoaDocs, xcodeproj, xcproj, Twitter/RSS Feed, Cocoapods Guides, Push Access Server
  10. CocoaPods 3-14 Developers 10 Projects Sunday, 29 September 13 Countries:

    The Netherlands, Italy, UK, Switzerland, USA, Australia Projects: Cocoapods.org, CLAide, Cocoapods-core, Cocoapods-downloader, CocoaDocs, xcodeproj, xcproj, Twitter/RSS Feed, Cocoapods Guides, Push Access Server
  11. CocoaPods 3-14 Developers 10 Projects Sunday, 29 September 13 Countries:

    The Netherlands, Italy, UK, Switzerland, USA, Australia Projects: Cocoapods.org, CLAide, Cocoapods-core, Cocoapods-downloader, CocoaDocs, xcodeproj, xcproj, Twitter/RSS Feed, Cocoapods Guides, Push Access Server
  12. All the things that you shouldn't know Sunday, 29 September

    13 This presentation is focused on the internal information of CocoaPods necessary to easily overcome any issue of this young tool.
  13. CocoaPods takes a set of specifications to generate and setup

    a series of libraries which include the dependencies of the targets of a given project. Sunday, 29 September 13 Setting the context and explaining the basics with some emphasis on some less know point. - The Podfile is about targets. Don't get confused by the implicit target definition. -The Lockfiles, especially the Podfile.lock is as important as the Podfile and as accessible. -Specifications will be only declarative.
  14. Podfile Lockfiles Podspecs The Podfile specifies a list of targets

    which need to be integrated and their dependencies. Sunday, 29 September 13
  15. Podfile Lockfiles Podspecs The Lockfiles store the information about the

    previous installation. There is one for the installation and one for your local sanbox. Sunday, 29 September 13
  16. However the real questions are? How CocoaPods does this and

    why you should care? Sunday, 29 September 13
  17. Analysis Downloads Pods project generation User projects integration • Podfile

    is compared to the Podfile.lock • Version which should not change are detected • The user project is inspected • Dependencies are resolved • The information for each target of Sunday, 29 September 13
  18. Analysis Downloads Pods project generation User projects integration • The

    resolved version of the Pods not available in the sandbox are downloaded • Unused files are removed Sunday, 29 September 13
  19. Analysis Downloads Pods project generation User projects integration • The

    pods project is generated • The file references are added • One target per pod-target definition combination • One target to aggregate the pods of a target definition • Support files are generated • Xcconfigs are king! Sunday, 29 September 13 What is special about the Pods project? Nothing
  20. Analysis Downloads Pods project generation User projects integration • The

    workspace is created • References to the aggregate libs and to the xcconfigs are created • The target is setup to use the aggregate lib as a dependency and the xcconfig file for configuration • copy resources script and the Lockfile check build phases are ad Sunday, 29 September 13
  21. EXPERIENCE DRIVEN Sunday, 29 September 13 USER 89% Uses CocoaPods,

    wants to browse / search for specific code, hits pod install and then forget. Likes features, should ideally keep up to date but doesn’t, might follow twitter PODSPEC AUTHOR 10% Wants Docs on Podspec, wants easy ways to update libraries, wants to know why something broke, keeps up to date to see if we’re deprecating yet another feature they used. COCOAPODS DEV 1% Wants to understand internals of system in order to contribute
  22. EXPERIENCE DRIVEN USER Sunday, 29 September 13 USER 89% Uses

    CocoaPods, wants to browse / search for specific code, hits pod install and then forget. Likes features, should ideally keep up to date but doesn’t, might follow twitter PODSPEC AUTHOR 10% Wants Docs on Podspec, wants easy ways to update libraries, wants to know why something broke, keeps up to date to see if we’re deprecating yet another feature they used. COCOAPODS DEV 1% Wants to understand internals of system in order to contribute
  23. EXPERIENCE DRIVEN USER PODSPEC AUTHOR Sunday, 29 September 13 USER

    89% Uses CocoaPods, wants to browse / search for specific code, hits pod install and then forget. Likes features, should ideally keep up to date but doesn’t, might follow twitter PODSPEC AUTHOR 10% Wants Docs on Podspec, wants easy ways to update libraries, wants to know why something broke, keeps up to date to see if we’re deprecating yet another feature they used. COCOAPODS DEV 1% Wants to understand internals of system in order to contribute
  24. EXPERIENCE DRIVEN USER PODSPEC AUTHOR COCOAPODS DEV Sunday, 29 September

    13 USER 89% Uses CocoaPods, wants to browse / search for specific code, hits pod install and then forget. Likes features, should ideally keep up to date but doesn’t, might follow twitter PODSPEC AUTHOR 10% Wants Docs on Podspec, wants easy ways to update libraries, wants to know why something broke, keeps up to date to see if we’re deprecating yet another feature they used. COCOAPODS DEV 1% Wants to understand internals of system in order to contribute
  25. Sunday, 29 September 13 - Site - 07 Nov 2011

    by Florien Hanke - v1.0 - 07 Nov 2011 by Florien Hanke - Came with a great search - Rudimentary Documentation for CP - v1.2 - Jan 2013 - docs.cocoapods.org - guides - v1.5 - July 2013 - CocoaDocs as a first class citizen - Private CocoaPods API - Search - Pod info - V2.0 August 2013 - Revised Branding - Revised Homepage - Revised Search - Revised Documentation - Separated Guides
  26. Sunday, 29 September 13 We’ve looked at the analytics, and

    our iOS usage isn’t where we’d like it to be. So there’s been lots of work on making the website mobile friendly
  27. Sunday, 29 September 13 Showing Stars, Forks, Project Maturity, %

    of documentented public methods/classes, README length Allowing inline previewing of the README similar to CocoaDocs Inline screenshots This should be enough to choose between all the UIAlertView+Blocks
  28. Sunday, 29 September 13 Not just been looking at search,

    we’ve been thinking about ways to communicate with the users of cocoapods. Our README & Twitter are our current ways of getting new info out, but one is too technical and the other too temporary
  29. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  30. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  31. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  32. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  33. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  34. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  35. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  36. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  37. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  38. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  39. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  40. Sunday, 29 September 13 and here’s 1200 of our 1400

    if your face was cropped, you can bring it up with me later
  41. Why? Sunday, 29 September 13 - [Joke] You might want

    to use this dependency automation thing unless you prefer your to use punch cards for that (apparently some still do). - Even if you're not a fan you might learn some tips and best practices for your workflows. - Abstractions are leaky - CocoaPods is still very immature - Life is good until CocoaPods breaks your project and suddenly all those little ponies reveal o be nothing else than overgrown rabid zombie rabbits - Adapt CocoaPods to your needs - Better tickets - Less blaming on maintainers ;-)
  42. CocoaPods is an asset of the community and it can

    be only as good as we are. Sunday, 29 September 13