iPhoneでマルチウィンドウ対応アプリを作れないことを確認する

2.png "〜できないこと"を確認するのって意外と厄介だったりしますよね。 今回は、iPadではマルチウィンドウ対応アプリを作れても、iPhoneでは作れないことを確認しようというお話です。

マルチウィンド対応アプリとは?

iPadではマルチタスク機能として、左右に2つのアプリを並べて表示したり、 フローティングウィンドウ化して他のアプリに重ねて表示することができます。

iOS 13でScene APIが追加され、1つのアプリでも左右に別のウィンドウを表示するようなアプリを作れるようになりました。

iPadのように大画面デバイス向けの機能でiPhoneでは使えないように思われますが、Scene APIのクラスやメソッドはiOSでもiPad OSでも呼べることになっているんですよね...

という訳で「iPhoneではマルチウィンドウ対応アプリを作れない」ことを確認する方法を探しに行きましょう。

1 公式ドキュメントを眺めてみる

まずはScene APIのドキュメントを当たってみましょう

Specifying the Scenes Your App Supports ではこう記述されています。

In iOS 13 and later, users can create multiple copies of your app's UI and toggle between them in the app switcher. On iPad, users can also display one copy of your app's UI side by side with another copy. For each copy of your app's UI, you use a scene object to manage the window, views, and view controllers that present the UI onscreen.

iPadでは1つのアプリでUIを並べて表示できると書かれていますが、iPhoneでは使えないのか他の表現方法があるのかなどはいまいちハッキリしませんね。

2 UIApplication.supportsMultipleScenes

UIApplication.supportsMultipleScenes はアプリがマルチウィンドウに対応可能かどうかを判定するプロパティです。

  • システムがマルチウィンドウに対応している
  • Info.plistでUIApplicationSupportsMultipleScenesの値がtrue

これら両方を満たす場合にtrueを返します。

Info.plistでUIApplicationSupportsMultipleScenesがtrueのしてサンプルアプリを作り、実行時にsupportsMultipleScenesの値を確認すればiPhoneがマルチウィンドウアプリに対応してないことが確認できそうです。

3 検証

iOSシミュレータでiPhoneがマルチウィンドウアプリにしていないことが確認できました。

動作確認.png

サンプルコード.png

これで根拠を持って「iPhoneではマルチウィンドウ対応アプリを作れない」と言えるようになりました。めでたしめでたし。

お気軽にご依頼・ご相談ください

前へ

Power Pagesのスタイルシートをハックしてみた。