CocoaPodsを知らないiOS開発者は人生の8割損している

CocoaPods最高ですよね、これを使いだすと人生が楽しくなりますマジで。年が開けてCocoaPodsの使い方を忘れてしまって絶望を覚えたのでEvernoteにメモっていた内容をQiitaにまとめてアップしましたよ。

CocoaPodsでPodの利用&作成のメモ
http://qiita.com/items/edf758a67bd4c2ba5b7a

Macはよく知らないんだけど、XcodeでiOSのStatic Libraryを作ろうとして心を折られたこと多数。Static Library作る理由は基本的によく使うクラスを再利用したいだけなんだけど頑張ってStatic Libraryプロジェクトを作ったと思ったら複数のworkspaceで同じプロジェクトを同時に開けないXcodeの制限があったりして凹む。

最近のXcodeだとworkspace内にあるXcodeプロジェクトの依存関係を自動で判断してくれるらしく、アプリケーション側の.aファイルをリンクに追加するとStatic Libraryプロジェクト側に変更を加えるとちゃんとそのプロジェクトからビルドもしてくれる。でもXcodeで.aファイルを追加すると.aファイルのパスがおかしくなるようなことがあってリンク時にファイルの変更をちゃんと検知してくれずStatic Libraryだけを変更したときにアプリに反映されてないことがってプロジェクトファイルを直接変更してBUILT_PRODUCTS_DIRを見るようにしたりとか。
http://stackoverflow.com/questions/12978723/xcode-not-rebuilding-app-when-source-file-updated-in-dependent-static-library

コードを再利用するってそんなにいけないことなんですか?と何度も思っていたけどそういったことはCocoaPodsがすべて解決してくれた。Qiitaにアップしたメモにも書いたけどローカルPCにあるPodも依存関係に組み込めるので自分で作ったライブラリのpodspecを書いてPodfileに

platform :ios,'5.0'
pod 'MyPodName', :local => '~/code/Pods/MyPodName'

と書くとアプリケーションプロジェクトに組み込める。PodのProjectはworkspaceごとに作られるので同時にworkspaceを開くことは問題ないし、localの場合はファイルをコピーしているわけじゃなくそのlocalのパスを直接参照しているので簡単にライブラリの変更を複数のアプリに反映することができる。(互換性を意識しないといけないこともあるが)

MBProgressHUDとか有名なライブラリはだいたいCocoaPodsに入っているからよく使うライブラリや自分のクラスを再利用するのにCocoaPodsは便利です。知らない人は是非使ってみてください、アプリ作るのが楽しくなります。