読者です 読者をやめる 読者になる 読者になる

CocoaPods を使って TapkuLibrary を導入

はじめに

CocoaPods 導入したことだし、プロジェクトで使っているライブラリをすべて CocoaPods でインストールし直そうかな。ってことで手始めに TapkuLibrary をインストールしてみる。

TapkuLibrary は iOS 用 UI 部品を提供するライブラリ。カレンダーとかカバーフローとかプログレスバーとか色々提供しているんだけど、みんなカレンダーしか使ってない気がする。

ちなみに CocoaPods の導入手順は次の記事を見ること。

練習用プロジェクトを作成

ぶっつけ本番は怖いんで、今回は練習にしておく。TapkuSample っていうテキトーな名前で練習用プロジェクトを作成。

CocoaPods を使って、このプロジェクトに TapkuLibrary をインストールして、ライブラリのコントロールを配置してみる。

TapkuLibrary をインストール

プロジェクトのルートディレクトリに

platform :ios

pod 'TapkuLibrary'

を記述した Podfile を作成。

あとは Podfile のディレクトリで

pod install

を実行すればインストール。たったこれだけ。xcworkspace ファイルが生成されるので、Xcode で開くと、TapkuLibrary が使えるようになっている。簡単すぎて拍子抜けしたよ。

CocoaPods 導入前は、GitHub からソースコードをダウンロードして、プロジェクトに追加して、ビルドオプションを変更して、ビルドに失敗してウガーってなってたんだけどな。

カレンダービューを設置してみる

TapkuLibrary を使う理由は、iPhone のカレンダーアプリみたいなカレンダービューを使うためだし。

ViewController の無名カテゴリにカレンダービューを保持するプロパティを追加し、あとプロトコルも実装する。

#import <TapkuLibrary/TKCalendarMonthView.h>
#import "MainViewController.h"

@interface MainViewController () <TKCalendarMonthViewDelegate>

@property (nonatomic, strong) TKCalendarMonthView *calendarView;
@property (nonatomic, strong) NSDate* dateSelected;

@end

@implementation MainViewController

@synthesize calendarView = _calendarView;
@synthesize dateSelected = _dateSelected;

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    // カレンダービューを追加
    self.calendarView = [[TKCalendarMonthView alloc] init];
    self.calendarView.delegate = self;
    [self.view addSubview:self.calendarView];
    [self.calendarView reload];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc
{
    self.calendarView = nil;
}

// TKCalendarMonthViewDelegate プロトコルを一部実装
- (void)calendarMonthView:(TKCalendarMonthView *)monthView didSelectDate:(NSDate *)date
{
    self.dateSelected = date;
}

@end

今回は、カレンダーにマークを表示したりしないので、デリゲートだけをセットしている。

エミュレーターを実行すると
f:id:griefworker:20120927221947p:plain
iPhone 標準っぽいカレンダーが表示された。ホント、iPhone のカレンダーアプリっぽい。

まとめ

CocoaPods を使えば、Podfile を記述して pod install を実行するだけで、手軽に TapkuLibrary が導入できますよ、と。

ただ、CocoaPods で導入が簡単になったとはいえ、Storyboard で配置できないのは不便だし*1、標準で提供されないかなぁ。だいたい、カレンダービューが標準で提供されていないのが不思議だし、不満。

*1:やり方を知らないだけかもしれないけど