Monacaチームの小田川です。
2021年10月4日にAndroid 12が正式にリリースされました。
Android 12では、新機能や変更点がいくつかありますが、Monacaで開発するアプリにおける変更点として、スプラッシュスクリーンがあります。Android 12からは、スプラッシュスクリーンの仕様が変更され、デフォルトでは、ランチャーアイコンがスプラッシュスクリーンに表示されるようになります。
Android 12のスプラッシュスクリーンについては、Googleから提供されているスプラッシュ画面を参照していください。
今回は、Android 12でのスプラッシュスクリーンについて見ていきたいと思います。
スプラッシュスクリーンの表示
Android 12では、アプリ起動時にスプラッシュスクリーンが標準で表示されるようになります。
これまでも、Monacaで開発するアプリでは、アプリ起動時にスプラッシュスクリーンが表示されていましたが、これは、cordova-plugin-splashscreenを利用することで実現しています。Android 12からは、OSの機能としてスプラッシュスクリーンが表示されるようになり、非表示にすることはできません。
また、OSの機能としてスプラッシュスクリーンが表示されているため、targetSdkVersionを31未満に設定してビルドした場合でも、Android 12上では、ランチャーアイコンがスプラッシュスクリーンに表示されます。
スプラッシュスクリーンの注意点
Android 12では、OSの機能としてスプラッシュスクリーンが表示されるようになり、非表示にすることはできないため、アプリで独自にスプラッシュスクリーンを設定している場合は、Android 12用のスプラッシュスクリーンと独自に設定しているスプラッシュスクリーンの両方が表示されます。
Android 12用のスプラッシュスクリーンの方が画面の上位に表示されるため、独自に設定しているスプラッシュスクリーンは隠れている状態になり、画面上には表示されませんが、独自に設定しているスプラッシュスクリーンの表示時間を長時間に設定している場合は、Android 12用のスプラッシュスクリーンが非表示になった後に、独自に設定しているスプラッシュスクリーンが表示される場合があります。
Monacaで開発するアプリで利用しているcordova-plugin-splashscreenでは、スプラッシュスクリーンの設定を独自に行っているため、MonacaクラウドIDEのAndroidアプリ設定
画面にある表示時間
に長時間の設定を行っている場合は、Android 12用のスプラッシュスクリーンが非表示になった後にcordova-plugin-splashscreenで設定されたスプラッシュスクリーンが表示されます。
Android 12用のスプラッシュスクリーンが非表示になった後に、cordova-plugin-splashscreenで設定されたスプラッシュスクリーンが表示されることをアプリの仕様として捉える場合は問題ありませんが、Android 12でcordova-plugin-splashscreenで設定されたスプラッシュスクリーンを表示させないようにする場合は、表示時間を調整する必要があります。
スプラッシュスクリーンのカスタマイズ
Android 12からは、SplashScreen API
が追加され、Android 12用のスプラッシュスクリーンのカスタマイズができるようになっていますが、設定には、アプリの起動画面で使用されているActivityのテーマとして設定したり、コードを記述して設定する必要があります。
現在提供されているcordova-plugin-splashscreenでは、SplashScreen APIには対応していないため、Monacaで開発するアプリの場合は、デフォルトの設定が適用されます。SplashScreen APIを利用したスプラッシュスクリーンのカスタマイズについては、cordova-plugin-splashscreenの対応待ちになります。
おわりに
Android 12以降とAndroid 12未満では、スプラッシュスクリーンの表示が異なります。実機のAndroid 12端末が利用できない場合でも、Android Studioで提供されているエミュレーターを利用することで動作を確認することができます。現在、Playストアにアプリを公開しているような場合は、一度、Android 12上でのスプラッシュスクリーンの表示を確認してみてください。
また、スプラッシュスクリーンは、アプリ起動時に表示される画面のため、アプリのブランドイメージにも繋がる要素になります。Android 12のスプラッシュスクリーンでは、アニメーションにも対応しているので、cordova-plugin-splashscreenでの対応が望まれます。今後のcordova-plugin-splashscreenの動きも注意して見ていきたいと思います。