Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

10.2 CocoaPods

ginrou edited this page May 23, 2013 · 6 revisions

CocoaPodsはOSX, iOSの両方で使うことのできる、ライブラリマネージャです。 RubyのGem, node.jsのnpmと同等の物と考えていただいて差し支えないと思います。 このページでは、このCocoaPodsを用いたライブラリ管理の方法と、いくつか有名なライブラリを紹介します。

CocoaPodsの公式サイトは下記になります。詳細はこちらをご覧ください。

http://cocoapods.org/

CocoaPodsの導入と利用

インストール

  • RubyのGemを用いてインストールします。
  • RubyはおそらくCommandLineToolsを入れた時に入っていると思います
  • Gemもおそらく10.8以降なら入っていると思います

コマンドラインツールで以下を実行します

[sudo] gem install cocoapods
pod setup

しばらく時間がかかると思います。

Podfileの記述

利用するライブラリやそのバージョンの指定、ターゲットごとのライブラリの振り分けなどはPodfileというファイルに記述します。

# Podfile

platform :ios, '5.0'

target 'mixi' do
  pod 'AFNetworking', '~> 0.8.0'
end
  • platformは対応するプラットフォームを書きます、iosとosxが選択でき、OSのバージョンを指定する場合はコンマに続けてバージョンを書きます
  • targetには適用するターゲットを指定します。ビルドするターゲットごとに使用するライブラリを変えたい場合は書きます。全てのターゲットで利用する場合は必要ありません
  • 利用するライブラリを指定するには
pod 'ライブラリ名', バージョンや他のpodを指定

と書きます。

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>

とすれば利用できるようになります。

CocoaPodsのライブラリの紹介

Reachability

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

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;
}

とすると使うことができます。

使用イメージは次の通りです。

nimbus kit のデバッグコントローラ

BlocksKit

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に登録されているライブラリを確認することができます。

https://github.com/CocoaPods/Specs

はじめに

  1. iOSについて

  2. Xcode最初のステッフ

  3. 導入

  4. Objective C の基礎

  5. メモリ管理

  6. 1.3 UIViewController1 UIViewController のカスタマイズ(xib, autoresizing)

  7. 1.3 UIViewController1 UIViewController のカスタマイズ(storyboard)

  8. UIViewController2 - ModalViewController

  9. UIViewController2 - ModalViewController(storyboard)

  10. UIViewController3 - ライフサイクル

  11. HomeWork 1 Objective C の基本文法

  12. HomeWork 2 UIViewControllerとModalViewController

  13. HomeWork 3 UIViewController + Animation

  14. UIKit 1 - container, rotate-

  15. UINavigationController

  16. UITabController

  17. Custom Container View Controller

  18. Supporting Multiple Interface Orientations

  19. HomeWork 1 - タブバーからモーダルビューを表示する

  20. HomeWork 2 - NavigationController

  21. HomeWork 2.3 デバイスことに回転対応

  22. UIKit 2- UIView -

  23. UIView

  24. UIView のカスタマイズ

  25. UIView Animation

  26. HomeWork 1 - UIScrollView

  27. UIKit 3 - table view -

  28. UITableView について

  29. UITableViewとNavigationController

  30. custom UITableViewCell の作成

  31. UITableViewのその他のオプション、カスタマイズ

  32. HomeWork 1 - Dynamic height with a custom uitableviewcell

  33. UIKit 4 - image and text -

  34. UIImagePickerController

  35. Assets Library

  36. UITextFiled, UITextView

  37. KeyboardNotification

  38. Homework 1 - フォトの複数枚選択

  39. ネットワーク処理

  40. NSURLConnection

  41. JSONのシリアライズとデシリアライズ

  42. UIWebView

  43. ローカルキャッシュと通知

  44. NSUserDefaults, Settings Bundle

  45. NSFileManager

  46. Key Value Observing

  47. NSNotification、NSNotificationCenter を用いた通知

  48. UILocalNotification

  49. Blocks, GCD

  50. Blocks

  51. GCD

  52. 【演習】GCD,-Blocksを用いたHTTPリクエストマネージャの作成

  53. 設計とデザインパターン

  54. クラス設計 1

  55. クラス設計 2

  56. [クラス設計演習] (https://github.com/mixi-inc/iOSTraining/wiki/9.3-%E3%82%AF%E3%83%A9%E3%82%B9%E8%A8%AD%E8%A8%88%E6%BC%94%E7%BF%92)

  57. 開発ツール

  58. Instruments, デバッガ

  59. CocoaPods

  60. テスト

  61. iOS開発におけるテスト

  62. GHUnit

  63. Kiwi

  64. KIF

  65. In-App Purchase

  66. In-App Purchase

  67. 付録

  68. Tips of Xcode

  69. Auto Layout 入門

  70. Auto Layout ドリル

Edit sidebar

Clone this wiki locally