28
Xcode�4のテンプレート Cocoa勉強会�#54�/�2012-09-01�/�⽊村渡 Powered�by�Rabbit�1.0.8�and�COZMIXNG

Xcode4 project template (slide)

Embed Size (px)

DESCRIPTION

Xcode 4のプロジェクトテンプレートの構成とそのカスタマイズ方法について。 こちらの資料も合わせてどうぞ。 http://www.slideshare.net/kimuraw/xcode4-projecte-template 2012-09-01 Cocoa勉強会 #54

Citation preview

Page 1: Xcode4 project template (slide)

Xcode�4のテンプレート

Cocoa勉強会�#54�/�2012-09-01�/�⽊村渡

Powered�by�Rabbit�1.0.8�and�COZMIXNG

Page 2: Xcode4 project template (slide)

おことわり

"AS�IS"でお送りします。

Xcode�4.2-4.4でなんとなく確認しています。

Page 3: Xcode4 project template (slide)

テンプレートとは

Page 4: Xcode4 project template (slide)

プロジェクトテンプレート

新規アプリ作るとき使いますよね?

Page 5: Xcode4 project template (slide)

プロジェクトテンプレート

Page 6: Xcode4 project template (slide)

独自フレームワークの配布に必須

テンプレートがないと、、、

RubyCocoa.frameworkにリンク1.�

main.mでRubyCocoaの初期化処理

2.�

rb̲main.rbを追加3.�

クラスの実装を.h,�.mから.rbに4.�

が毎回必要(RubyCocoaの場合)

Page 7: Xcode4 project template (slide)

背景

昨年9⽉ごろ、RubyCocoaのXcode�4のプロジェクトテンプレートを作成

最近になって、Xcode�4.4対応をしようと考えた

思い出せない…

Page 8: Xcode4 project template (slide)

調べなおすついでに発表しよう!

Page 9: Xcode4 project template (slide)

話すこと

テンプレートとは�(済み)

Xcode�4のテンプレートの特徴

テンプレートの構成継承・インジェクション

plistからのファイル⽣成

Page 10: Xcode4 project template (slide)

Xcode�3との⽐較

Page 11: Xcode4 project template (slide)

Xcode�4のテンプレートの特徴

継承っぽい定義

plistでたくさん定義

Xcode�3と⽐べて進化したかも?

そのぶん複雑にもなっています。

Page 12: Xcode4 project template (slide)

テンプレートの構成

Page 13: Xcode4 project template (slide)

テンプレート

大きく分けて2種類

プロジェクトテンプレート

ファイルテンプレート

ファイルテンプレートは今回は説明しません

Page 14: Xcode4 project template (slide)

ファイル構成�-�Mac

/Applications/Xcode.app/Contents/ Developer/Library/Xcode/Templates + File Templates + Project Templates + Base + Mac

(Xcode�4.4の場合)

Page 15: Xcode4 project template (slide)

ファイル構成�-�iOS

/Applications/Xcode.app/Contents/ Developer/Platforms/ iPhoneOS.platform/Developer/ Library/Xcode/Templates/ + File Templates + Project Templates

(Xcode�4.4の場合)

Page 16: Xcode4 project template (slide)

ファイル構成�-�Mac/App

+ Cocoa Application Base.xctemplate/ + Credits.rtf + TemplateInfo.plist+ Cocoa Application.xctemplate/ + MainMenuApp.xib + TemplateIcon.icns + TemplateInfo.plist

.hや.mは?

Page 17: Xcode4 project template (slide)

TemplateInfo.plist

<dict> <key>Kind</key> <string>Xcode.Xcode3.ProjectTemplateUnitKind</string> <key>Identifier</key> <string>com.apple.dt.unit.objectiveCApplication</strin <key>Ancestors</key> <array> <string>com.apple.dt.unit.bundleBase</string> </array> <key>Targets</key> <array> <dict>

Page 18: Xcode4 project template (slide)

継承・インジェクション

Ancestors

InjectionTargets

Concrete

Page 19: Xcode4 project template (slide)

Cocoa�Applicationの構成

Cocoa Application - Concrete: true - Ancestors: + Cocoa Application Base - Ancestors: < Objective-C Application < Bundle Base < Base < Mac Base < Prefixable

Page 20: Xcode4 project template (slide)

Cocoa�Applicationの構成

Core Data Spotlight Application - Concrete: false (default) - InjectionTargets: Cocoa Application - Ancestors: < Core Data Application < Cocoa Document-based Application

Page 21: Xcode4 project template (slide)

Cocoa�Applicationの構成

Page 22: Xcode4 project template (slide)

試してみよう

Page 23: Xcode4 project template (slide)

試してみよう

Page 24: Xcode4 project template (slide)

plistからのファイル⽣成

Definitions

Nodes

配布資料読んどいてください

Page 25: Xcode4 project template (slide)

まとめ

継承、plistからのファイル⽣成機能が使えるように

差分でのカスタマイズが簡単に(?)

Page 26: Xcode4 project template (slide)

感想

ドキュメント……

アプリ内か~/Library/Xcodeのみでなく/Library/Xcodeも使えてほしい

まだまだ調査中。おもしろいことあったら教えてください!

Page 27: Xcode4 project template (slide)

SortOrderの謎

値が大きいほど優先される?

Page 28: Xcode4 project template (slide)

Powered�by�Rabbit�1.0.8�and�COZMIXNG