Skip to main content

native_splash

PackageKindProvides the roleNeedsChoose with
smf_native_splashinfrastructureSplash screennothing-m native_splash

native_splash makes the screen that the system shows while the app starts with flutter_native_splash, in place of the white screen of flutter create. All flavors of the app share the screen. To replace the images, see App icon and splash screen.

What it adds to the app​

In the appWhat it is
flutter_native_splash: ^2.4.8 in the dev dependenciesThe tool. No code of the app imports it.
assets/branding/splash_light.png1152 by 1152 on a transparent background, the mark of Say My Frame in green, for the light mode of the device
assets/branding/splash_dark.png1152 by 1152 on a transparent background, the same mark in cream, for the dark mode
flutter_native_splash.yamlHow the tool makes the screen, with cream, #F1F1E8, behind the mark in the light mode and green, #0F3326, in the dark mode, and the same again under android_12
The section "Native splash" of the READMEWhat the images show, where the colours are, and the command

Whichever module provides it, the role adds the section "Splash screen" of the README. The app does not bundle the images.

In the guide for coding agents of the app, the role names the sources under "Splash screen". The module adds the command and what it rewrites.

After generation​

The module runs the tool once the app has its packages. A run in a terminal asks first, with Enter for yes:

? Making the splash screen from assets/branding (dart run flutter_native_splash:create), for native_splash. Run it now? (Y/n)

A run without a terminal runs it too. When the tool fails, you still get the app, with a white launch screen, a warning and the command to run later.

Run it again after you change an image or flutter_native_splash.yaml, and commit what changed under android/ and ios/:

dart run flutter_native_splash:create

The command rewrites ios/Runner/Info.plist with one more level of indentation.

Keep the mark of an image inside a circle of two thirds of its width, since Android 12 and later cut the rest. Keep android_min_sdk out of flutter_native_splash.yaml: with it, the tool leaves the launch background of Android below 12 as it is, and the screen there has no image.

A file flutter_native_splash-<flavor>.yaml does not give a flavor its own screen on iOS: the tool writes one, and the app keeps showing the screen of flutter_native_splash.yaml.

Choosing it​

smf create asks which module provides the splash screen, and the answer may be none. To choose it without the question:

smf create my_app -m native_splash