Contributing to CocoaPods

If you’re an iOS Developer, you probably have heard of CocoaPods. More and more developers are using it. I’ve personally used it on many projects and I’m not sure I would want to go back to the old manual way of adding in libraries.

A few weekends ago, on March 29th-30th, they had the CocoaPods Bug Bash. I used to work a lot on the weekends when I ran my own iOS/Android consulting business, but now that I’m working at Capital One, my weekends are pretty wide open. Yay for work-life balance! (P.s. We’re hiring iOS Developers, just contact me.) But since I’m kind of nerdy, I thought what better way to spend my new-found free time than by writing some code.

I hopped onto the #cocoapods IRC channel, registered and then asked the CocoaPods bot to assign me a ticket. By the luck of the draw, I got issue #1489.

I set up my development environment by cloning the CocoaPods/CocoaPods repo, then initialized via rake bootstrap and ran the tests via rake spec.

At that point I realized, oh this is all in Ruby! For some reason I had thought it had more Objective-C in it, since it dealt with Xcode so heavily. Fortunately for me, before the iPhone SDK came out, I had made my living for a while creating Ruby on Rails apps. I quickly rediscovered my love for Ruby.

I loved it so much, I spent most of that weekend hacking away on CocoaPods and the weekend afterwards. At the end of it, I had touched not only the main CocoaPods repository, but also the internals of it in CocoaPods/Core and the high level tests in CocoaPods/cocoapods-integration-specs.

I’m now an contributor to all of those repositories and thus the CocoaPods project! I also got into the CHANGELOG twice:

0.32.0

An informative error message is presented when merge conflict is detected in a YAML file.
Luis de la Rosa #69 #100

0.31.0

Generated prefix header file will now have unique prefix_header_contents for Pods with subspecs.
Luis de la Rosa #1449

The most enjoyable aspect for me though is that it is fun to hang out with other developers from around the world. @orta, @irrationalfab and @alloy are pretty cool fellows and they are welcoming and helpful when they are around in IRC. They are definitely not shy about asking you to squash your commits, but they are also quite friendly with their emotes in pull request reviews.

I’m planning on doing some more hacking on CocoaPods. If you’re interested, I can help you get started with it if you’re in the DC area and come to NSCoderNightDC. Another good way to get started is to join the IRC room #cocoapods, set up your development environment and then just ask which issue might be good to work on. You might also want to follow the CocoaPods Twitter account and look for the “Simple open contribution of the day” which highlights simple issues to get you started.