狠狠撸

狠狠撸Share a Scribd company logo
Xcode 再?入?門
-‐?? グループとフォルダー参照 -‐??
Xcode 再?入?門
-‐?? グループとフォルダー参照 -‐??
EZ-‐??NET ?熊?谷友宏 @EasyStyleGK
http://program.station.ez-‐??net.jp/
?~それぞれの特徴の差をもう?一度度?~?~それぞれの特徴の差をもう?一度度?~
?自?己紹介
@EasyStyleGK
EZ-‐??NET ?IP ?Phone ?音で再配達ゴッド
?音で再配達 ?音でダイヤル いつもの電卓
for ?iPad
いつもの電卓
for ?iPhone
EZ-‐??NET ?熊?谷友宏
http://program.station.ez-‐??net.jp/
はじめに
「グループ」とか
「フォルダー参照」って何?
「グループ」とか
「フォルダー参照」って何?
プロジェクトで扱うファイルを
階層管理理する機能
プロジェクトで扱うファイルを
階層管理理する機能
はじめに
フォルダーを登録するときに
誰もが?目にするアレ
フォルダーを登録するときに
誰もが?目にするアレ
オフレコ
そう思い?立立った、いつかの体験談そう思い?立立った、いつかの体験談
もしかしてもしかして
フォルダー参照って
画像の管理理とかに便便利利かも?
フォルダー参照って
画像の管理理とかに便便利利かも?
はじめに
グループとフォルダー参照の
特徴の違いを整理理してみる
グループとフォルダー参照の
特徴の違いを整理理してみる
第1章
グループ
Groups
グループ
Groups
グループの特徴
? ?黄?色で?色づけされている
? Mac ?フォルダーとは別管理理
? ファイルひとつひとつに着?目
? ?黄?色で?色づけされている
? Mac ?フォルダーとは別管理理
? ファイルひとつひとつに着?目
グループの特徴 (1/3)
? Mac ?ファインダーのフォルダーは?水?色
? つまり(?)別なもの
? 階層は Xcode ?内で独?自に管理理されている
? Mac ?ファインダーのフォルダーは?水?色
? つまり(?)別なもの
? 階層は Xcode ?内で独?自に管理理されている
?黄?色で?色づけされている?黄?色で?色づけされている
グループの特徴 (2/3)
? グループ内のファイルの保存場所は
グループ毎に Location ?で指定されている
? Location ?が指定されていないときは
親グループと同じ場所に保存される
? グループ内のファイルの保存場所は
グループ毎に Location ?で指定されている
? Location ?が指定されていないときは
親グループと同じ場所に保存される
Mac ?フォルダーとは別管理理Mac ?フォルダーとは別管理理
グループの特徴 (3/3)
? ファイル単位でプロジェクトに登録
– Mac ?フォルダーだけに追加しても影響なし
– Mac ?フォルダーから削除するとリンク切切れ
– ファイル毎に対象ターゲットを選択可能
? 各ファイルを Build ?Phases ?で処理理
– ソースファイルはコンパイルしてバイナリへ
– リソースファイルは階層無視でバンドルへ
? ファイル単位でプロジェクトに登録
– Mac ?フォルダーだけに追加しても影響なし
– Mac ?フォルダーから削除するとリンク切切れ
– ファイル毎に対象ターゲットを選択可能
? 各ファイルを Build ?Phases ?で処理理
– ソースファイルはコンパイルしてバイナリへ
– リソースファイルは階層無視でバンドルへ
ファイルひとつひとつに着?目ファイルひとつひとつに着?目
第2章
フォルダー参照
Folder References
フォルダー参照
Folder References
フォルダー参照の特徴
? ?水?色で?色づけされている
? Mac ?フォルダーそのもの
? フォルダーそのものに着?目
? ?水?色で?色づけされている
? Mac ?フォルダーそのもの
? フォルダーそのものに着?目
フォルダー参照の特徴 (1/3)
? Mac ?ファインダーのフォルダーも?水?色
? つまり(?)Mac ?のと似たようなもの
? Mac ?ファインダーのフォルダーも?水?色
? つまり(?)Mac ?のと似たようなもの
?水?色で?色づけされている?水?色で?色づけされている
フォルダー参照の特徴 (2/3)
? プロジェクトには
ルートフォルダーが登録される
? フォルダー内の階層や内容は
Mac ?側のフォルダーで管理理する
? プロジェクトには
ルートフォルダーが登録される
? フォルダー内の階層や内容は
Mac ?側のフォルダーで管理理する
Mac ?フォルダーそのものMac ?フォルダーそのもの
フォルダー参照の特徴 (3/3)
? フォルダー?自体をプロジェクトに登録
– フォルダーへの追加や削除が反映される
– ルートフォルダーで対象ターゲットを選択
? フォルダー内には直接関与しない
– 各ファイルを Build ?Phases ?で処理理しない
– 各ファイルを、階層を維持してバンドルへ
? フォルダー?自体をプロジェクトに登録
– フォルダーへの追加や削除が反映される
– ルートフォルダーで対象ターゲットを選択
? フォルダー内には直接関与しない
– 各ファイルを Build ?Phases ?で処理理しない
– 各ファイルを、階層を維持してバンドルへ
フォルダーそのものに着?目フォルダーそのものに着?目
第3章
グループとフォルダー参照の
特徴の違いを?比較する
グループとフォルダー参照の
特徴の違いを?比較する
?比較で使うファイルの準備
グループとして登録グループとして登録
フォルダー参照として登録フォルダー参照として登録
バンドル内で?見見られる違い
グループとして登録グループとして登録
フォルダー参照として登録フォルダー参照として登録
? 全てバンドルのルートへ配置
? ソースはバイナリに組み込み
? 全てバンドルのルートへ配置
? ソースはバイナリに組み込み
? 階層を保ってバンドルへ配置
? ソースもそのままバンドルへ
? 階層を保ってバンドルへ配置
? ソースもそのままバンドルへ
インターフェイスビルダーでの扱いの違い
グループとして登録した画像グループとして登録した画像
フォルダー参照として登録した画像フォルダー参照として登録した画像
? 選択肢にはパスが含まれない
? 正しいパスを指定して になる
? 選択肢にはパスが含まれない
? 正しいパスを指定して になる
Objective-‐??C ?コード内での扱いの違い
画像リソースの読み込み画像リソースの読み込み
[UIImage imageNamed:@"gsub1.png"];[UIImage imageNamed:@"gsub1.png"];
[UIImage imageNamed:@"Reference/rSub/rsub1.png"];[UIImage imageNamed:@"Reference/rSub/rsub1.png"];
グループとして登録した画像グループとして登録した画像
フォルダー参照として登録した画像フォルダー参照として登録した画像
Objective-‐??C ?コード内での扱いの違い
バンドルからの読み込みバンドルからの読み込み
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"g"
ofType:@"plist"];
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"g"
ofType:@"plist"];
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"r"
ofType:@"plist" inDirectory:@"Reference/rSub"];
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"r"
ofType:@"plist" inDirectory:@"Reference/rSub"];
グループとして登録したリソースグループとして登録したリソース
フォルダー参照として登録したリソースフォルダー参照として登録したリソース
オフレコ
画像の管理理に便便利利そうと思って
フォルダー参照を使ってみましたが
画像の管理理に便便利利そうと思って
フォルダー参照を使ってみましたが
フォルダー参照フォルダー参照
オフレコ
ちょっと使いにくいちょっと使いにくい
Xcode ?は良良くも悪くも無関?心
Interface ?Builder ?がやる気ない
Xcode ?は良良くも悪くも無関?心
Interface ?Builder ?がやる気ない
第4章
アセットカタログ
Asset ?Catalog
アセットカタログ
Asset ?Catalog
そして突如現れた…そして突如現れた…
Xcode ?5, ?iOS ?7 ?の新機能Xcode ?5, ?iOS ?7 ?の新機能
アセットカタログ
アセットカタログとはアセットカタログとは
1. 画像リソースをまとめて扱う仕組み
– ただし JPEG ?は扱えない
2. ひとつのパッケージとして存在
3. Xcode ?による全?面サポート付き
1. 画像リソースをまとめて扱う仕組み
– ただし JPEG ?は扱えない
2. ひとつのパッケージとして存在
3. Xcode ?による全?面サポート付き
画像専?用のフォルダーみたいなもの画像専?用のフォルダーみたいなもの
アセットカタログ
1. ?画像リソースをまとめて扱う仕組み1. ?画像リソースをまとめて扱う仕組み
? カタログ内を階層で整理理できる
(最終的には階層は無視される)
? ひとつの名前に複数の画像を登録
? カタログ内を階層で整理理できる
(最終的には階層は無視される)
? ひとつの名前に複数の画像を登録
アセットカタログ
2. ?ひとつのパッケージとして存在2. ?ひとつのパッケージとして存在
プロジェクト内のものはフォルダーとしてプロジェクト内のものはフォルダーとして
アセットカタログ
2. ?ひとつのパッケージとして存在2. ?ひとつのパッケージとして存在
アプリのバンドル内では単?一ファイルとしてアプリのバンドル内では単?一ファイルとして
アセットカタログ
3. ?Xcode ?による全?面サポート付き3. ?Xcode ?による全?面サポート付き
? 実?行行時の環境に応じて
適切切な画像を?自動的に選択
? Retina ?4-‐??inch ?(R4) ?は
iOS ?7 ?以上のビルドで有効
? 実?行行時の環境に応じて
適切切な画像を?自動的に選択
? Retina ?4-‐??inch ?(R4) ?は
iOS ?7 ?以上のビルドで有効
Image ?Set ?では複数の環境をまとめて登録Image ?Set ?では複数の環境をまとめて登録
アセットカタログ
3. ?Xcode ?による全?面サポート付き3. ?Xcode ?による全?面サポート付き
インターフェイスビルダーで普通に使えるインターフェイスビルダーで普通に使える
[UIImage imageNamed:@"Block"];[UIImage imageNamed:@"Block"];
Objective-‐??C ?からも簡単に使えるObjective-‐??C ?からも簡単に使える
実?行行環境に応じて採?用される画像が切切り替わる実?行行環境に応じて採?用される画像が切切り替わる
アセットカタログ
3. ?Xcode ?による全?面サポート付き3. ?Xcode ?による全?面サポート付き
OS ?X ?Icon ?画像ならサイズに応じて?自動切切替OS ?X ?Icon ?画像ならサイズに応じて?自動切切替
[NSImage imageNamed:@"Icon"];[NSImage imageNamed:@"Icon"];
Objective-‐??C ?からも簡単に取得可能Objective-‐??C ?からも簡単に取得可能
代?入する NSImageView ?のサイズに応じて
採?用される画像が切切り替わる
代?入する NSImageView ?のサイズに応じて
採?用される画像が切切り替わる
アセットカタログ
3. ?Xcode ?による全?面サポート付き3. ?Xcode ?による全?面サポート付き
スライシングでボタンの背景画像も簡単対応スライシングでボタンの背景画像も簡単対応
? 画像に使い?方の情報を設定
– 「左側?上側に残す部分」
– 「引き延ばして使う部分」
– 「無視する部分」
– 「右側?下側に残す部分」
? 背景画像で使?用すると引き延ばされる
? iOS ?7 ?以上?用のビルドで利利?用可能
? 画像に使い?方の情報を設定
– 「左側?上側に残す部分」
– 「引き延ばして使う部分」
– 「無視する部分」
– 「右側?下側に残す部分」
? 背景画像で使?用すると引き延ばされる
? iOS ?7 ?以上?用のビルドで利利?用可能
まとめまとめ
まとめ (1/3)
1. ファイル単位で管理理されている
2. ファイルの追加や削除は Xcode ?で?行行う
3. ファイルは Build ?Phases ?で処理理される
4. リソースは階層無視でバンドルにコピー
5. 普通はこれを使う
1. ファイル単位で管理理されている
2. ファイルの追加や削除は Xcode ?で?行行う
3. ファイルは Build ?Phases ?で処理理される
4. リソースは階層無視でバンドルにコピー
5. 普通はこれを使う
グループグループ
まとめ (2/3)
1. フォルダーとして管理理されている
2. ファイルの追加や削除は Mac ?で?行行う
3. フォルダーをそのままバンドルにコピー
4. フォルダー階層はそのまま維持される
5. Interface ?Builder ?の対応が中途半端
1. フォルダーとして管理理されている
2. ファイルの追加や削除は Mac ?で?行行う
3. フォルダーをそのままバンドルにコピー
4. フォルダー階層はそのまま維持される
5. Interface ?Builder ?の対応が中途半端
フォルダー参照フォルダー参照
まとめ (3/3)
1. 画像専?用のパッケージ
2. 画像の追加や削除は専?用のエディタで?行行う
3. 画像をひとつにまとめてバンドルにコピー
4. フォルダー階層は無視される
5. Xcode ?による?手厚いサポートが魅?力力
6. JPEG ?ファイルは扱えない
7. ?一部の機能は iOS ?7.0 ?以上のビルド専?用
1. 画像専?用のパッケージ
2. 画像の追加や削除は専?用のエディタで?行行う
3. 画像をひとつにまとめてバンドルにコピー
4. フォルダー階層は無視される
5. Xcode ?による?手厚いサポートが魅?力力
6. JPEG ?ファイルは扱えない
7. ?一部の機能は iOS ?7.0 ?以上のビルド専?用
アセットカタログアセットカタログ

More Related Content

Xcode グループとフォルダー参照 #yhios