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だけ管理することにした。
CorePlotを利用する
CorePlotはObjective-C製のライブラリであるため、Bridging-Headerというものを利用しなければなりません。
Bridging-Headerは、SwiftでもObjective-C製のライブラリを利用したい場合とかに利用します。
Bridging-Headerの設定方法は下記が参考になります。
なんで動かないんだ?って感じたら下記を見ると解決するかも。 ja.stackoverflow.com
僕は、xcworkspaceで作業していないだけでした(笑)
Xcodeで何故かエラーが消えないとき
ここ書き方あってるはずなんだけど、エラー消えない・・・?何故? ってときはXcodeのProductメニューからCleanをやると解決する場合があります。 下記が参考になるかも。 ez-net.jp
アプリ開発経験は全くないので、刺激があって面白いです。