新型iPhoneが発表された。
NFCなど新しい仕様もさることながら、ディスプレイエンジニア&アマグラマから見ると、iOSもかなりの画面サイズ/解像度の多様性への対応を求められることが興味深い。
- iPhone4S以前: 3.5" 640x960
- iPhone5/5s/5c: 4" 640x1136
- iPhone6: 4.7" 750x1334
- iPhone6+: 5.5" 1080x1920
- iPad mini: 7.9" 768x1024
- iPad mini retina: 7.9" 1536x2048
- iPad 2: 9.7" 768x1024
- iPad 3以降: 9.7" 1536x2048
iPhone6の横幅が4の倍数でないのも興味深い。
通常はパイプラインやシェダーの利用効率を考えて4もしくは16の倍数にするのだ。
しかしよくよく見ると、iPadを除けばiPhone5/5S以降はUIのレイアウトに影響を及ぼすアスペクト比をおおよそ9:16、いわゆるHDTVの比率に合わせているのだ。
iPhone4でretina displayを導入したときは、Xcode上でのUIレイアウト解像度は以前の320x480で、各個体で縦横をx2したのだ。
これはiPadのretina化(768x1024から1536x2048の変更)でも継承されている。
フォントや写真などビットマップのスケーリングは、各個体でサーフェスを作り出すときにターゲットに合わされていた。
これでretinaな再現(reproduction)ができる訳だ。
おそらく今回も、Xcode上ではiPhone5以降のどれかの解像度としてでUIを設計して、各個体でxN倍するのだろう。
iPhone4S以前のアスペクト比は2:3で、それ以降の9:16よりは縦が短いので、9:16の画面に上下を余して表示することができる、後方互換性も問題ない。
iPadのアスペクト比は3:4で、ずっと固定だ。
なので、Xcode上では今後もiPhoneとiPadの2機種のUI設計となるのだろう。
Androidを見ると3:4もあれば、タブレットは殆ど10:16、スマフォは9:16、しかも解像度としては
- 480x800
- 540x960
- 600x1024
- 768x1024
- 720x1280
- 800x1920もしくは1280x800
- 1080x1920
- 1200x1920もしくは1920x1200
- 1440x2560
- 2560x1600
加えてサイズバリエーションもすさまじいので、iOSはまだまだましな方だ。
ただ・・・検証工数は上がるな。