SlideShare a Scribd company logo
1 of 37
Download to read offline
potatotips #11 
小学生でも分かった気になる 
iOS8のSize Class 
株式会社キュリオシティソフトウェア 
今城 善矩(@yimajo)
今日Size Classについて話すこと 
前編 
Size Classを用いてiPhone/iPadで同じStoryboardを使う方法 
後編 
Size Classの概念が難しい件について
前編: 
Size Classを用いてiPhone/iPadで同じ 
Storyboardを使う方法
例えばこういうデザインの時 
iPhone iPad
例えばこういうデザインの時 
iPhone iPad 
iPadのみのLabel配置したい!
例えばこういうデザインの時 
iPhone iPad 
iPadのみのLabel配置したい! 
iPadはFont大きくしたい!
例えばこういうデザインの時 
iPhone iPad 
iPadのみのLabel配置したい! 
iPadはFont大きくしたい! 
iPadは下の方を持ちづらい、ボタンが下すぎると嫌なのでマージン大きく!
これがSize Classで簡単にできて 
分かった気になるので 
1つずつやり方を説明する
前提 
Portraitのみでデバイス全画面 
のrootViewとして対応する 
iPhoneはSize Class w:C h:Rと 
して分類され 
iPadはSize Class w:R h:Rとし 
て分類される
Xcode6のInterface BuilderでSize Class 
によって出来る用になった事2つ 
1. UIコンポーネントをSize Class別に設置 
2. 一つのUIコンポーネントに対してSize Class別に設定
Xcode6のInterface BuilderでSize Class 
によって出来る用になった事2つ 
1. UIコンポーネントをSize Class別に設置 
2. 一つのUIコンポーネントに対してSize Class別に設定 
Font(等のプロパティ)を設定 
大きさや位置(Frame)を設定 
Auto Layoutを設定が出来るようになった
UIコンポーネントをSize Class 
ごとに配置する 
UIコンポーネントのFrameで 
+を押し 
w:R h:Rのinstalledのみを 
チェック☑すると 
iPadのみで存在する 
UILabelになる
Size ClassごとにFont設定 
UILabelの+をクリックし 
w:R h:Rの設定を追加すると 
iPad用のFontが 
設定される
Size ClassごとにFrameを設定するには 
これは+や☑installedは無く 
IB Design Viewの下で 
Size Classを切り替え 
その状態で指定した 
FrameがSize Classごとの 
設定となる 
iPhone iPad
結果こういう感じになる 
iPhone iPad
結果こういう感じになる 
iPhone iPad 
iPadのみUILabelをinstalled
結果こういう感じになる 
iPhone iPad 
iPadのみUILabelをinstalled 
iPadのみFontを75pt
結果こういう感じになる 
iPhone iPad 
iPadのみUILabelをinstalled 
iPadのみFontを75pt 
iPadはFrame{(x:100,y:585),(w:400,h:140)}でそれに合うAutoLayoutを指定
注意点 
iPhoneのUILabelと 
iPadのUILabelを別々に作り 
共通のViewControllerのIBOutletに繋ぐと 
片方が切り離されるから注意しよう 
(共通のUILabelにしてFrameを別にすべき)
今の例は 
Portraitのみの画面だったため 
わりと説明がしやすかった
Size Classなんとなく分かった気になった 
はず 
後半でさらに補足する
後半: 
Size Classの概念が難しい件について
お前らがなんで 
Size Classを理解できない理 
解出来ないと嘆くかについて
ネット上に公開されている 
Size Classの記事はSize Classの 
必要性が感じられないし 
Adaptivityとかいう奴が意味不明
原因として 
1.画面の回転の話を持ちだされる(iOS8で回 
転検出が変わったことに起因) 
2. iPhone6+のために作られたような記載 
3.Compact,Regularってのが分かりづらい
1. 画面の回転に関係あるの? 
回転自体はSize Classと直接は関係がなく、 
縦/横画面でのUIコンポーネントの“配置”に 
関係している。 
回転自体はAdaptivityに関係があり、 
Size ClassはAdaptivityのために必要なんだけど 
それはとりあえず一旦忘れよう。
2. iPhone6+のためにある? 
iPhone6+はLandscape時に特殊だが、 
iPhone6+のためだけにあるわけでは 
ない。
3.Compact, Regularが分かりづらい 
CompactもRegularも何を基準としてそのよう 
な名前になっているのかが不明瞭 
この名前について深く考えずに 
サイズ分類のための記号だと 
思うほうが手っ取り早い
Size ClassのC,Rについて話題になると出てくるあの表… 
Portrait 
Width 
Portrait 
Height 
Landscape 
Width 
Landscape 
Height 
iPhone4s 
iPhone5/5s 
iPhone6 
Compact Regular Compact Compact 
iPhone6+ Compact Regular Regular Compact 
iPad Regular Regular Regular Regular 
正しいがこの表の見せ方は分かりづらい…
一旦、Landscapeのことを忘れよう 
Portrait 
Width 
Portrait 
Height 
Landscape 
Width 
Landscape 
Height 
iPhone4s 
iPhone5/5s 
iPhone6 
Compact Regular Compact Compact 
iPhone6+ Compact Regular Regular Compact 
iPad Regular Regular Regular Regular 
そうすると全てのiPhoneはw:C h:Rになり 
iPadはw:R h:Rに区別できる
シンプルに書くとこうなる 
Portrait 
Width 
Portrait 
Height 
iPhone4s 
iPhone5/5s 
iPhone6/6+ 
Compact Regular 
iPad Regular Regular 
iPhone -> w:C h:R 
iPad -> w:R h:R
注意点 
現状発売されている 
iPhoneはw:C h:RでiPadはw:R h:Rだが、 
将来的にw:R h:RなiPhoneが出ない 
という確証はない! 
(XcodeからシミュレータをResizable iPhoneを 
選択するとw:R h:RなiPhoneも実行できる)
ただし 
w:R h:R なiPhoneが出たとして 
Appleのマーケテティング上それが 
iPhoneっていう名前なだけで 
そのようなiPhoneは 
iPadのレイアウトと同じになったほうが 
ユーザーにとっては好ましい気がする…
つまり 
Size Classはマーケティング上の識別子である 
iPhone,iPadの区別でレイアウトを考えるのでなく 
サイズ分類でレイアウトを変えられるように 
考えられた仕組みなんじゃないの? 
それで達成したいのがAdaptive User Interface
まとめ 
Size Class+IBでiPad用のレイアウトを手軽にできる、が 
本質的にはiPhone/iPadを識別したいわけなくSizeのClassで分 
類してレイアウトを分けるもの 
Size ClassやAuto Layoutなどの手段によってレイアウトをユー 
ザーに最適にするのがAdaptivity 
現状まだAdaptive User Interfaceはデザイナが把握していない 
だろうが、iPadのPortraitはw:R h:Rとしてレイアウトを実装し 
といても将来的に問題ない(本質には外れない)はず
参考 
Adaptive User Interfaces 
https://developer.apple.com/design/adaptivity/ 
iOS Human Interface Guidelines : Adaptivity and Layout 
https://developer.apple.com/library/ios/documentation/userexperience/conceptual/ 
mobilehig/LayoutandAppearance.html 
Size Classes Design Help 
https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/ 
AboutAdaptiveSizeDesign.html#//apple_ref/doc/uid/TP40014436-CH6-SW1
宣伝 
株式会社キュリオシティソフトウェアではiOSアプリ開発のお仕事を募集しております 
カメラアプリやチャットアプリなどユーザーの日常に近いアプリ開発を得意としています 
デザインから請け負う事もできますので 
お気軽にお問い合わせください 
http://curiosity.co.jp/

More Related Content

More from 今城 善矩

まだSwiftで消耗してるの?
まだSwiftで消耗してるの?まだSwiftで消耗してるの?
まだSwiftで消耗してるの?今城 善矩
 
iOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtipsiOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtips今城 善矩
 
Swiftだめ自慢Beta5
Swiftだめ自慢Beta5Swiftだめ自慢Beta5
Swiftだめ自慢Beta5今城 善矩
 
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方今城 善矩
 
やはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っているやはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っている今城 善矩
 
OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発今城 善矩
 
ジョブズも成仏するTips考えたったwww
ジョブズも成仏するTips考えたったwwwジョブズも成仏するTips考えたったwww
ジョブズも成仏するTips考えたったwww今城 善矩
 
やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っているやはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている今城 善矩
 

More from 今城 善矩 (8)

まだSwiftで消耗してるの?
まだSwiftで消耗してるの?まだSwiftで消耗してるの?
まだSwiftで消耗してるの?
 
iOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtipsiOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtips
 
Swiftだめ自慢Beta5
Swiftだめ自慢Beta5Swiftだめ自慢Beta5
Swiftだめ自慢Beta5
 
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
 
やはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っているやはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っている
 
OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発OHHTTPStubsを使ったiOSアプリ開発
OHHTTPStubsを使ったiOSアプリ開発
 
ジョブズも成仏するTips考えたったwww
ジョブズも成仏するTips考えたったwwwジョブズも成仏するTips考えたったwww
ジョブズも成仏するTips考えたったwww
 
やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っているやはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

小学生でも分かった気になるiOS8のSize Class