ライブラリ管理ツール CocoaPodsのセットアップ
すでに多くの人が書いていますけど、自分の覚書として書き残しておきたいと思います。
iOS appを作っていて、「あー、このUIライブラリ使ってみたいかも。で、CocoaPodsってなにそれおいしいの。」がことの発端。
CocoaPodsって何?
わざわざ説明するようなものでもないですが、CocoaPodsとは何かについて、
CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 58 thousand libraries and is used in over 3 million apps. CocoaPods can help you scale your projects elegantly.
と、公式ページに書いている通り、Swift及びObjective-CのCocoaプロジェクトのdependency managerがCocoaPodsのようです。
まあ平たく言うと、Swift/Objective-Cのライブラリ管理ツールですかね。
環境
CocoaPodsはrubyで実装されているのでrubyがいります。幸いなことにmacにはrubyがpreinstallされているので、新規にインストールする必要はないです。
rubygemsのインストールが済んでいない方は、
$ sudo gem update --system
上記コマンドでPermissionエラーが出る方は、以下のコマンドをお試しください。
$ sudo gem update --system -n /usr/local/bin
/usr/local/bin
はgemのインストール先になります。
CocoaPodsのセットアップ
まずはインストール。CocoaPodsのインストール自体は非常に簡単です。rubyとrubygemsの準備ができていれば以下のコマンドを叩くだけです。
sudo gem install -n /usr/local/bin cocoapods
インストールが完了したら、続いてCocoaPodsの環境をセットアップします。
$ pod setup Setting up CocoaPods master repo $ /usr/bin/git clone https://github.com/CocoaPods/Specs.git master --progress Cloning into 'master'... remote: Enumerating objects: 335, done. remote: Counting objects: 100% (335/335), done. remote: Compressing objects: 100% (258/258), done. remote: Total 2838443 (delta 119), reused 144 (delta 69), pack-reused 2838108 Receiving objects: 100% (2838443/2838443), 616.70 MiB | 4.28 MiB/s, done. Resolving deltas: 100% (1689056/1689056), done. Checking out files: 100% (306661/306661), done. Setup completed
CocoaライブラリのすべてのSpec(jsonファイル)をgithubからcloneするので、結構時間がかかります。さすが58000相当のライブラリがあるだけありますね。
Setup completed
がコンソールに表示されたらセットアップ完了です。
Podsのインストール
CocoaPodsのセットアップが完了したら、実際に開発を行うXcodeプロジェクト内にPods(ライブラリ)をインストールします。
プロジェクトのホーム、つまり ..xcodeproj
の置いてあるディレクトリに移動し、pod init
のコマンドを実行しましょう。そうするとPodfile
が生成されます。
Podfile
は必要なライブラリ群を記述するファイルであり、npm
でいうpackage.json
や pip
で言うrequirements.txt
のような存在ですね。
# Uncomment the next line to define a global platform for your project platform :ios, '9.0' target 'hoge' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for hoge pod 'SkyFloatingLabelTextField', '~> 3.0' end
上記が今回私が編集したPodfile
になります。
Xcodeプロジェクト名がhogeという形で記入されていますが、みなさんの環境ではそれぞれのXcodeプロジェクト名が自動で入っているかと思います。
またコメントの記載がある通り、platform :ios, '9.0'
の部分はコメントアウトを取り除き、対象となるOS ios
、対象となるOSバージョン 9.0
を記載しておきましょう。
最後に#Pods for hoge
の次の行に必要なPodをバージョンと共に記載します。今回私はSkyFloatingLabelTextField
というテキストフィールドのライブラリを使いたかったので、上記のように記載しています。
SkyFloatingLabelTextFieldについてはこちらを参照ください。
Podfile
の準備ができたら、次は実際にpod install
を使ってPodsのインストールを行います。
$ pod install Analyzing dependencies Downloading dependencies Installing SkyFloatingLabelTextField (3.6.0) Generating Pods project Integrating client project [!] Please close any current Xcode sessions and use `hoge.xcworkspace` for this project from now on. Sending stats Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
上記でインストールが完了です。
インストール時のログにも書いてありますが、CococaPodsを使ってPodsをインストールした後は今まで使っていたXcodeプロジェクトではなく、Xcodeワークスペースで作業することになります。今回の例ではhoge.xcworkspace
になりますね。
あとは実際にSwiftの中で使ってみるだけ。import SkyFloatingLabelTextField
でライブラリをインポートして、実際にライブラリを使ってみてください。
まとめ
今回はCocoaPodsをセットアップしCocoaなライブラリをインストールしてみました。このあたりのライブラリの管理に関しては、比較的モダンな言語やフレームワークを使うときは楽で良いですね。
ライブラリを使えると開発がぐっと楽になるので、今後も有用なケースで積極的にライブラリを使っていきたいと思います。
実は初のSwift記事だったりします。実際にiOSのアプリをSwiftで製作中なので、完成次第ここでリリースを告知できたらと思います。乞うご期待。