より良い iPhone 互換モードを実現する iPhoneSimulator ライブラリ

iPhone にしか対応していないアプリを iPad 上で起動すると、自動的に以下のような iPhone 互換モードで表示されます。

f:id:watanabetoshinori:20180910234508p:plain:w240

およそ3.5インチディスプレイ相当の画面サイズで表示されるため、アプリが最近の機種の画面サイズのみを想定したデザインだった場合にはデザインが崩れたりする場合があります。また、iPad の画面サイズと iPhone 互換モードの画面サイズが大きく異なるため、iPhone互換モードでは操作性があまりよくありません。

もしも iPhone 互換モードがもっと大きな画面サイズであれば、デザイン対応の手間も軽減されますし、あえて iPad 対応せずに iPhone 互換モードを使ってもらうという選択肢も現実的になります。

そこで、より良い iPhone 互換モードを実現するために、iPhoneSimulator というライブラリを作成しました。

この記事では iPhoneSimulator の紹介と、導入方法について説明します。

iPhoneSimulator

github.com

iPhoneSimulator は iPad 上で各種 iPhone 端末の解像度を再現するライブラリです。 iPhone 互換モードの代わりに使用することを想定しています。

このライブラリを適用してアプリを起動すると、以下のように表示されます。 デフォルトでは iPhone 8 相当の画面サイズになります。

f:id:watanabetoshinori:20180910234601p:plain:w240

機種名をタップすると、画面下部に機種リストが表示されます。 機種イメージをタップすることで、別の機種サイズに変更することができます。

f:id:watanabetoshinori:20180910234618p:plain:w240

この機種サイズの変更機能はOFFにすることもできます。

インストール方法

Cocoa pod でインストールすることができます。 Podfile に以下を追加して、pod update を実行してください。

pod 'iPhoneSimulator', :git => 'git@github.com:watanabetoshinori/iPhoneSimulator.git'

使用方法

プロジェクトの設定から、Type を Universal に設定します。

f:id:watanabetoshinori:20180910235035p:plain

AppDelegate に import を追加して、run メソッドを呼び出せば完了です。

import iPhoneSimulator

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    
    iPhoneSimulator.shared.run(window: window!)
    
    return true
}

iPad シミュレータを指定して起動すると、指定した機種サイズでアプリが表示されます。