JINMUSOFTWARE

Flutterでスプラッシュ画面を作る

launch screen

目的

Flutterアプリのスプラッシュ画面(起動画面)を作成します。

Flutterで開発したアプリのスプラッシュ画面は「真っ白」がデフォルトです。

パッケージ「flutter_native_splash」を使用してスプラッシュ画面を作成します。

スプラッシュ画面とは

アプリ起動時に表示される画像のことです。

一般的には、ブランドに沿ったカラーやアイコンが表示されることが多いです。

Flutterのデフォルトでは以下のように、白色の起動画面が表示されます。

白い起動画面

「スプラッシュ画面」は、「起動画面」とも呼ばれることがあります。

Android側では同じ意味で使用しているようです。

iOS側では、「Launch Screen」と「Splash Screen」を区別しているようです。

  • Launch Screen
  • Splash Screen

「Luanch Screen」は、アプリ起動時に表示される画面のことです。アプリ起動時にOSが自動で表示します。

「Splash Screen」は、アプリ起動後に表示する画面のことで、開発者が意図的に表示させる画面のことです。

Apple公式 アプリの起動について:https://developer.apple.com/jp/design/human-interface-guidelines/launching

環境

  • PC : Mac mini (Apple M4)
  • OS : Sequoia 15.5
  • Flutter 3.32.8
  • flutter_native_splash 2.4.6
  • Simulator 16.0(1042.1)

実装1

まずは簡単に起動画面の背景色を変更してみます。

パッケージ「flutter_native_splash」のインストール

https://pub.dev/packages/flutter_native_splash pub.dev

Native Splash Screen [2022] 動画による解説

pubspec.yaml
dev_dependencies:
  flutter_native_splash: ^2.4.6

起動画面だけの利用であれば、「dev_dependencies」への記述で十分ですね。

「flutter_native_splash.yaml」の作成

プロジェクトのルートに「flutter_native_splash.yaml」ファイルを新規作成します。

内容を以下のように記述してください。

flutter_native_splash.yaml
flutter_native_splash:
  color: "#0000FF" # 青色の背景
  android: true
  ios: true

起動画面の生成

コマンドを実行します。

Bash
dart run flutter_native_splash:create

動作確認

アプリの起動画面が青色になりましたね!

Launch Screen

実装2

次はpng形式の画像を表示してみます。

画像の準備

適当なpng画像を用意します。

画像サイズは1152pxで、中央768px円周にロゴが収まるようにします。

Androidでは、ある程度padding領域がないと見切れてしまいます。

launch screen logo
launch screen logo

「assets/」に保存します。

「flutter_native_splash.yaml」の準備

「flutter_native_splash.yaml」ファイルを以下のように記述してください。

flutter_native_splash.yaml
flutter_native_splash:
  color: "#0C6FCC"
  image: assets/flutter.png

  android_12:
    image: assets/flutter.png
    color: "0C6FCC"

起動画面の生成

先ほどと同じく以下のコマンドを実行します。

Bash
dart run flutter_native_splash:create

動作確認

無事、画像も表示されました。

青い背景とロゴの起動画面

バグ

背景色を変更したところ、変更前の色と変更後の色が表示されました。キャッシュ関係のバグのようです。

Simulatorから対象のアプリを削除し、Simulatorを再起動したところバグは発生しませんでした。

以上

参照

flutter_native_splash 2.4.6