cocoapodsの素晴らしさに感動した

最近iPhoneアプリが作りたいと思ってしまったので,うっかりXcodeObjective-Cをカタカタ書いたりするのが楽しくなってしまった.
むかーし,専攻科の実験でXcodeを使った開発をちょっとやったことはあったのだけれど.
その頃はまだVisualStudio一辺倒で,ビューに配置したボタンのイベントと,ソースに書かれた関数の関連づけをドラッグアンドドロップで紐づけるというのが納得いかない時期でした.


まだiOSが出始めくらいで,それほど流行ってもいなかったので,作っていたのはMacOS上のアプリでしたけどね.




そういうわけで久しぶりな上に,やたらバージョンアップしているXcodeでの開発なんで,あまり昔のことは気にならないです.

イベントは,頑張ればソースに全部書けるので問題ないですね☆




その中で,やはりいろいろやりたいことを実現しようとしていると,外部ライブラリを使いたいときがあります.

たいていがgithubで豊富に公開されているので,ありがたく使わせてもらっています.


でも,僕らが普通に思いつくライブラリの入れ方って,ファイルをコピーしてきて,プロジェクトの設定から読み込める場所にソースを置いて……ヘッダーファイルをインクルードして.
ですよね.


VisualStudioは,2005くらいまで設定でインクルードディレクトリを設定していたけれど,2008くらいからプロジェクトごとにインクルードディレクトリを設定するように変更されたので,移行時に全部エラーになってたのが良い思い出ですね.



そういうのを,プロジェクトごとに管理できて,なおかつバージョンとかの管理をひたすら楽にしてくれているなぁーという面で,RubyGemという仕組みは非常に扱いやすい.
Railsを書くことが多い身としては,Gemの使い勝手のよさはヤバい.


cocoapodsというのは,そんなRubyGemと同じ役割を果たしてくれる.




欲しいライブラリをPodfileに書いておくと,cocoapodsから該当するライブラリをインストールしてくれる.
そうすると,もはやプログラムソース内でヘッダファイルをインクルードするだけでいい.

バージョンも指定できるし,なんて便利なことか!





蛇足:導入方法
散々紹介されていると思うので,軽くです.


ちなみに,そんなcocoapodsですが,RubyGemとして提供されているので(笑),Rubyの実行環境は入れておきましょう.
俺は,バージョンが低かったので,systemに入っているRubyのバージョンを最新まで上げました.

もしrbenvなどを使っている場合は,

$ rbenv global system

としておいてから,アップデートをかけましょう.

$ sudo gem update --system

で,cocoapodsを入れます.

$ sudo gem install cocoapods
$ pod setup

これで準備は整いました.

あとは,自分のXcodeのプロジェクトディレクトリに,Podfileを作成します.

platform :ios, '7.1'
pod 'AFNetworking','~> 2.0'
pod 'SVProgressHUD', :head

こんなのを用意して,

$ pod install

とすると,上記のPodfile内に書かれたライブラリがインストールされます.

今まで開いていたプロジェクトファイル,.xcodeprojではなく,.xcworkspaceファイルを開くと,ライブラリが見えるかと思います.
こっちでそのまま開発した方が楽な気がするので,俺はこっちを開くようになってしまいました.



※アンインストール

普通のGemと同じなので,Ruby界隈の人に取ってはいつも通りです.

$ sudo gem uninstall cocoapods

その他,setupで作成された~/.cocoapodsディレクトリや,個々のPodfileは自分で削除しておけば問題ないです.