iOsikkoに欠かせない?iPhone6,6Plus大画面対応のまとめ
ハローエブリワン!
iPhone6,6Plusが発売されてから1月以上経ちましたね。皆さんはもう買いましたか?
既に世界中で発売されつつあるiPhone6、中国ではなんと、2000万台も予約されてるそうです。 実はOsikkoはワールドワイドな展開を目指すアプリなのでiPhone6対応は避けては通れません!
iPhone6、月内に新たに36カ国で発売へ アップル - WSJ
【衝撃!】中国ではiPhone6の予約が2,000万台を突破!正式販売開始で転売や密輸は減少。大赤字のバイヤーも|アプリ学園
今回は、Xcode6においてiPhone6,6Plus対応で気をつけるべき点をまとめちゃいます。
概要
これまでのiPhoneとは解像度が異なるiPhone6,iPhone6Plusが追加され、画像の解像度、アイコンのサイズ、起動画面サイズへの対応等、対応すべき項目が増えました。 下記の方法は既存プロジェクトにおいての対応方法となります。Xcodeは6で行ってください。
注意点
iPhone6/6plusの本来の解像度で実行するには、アセットカタログにLaunch ImagesもしくはLaunch Screen Fileを設定する必要があるようです。 設定がされてない場合は、スケーリングモードとなり、frameが320X568となり画面サイズがiPhone6,6Plusに合わせて自動的に拡大されます。 (上記があるかないかでiphone6,6Plusの対応、非対応を切り分けているようです。)
iPhone6Plusのスクリーンのダウンサンプリング
下の表をみると分かるように iPhone 6 Plus は 5.5インチの解像度は1920 x 1080ですが、画像のピクセルは2208 x 1242からダウンサンプリングされています。 [UIScreen mainScreen].bounds.size.heightで返ってくる値は736になります。 ダウンサンプリングされるので、太さ1ピクセルの線は消えて見えなくなります。
ダウンサンプリングについてはこちらに分かりやすい図解があるので参照して下さい。 PaintCode
iPhone4s | iPhone5/5s | iPhone6 | iPhone6 Plus | |
---|---|---|---|---|
デバイスピクセル | 640 x 960 | 640 x 1136 | 750 x 1334 | 1080 x 1920 |
画像ピクセル | 640 x 960 | 640 x 1136 | 750 x 1334 | 1242 x 2208 |
ポイント[UIScreen mainScreen] | 320 x 480 | 320 x 568 | 375 x 667 | 414 x 736 |
ピクセル密度 | 326ppi | 326ppi | 326ppi | 401ppi |
解像度倍率 | 2.0 | 2.0 | 2.0 | 3.0 |
アイコン設定方法
以下の表に従ってIconを用意してください。
例)iOS6以降に対応するアプリはiOS6, 7, 8全てのファイルを用意して下さい。iOS7以降に対応するアプリはiOS7, 8全てのファイルを用意して下さい。
系列 | サイズ(px) | iOS6 | iOS7 | iOS8 | ファイル名の例 | 利用箇所 |
---|---|---|---|---|---|---|
57系 | 57x57, 114x114 | ◯ | ☓ | ☓ | icon-57.png, icon-57@2x.png | iPhoneメインアイコン |
60系 | 120x120 | ☓ | ◯ | ☓ | icon-60@2x.png | iPhoneメインアイコン |
60系 | 180x180 | ☓ | ☓ | ◯ | icon-60@3x.png | iPhoneメインアイコン |
72系 | 72x72, 144x144 | ◯ | ☓ | ☓ | icon-72.png, icon-72@2x.png | iPadメインアイコン |
76系 | 76x76, 152x152 | ☓ | ◯ | ◯ | icon-76.png, icon-76@2x.png | iPadメインアイコン |
29系 | 29x29 | ◯ | ◯ | ◯ | icon-29.png | iPhone Spotlight(iOS6), iPhone設定(iOS6), iPad設定(iOS7,8) |
29系 | 58x58 | ◯ | ◯ | ◯ | icon-29@2x.png | iPhone設定(iOS6, 7), iPad設定(iOS6, 7, 8) |
29系 | 87x87 | ☓ | ☓ | ◯ | icon-29@3x.png | iPhone設定 |
40系 | 80x80 | ☓ | ◯ | ☓ | icon-40@2x.png | iPhone Spotlight(iOS7) |
40系 | 120x120 | ☓ | ☓ | ◯ | icon-40@3x.png | iPhone Spotlight(iOS8) |
50系 | 50x50, 100x100 | ◯ | ☓ | ☓ | icon-50.png, icon-50@2x.png | iPad Spotlight,iPad設定 |
ファイル名の例に従って、iOS8で追加されたアイコンを準備して下さい。
アセットカタログでアイコンを設定している場合は、iOS 8 and Latter Sizes にチェックをすれば、iPhone6,6Plusに対応したサイズのアイコンが設定できるようになります。
アプリに組み込む起動画像(横)
iphone6Plusのfullscreen画像のサイズは、実デバイスサイズ(1080x1920)ではなく、ピクセルサイズの(1242x2208)で用意して下さい。 また、iPhone6,6Plus本来の画像ピクセルサイズを有効にするために、Launch ImagesもしくはLaunch Screen Fileは必ず設定してください。
端末 | サイズ(幅px x 高px) | ファイル名の例 | 備考 |
---|---|---|---|
〜iPhone3GS | 480x320 | Default.png | 〜iOS6 |
iPhone4/4s | 960x640 | Default@2x.png | iOS4〜 |
iPhone5/5s | 1136x640 | Default-568h@2x.png | iOS6〜 |
iPhone6 | 1334x750 | Default-667h@2x.png | iOS8〜 |
iPhone6Plus | 2208x1242 | Default-736h@3x.png | iOS8〜 |
申請時に登録するアプリ説明画像
端末画面サイズ | 画像サイズ(幅×高さ) | 最大枚数 | 必要? |
---|---|---|---|
3.5インチ | 640x920, 620x960, 960x600, 960x640 | 5枚 | 最低1枚必要 |
4インチ | 640x1096, 640x1136, 1136x600, 1136x640 | 5枚 | 最低1枚必要 |
4.7インチ | 750x1334, 1334x750 | 5枚 | iPhone6の画面サイズに対応したアプリでは最低1枚必要 |
5.5インチ | 1242x2208, 2208x1242 | 5枚 | iPhone6 Plusの画面サイズに対応したアプリでは最低1枚必要 |
申請時に登録するアプリ動画
端末画面サイズ | 動画サイズ(幅×高さ) | 最大数 | 必要? |
---|---|---|---|
4インチ | 1920x1080, 1136x640, 1080x1920, 640x1136 | 1 | 任意 |
4.7インチ | 1334x750, 750x1334 | 1 | 任意 |
5.5インチ | 1920x1080, 1080x1920 | 1 | 任意 |
その他画像リソース
iPhont6Plusに対応する場合は解像度が3倍の画像リソースを別途用意してください。
UIImageとして画像をloadする方法を例にあげると、以下のコードでloadすれば、iPhone4s,5,5s,6の時にはimage@2x.png、iPhone6Plusの時にはimage@3x.pngが自動で選択される。
UIImage *image = [UIImage imageNamed@"image"]; //機種ごとの解像度のimageを自動で選択してくれる。
pathForResourceでは、iOS8のバグなのか、どの機種で試してもimage@3x.pngがloadされてしまう。
NSString *path = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"]; UIImage *image = [[UIImage alloc] initWithContentsOfFile:path]; //どの機種でもimage@3x.pngがloadされてしまう。
pathForResourceを用いてloadするときは、自動選択は諦めてフルパスで画像ファイルのパスを指定してください。