はじめに
今回は、Xcode12から追加された、Info.plistを使った Launch Screen の構成方法について紹介したいと思います。
Appleは2020年初頭、デベロッパーに対して「起動画面にはlaunch.storyboardsを使用すること」を要求すると発表しました。
これはごく自然な流れなのですが、SwiftUIアプリを開発しているデベロッパーは少し違和感を感じていたのではないでしょうか。そう、SwiftUIアプリはそもそもstoryboardsを利用しないのにも関わらず、起動画面のためだけにstoryboardsを組み込む必要があったからです。
そこでXcode12からは、storyboardsではない方法で Launch Screen を構成する方法が用意されました。
Info.plist で Launch Screen
まずは、Xcode12を利用して、SwiftUIのプロジェクトテンプレートを作成してみます。

Xcode11.x では、LaunchScreen.storyboardsファイルが自動で生成されていましたが、Xcode12.x からは生成されなくなりました。

その代わり、Info.plistファイルには、新たにLaunch Screen というキーが追加されています。

まずはプロジェクトにロゴ画像を組み込み、この画像を表示するLaunch Screen を設定してみます。


ではアプリをビルドして起動してみます。

はい、できました。とても簡単ですね!
そのほかのカスタム項目
画像を表示する以外にも、さまざまなカスタム項目が用意されています。
Image Name | 画像ファイル | Assetsで定義 |
Background color | 背景色 | Assetsで定義 |
Image respects safe area insets | 画像のセーフエリア設定 | |
Show Navigation bar | ナビゲーションバーの表示 | |
Show Tab bar | タブバーの表示 | |
Show Toolbar | ツールバーの表示 |
例えば、画像以外に背景色やツールバーを表示すると、Launch Screen はこのような見た目になります。

おわりに
いかがだったでしょうか?シンプルな Launch Screen は、もうこれだけで問題なさそうですね!
Appleも、Launch Screen は極力シンプルな作りにすることを勧めています。この手法でできる範囲で作るのが良さそうです。
今回は紹介しませんでしたが、「スキーム起動ごとに別のLaunch Screen を表示する」などの設定も可能です。
公式ドキュメントはこちらですので、もっと踏み込んで学習したい場合には、ぜひ公式ドキュメントにも目を通してみてください。