-
Notifications
You must be signed in to change notification settings - Fork 336
10.2 CocoaPods
CocoaPodsはOSX, iOSの両方で使うことのできる、ライブラリマネージャです。 RubyのGem, node.jsのnpmと同等の物と考えていただいて差し支えないと思います。 このページでは、このCocoaPodsを用いたライブラリ管理の方法と、いくつか有名なライブラリを紹介します。
CocoaPodsの公式サイトは下記になります。詳細はこちらをご覧ください。
- RubyのGemを用いてインストールします。
- RubyはおそらくCommandLineToolsを入れた時に入っていると思います
- Gemもおそらく10.8以降なら入っていると思います
コマンドラインツールで以下を実行します
[sudo] gem install cocoapods
pod setup
しばらく時間がかかると思います。
利用するライブラリやそのバージョンの指定、ターゲットごとのライブラリの振り分けなどはPodfileというファイルに記述します。
# Podfile
platform :ios, '5.0'
target 'mixi' do
pod 'AFNetworking', '~> 0.8.0'
end
- platformは対応するプラットフォームを書きます、iosとosxが選択でき、OSのバージョンを指定する場合はコンマに続けてバージョンを書きます
- targetには適用するターゲットを指定します。ビルドするターゲットごとに使用するライブラリを変えたい場合は書きます。全てのターゲットで利用する場合は必要ありません
- 利用するライブラリを指定するには
pod 'ライブラリ名', バージョンや他のpodを指定
と書きます。
- バージョンの表記はRubyGemsのバージョン表記に準拠します。
- ローカルにあるライブラリを指定したい場合は
pod 'MyLibrary', :local => 'path/to/libary'
のように書きます
- gitで管理されているライブラリを利用する場合
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git'
のように指定します。
- podspecが記述されている場合
pod 'AFNetworking', :podspec => 'https://raw.github.com/AFNetworking/AFNetworking/master/AFNetworking.podspec'
と書くことが出来ます。
ライブラリのインストールには
pod install
とします。プロジェクト配下にPodsというディレクトリができてその中にライブラリがインストールされます。
インストール後のプロジェクトファイルは hogehoge.xcodeproj から hogehoge.xcworkspace に変更になります。xcodeporjを使うとライブラリを参照できません
あとはソースコード内で
#import <AFNetworking.h>
とすれば利用できるようになります。
iPhoneのネットワーク接続状況を確認することのできるライブラリです。
- 端末自体の接続状況
- ホストごとの接続状況
- ネットワークのタイプ(WWAN, Wifi)
などを確認することができます。下記のように使います。
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus status = [reachability currentReachabilityStatus];
switch (status) {
case NotReachable:
NSLog(@"not reachable");
break;
case ReachableViaWiFi:
NSLog(@"wifi");
break;
case ReachableViaWWAN:
NSLog(@"wwan");
break;
default:
break;
}
NimbusKitは、iOSによる開発を進めて行く上で、難しくはないけど面倒なかゆい所に手が届くライブラリとなっています。 例えば、
- リッチなテキストラベル
- webviewのコントローラー
- テーブルビューを配列で使えるようにする
- デバッグツール
- CSSによるviewのデザイン
などです。基本的な機能はこちらをご覧ください。
http://nimbuskit.info/catalog/
インストールには
pod 'Nimbus'
としてください。このプロジェクトではCoreText.frameworkが必要となるので追加する必要があります。
例えば、デバッグ用にヘッダ部分にコンソールを出したい時は、
AppDelegateで#import <NimbusOverview.h>
とした上で
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[NIOverview applicationDidFinishLaunching];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[MixiViewController alloc] initWithNibName:@"MixiViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
[NIOverview addOverviewToWindow:self.window];
return YES;
}
とすると使うことができます。
使用イメージは次の通りです。
BlocksKitは煩わしいアラートビューやアクションシートのデリゲートをblockで追加できるようにしてくれるライブラリです。
pod 'BlocksKit'
でインストールできます。
AlertViewを表示する時は
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"" message:@"BlocksKitを利用"];
[alertView addButtonWithTitle:@"First" handler:^{
NSLog(@"first button is tapped");
}];
[alertView addButtonWithTitle:@"Second" handler:^{
NSLog(@"second button is tapped");
}];
[alertView show];
このように、ボタンを追加する時に同時に引数としてBlocksを渡し、その中で処理を記述します
ActionSheetを表示する時は次のようにします
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"BlocksKitを利用"];
[actionSheet addButtonWithTitle:@"OK" handler:^{
NSLog(@"OK");
}];
[actionSheet setDestructiveButtonWithTitle:@"赤いボタン" handler:^{
NSLog(@"DestructiveButton tapped");
}];
[actionSheet setCancelButtonWithTitle:@"キャンセルボタン" handler:^{
NSLog(@"Cancel Button Tapped");
}];
[actionSheet showInView:self.view];
AlertViewの時と同様にボタンを追加するのと同時にタップ時の処理をBlocksで追加します
その他に、いくつか有用そうなフレームワークを名前だけですが紹介します。
-
AFNetworking
- iOS, OSX用のネットワークライブラリです。HTTPリクエストに加えて、キャッシュ機構やストリーミング、JSONやplistに対応した通信などを行います
- 実行の完了などはBlocksで受け取ることができます
- https://github.com/AFNetworking/AFNetworking
-
SDWebImage
- 非同期かつキャッシュを行う画像通信用のライブラリ。
- URLを指定すると、キャッシュに含まれている場合はキャッシュから、ない場合はURLに問い合わせます
- https://github.com/rs/SDWebImage
-
テストフレームワークなど
- テストフレームワークやテスト用のライブラリもCocoa Pods 経由で入れることができます
- テストについては、次の11回で紹介します
もっと見たい!と言う方は以下からCocoaPods/Specsに登録されているライブラリを確認することができます。
はじめに
-
導入
-
1.3 UIViewController1 UIViewController のカスタマイズ(xib, autoresizing)
-
UIKit 1 - container, rotate-
-
UIKit 2- UIView -
-
UIKit 3 - table view -
-
UIKit 4 - image and text -
-
ネットワーク処理
-
ローカルキャッシュと通知
-
Blocks, GCD
-
設計とデザインパターン
-
開発ツール
-
テスト
-
In-App Purchase
-
付録