Xcodeプラグインで!
快適な開発ライフを
ヤフー vs クラスメソッド!
Battle #1

Copylight © Classmethod, Inc.

1
自己紹介
• 平井 祐樹!
• クラスメソッド株式会社!
• iPhoneアプリサービス事業部!
• iOS開発歴2年ぐらい!
• モテたい

Copylight © Classmethod, Inc.

2
Storyboard Identifierの!
コード補完が!
無くて困っていませんか?

Copylight © Classmethod, Inc.

3
プログラムからStoryboardの!
Identifierを指定する場合
- (IBAction)xxxButtonTapped:(id)sender
{
UIStoryboard *storyboard =
[UIStoryboard storyboardWithName:@"Xxx"
bundle:[NSBundle
mainBundle]];
UIViewController *viewController =
[storyboard
instantiateViewControllerWithIdentifier:@"・・・"];
// ・・・
}
Copylight © Classmethod, Inc.

4
プログラムからStoryboardの!
Identifierを指定する場合
- (IBAction)xxxButtonTapped:(id)sender
{
UIStoryboard *storyboard =
[UIStoryboard storyboardWithName:@"Xxx"
bundle:[NSBundle
mainBundle]];
UIViewController *viewController =
[storyboard
文字列で指定!
instantiateViewControllerWithIdentifier:@"・・・"];
// ・・・
}
Copylight © Classmethod, Inc.

4
プログラムからStoryboardの!
Identifierを指定する場合
- (IBAction)xxxButtonTapped:(id)sender
{
UIStoryboard *storyboard =
[UIStoryboard storyboardWithName:@"Xxx"
bundle:[NSBundle
• 間違えてもビルドできてしまう…!
mainBundle]];

コード補完されない!!!

• しかも落ちる…

UIViewController *viewController =
[storyboard
文字列で指定!
instantiateViewControllerWithIdentifier:@"・・・"];
// ・・・
}
Copylight © Classmethod, Inc.

4
というわけで、

Copylight © Classmethod, Inc.

5
プラグイン作りました!

Copylight © Classmethod, Inc.

6
StoryboardIdentifierHelper
• Storyboard関連のコード補完プラグイン!
- instantiateViewControllerWithIdentifier:!
- performSegueWithIdentifer:sender:!
segue.identiferを- isEqualToString:で比較するとき!

• 参考:Lin-Xcode5

Copylight © Classmethod, Inc.

7
実行例

Copylight © Classmethod, Inc.

8
実行例

Copylight © Classmethod, Inc.

8
いっぱい「いいね!」!
してくれたら公開します!

Copylight © Classmethod, Inc.

9
Xcodeプラグインは!
誰でも作れます!

Copylight © Classmethod, Inc.

10
Xcodeプラグイン開発入門

Copylight © Classmethod, Inc.

11
アジェンダ
1. Xcodeプラグイン開発について!
2. 作成方法!
3. 開発の流れ!
4. 機能の呼び出し方!
5. まとめ

Copylight © Classmethod, Inc.

12
1.Xcodeプラグイン開発について

Copylight © Classmethod, Inc.

13
1-1.必要なもの
• Mac!
• Xcode 5

Copylight © Classmethod, Inc.

14
1-2.必要なスキル
• Objective-Cの知識!
• OS Xアプリ開発の知識

[C]
Copylight © Classmethod, Inc.

15
1-3.学習方法
• 公式でサポートされていない!
• なので情報がほとんどない!
– 日本語の情報が皆無!
– 英語でもXcode 4の情報がほとんど

Copylight © Classmethod, Inc.

16
1-3.学習方法
• 公式でサポートされていない!
• なので情報がほとんどない!
– 日本語の情報が皆無!
– 英語でもXcode 4の情報がほとんど
既存のプラグインのソースコードを読む!
Copylight © Classmethod, Inc.

16
2.作成方法
• Xcodeプロジェクトの作成(いつもの)!
• Xxx-Info.plistとBuild settingsの設定!
• プラグイン実装(Objective-Cを書く)

Copylight © Classmethod, Inc.

17
3.開発の流れ
1. プラグイン作成!
2. ビルドしてXcode再起動!
3. しこんでおいたNSLogを確認!
(ログは/var/log/system.logに出力される)!

4. 失敗したらプラグインを消す!
(Cleanまたは直接ファイル削除)
Copylight © Classmethod, Inc.

18
4.機能の呼び出し方
1. Xcodeのメニューから!
2. 通知を監視!
3. 既存のメソッドをすりかえ(Swizzling)

Copylight © Classmethod, Inc.

19
詳しくはブログで!!
http://dev.classmethod.jp/iphone/xcode5-plugin-1

Copylight © Classmethod, Inc.

20
5.まとめ

Copylight © Classmethod, Inc.

21
みんなでプラグインを作って!
快適開発ライフを!!
(僕の開発ライフを楽にしてくださいw)

Copylight © Classmethod, Inc.

22
ご清聴ありがとうございました

Copylight © Classmethod, Inc.

23
Xcodeプラグインで快適な開発ライフを

Xcodeプラグインで快適な開発ライフを