おしっこの色共有アプリ「iOsikko」開発日誌

おしっこの色を素早く公開できるiPhoneアプリiOsikkoの開発状況、会議での検討内容、活用した技術情報などを更新していく予定です。

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するときは、自動選択は諦めてフルパスで画像ファイルのパスを指定してください。