ビルドも早い、生成ファイルもシンプル、ゆえの管理の楽さでCarthage一択だろと思っていたが、CocoaPodsに軍配が上がる事柄を発見した。
ライブラリのソースを追っていくときはPodsのほうがいい
Carthageだとプロジェクト内にインストールされるのはframework
のみで、いわゆるheaderファイルだけ提供されるイメージ。
対してCocoaPodsはソースファイルが丸ごとプロジェクト内にぶちこまれる。
この違いによるメリット・デメリットは色々あるけれど、コードリーディングする際に結構違うことがわかった。
定義元ジャンプしたら違いがわかる
Alamofire
でappend()
の動きを知りたくなり、定義元ジャンプしてみたら以下のような違いがあった。
まずはCarthageでインストールしたときの定義元ジャンプ
メソッド内で何をしているのかはわからない。
見れるのはインターフェースのみで、中で何をしているのかはわからない。
対してCocoaPodsで定義元ジャンプをした時はこんな感じ。
いくつか候補も出るし、中身も見れる。
コードリーディングする時はPodsのほうが断然良い
結構ライブラリ内のソース見に行くことってあると思うから、初めてそのライブラリ使うときとかは、理解を深める意味も含めてPodsで管理してみるってのもアリかもしれない。
ただ、普段のビルド時間とかを考えるとCarthage一択なので、悩ましいんだよなあ。ライブラリのソース見たくなったらTerminal移るってのもちょっと面倒。
XcodeじゃなくてVimで全部開発できれば解決する話ではある。