フロッピーディスクの残骸

フロッピーディスクを分解するのって楽しいよね

iOS Tips

iOSアプリ開発(Swift)のバイトを先週から引き受けてて
それに関するメモ書きです。

グラフの作成とかってどうしたらいいの?って思ってたんですが
どうやらCorePlotというライブラリを利用すると良いらしい。

ソーシャル連携についてもそういったライブラリがあるので
それを利用することで楽に機能を実現できる。

こういったライブラリはGithubを探せば大抵でてくる。

ただ、外部のライブラリをガンガンインポートして利用していると管理が煩雑になる。

こういう際に利用するのが CocoaPods である。
CocoaPodsはRuby製のフレームワークで、iOSで利用する外部ライブラリをPodfileに記述しそれを管理できる。
これは勝手な思い込みかもしれないけどGemfileとかあの辺に似てる気がするなあ。

環境構築

sudo gem update --system
sudo gem install cocoapods

利用してみる

プロジェクトのディレクトリ内に入り下記のコマンドを発行するとPodfileが生成される

pod init

CorePlotを利用する場合は、下記のように記述すると良い

target 'testapps' do
  pod 'CorePlot'
end

ライブラリのインストール

pod install

2回目以降は下記でも良い

pod update

エラーの詳細を確認するには下記のコマンドを利用する

pod install --verbose

こんなログが出てきた。

CocoaPods 1.0.0.beta.5 is available.
To update use: `gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

ので、下記のコマンドを発行

gem install cocoapods --pre

気になったこと

pod install,updateがすごく遅いこと。 これは

pod install --no-repo-update

のコマンドで回避できる。
コマンド発行時に最新のSpec情報を毎回取得するため、CocoaPods/Specsを毎回pullしているらしい。
常に最新のものが必要というわけではない場合は、
上記のコマンドで回避できるのだけれど、
最新のSpec情報が取れない可能性がある。 頻繁にpod install する際は、--no-repo-updateを利用するくらいしか回避策はなさそう。

Podsディレクトリはgitで管理すべきか

利点、欠点いろいろあるし、下記ににいろいろ書いてるんだけど、
僕はPodfileとPodfile.lockだけ管理することにした。

qiita.com

CorePlotを利用する

CorePlotはObjective-C製のライブラリであるため、Bridging-Headerというものを利用しなければなりません。
Bridging-Headerは、SwiftでもObjective-C製のライブラリを利用したい場合とかに利用します。 Bridging-Headerの設定方法は下記が参考になります。

tech.admax.ninja

なんで動かないんだ?って感じたら下記を見ると解決するかも。 ja.stackoverflow.com

僕は、xcworkspaceで作業していないだけでした(笑)

Xcodeで何故かエラーが消えないとき

ここ書き方あってるはずなんだけど、エラー消えない・・・?何故? ってときはXcodeのProductメニューからCleanをやると解決する場合があります。 下記が参考になるかも。 ez-net.jp

アプリ開発経験は全くないので、刺激があって面白いです。