Как добавить splash screen в Flutter?

Чтобы добавить splash screen в Flutter-приложение, можно воспользоваться стандартным способом через изменения в платформенных файлах проекта для Android и iOS. Вот шаги для настройки:

1. Добавление Splash Screen на Android

  1. Откройте файл android/app/src/main/res/drawable/launch_background.xml:

    Если его нет, создайте новый файл. Добавьте следующий код, чтобы задать фоновое изображение или цвет:

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@color/your_splash_background_color" />
        <!-- Опционально можно добавить изображение: -->
        <!-- <item>
            <bitmap android:gravity="center" android:src="@drawable/your_splash_image" />
        </item> -->
    </layer-list>
    

    Обратите внимание, что здесь используется ресурс цвета или изображение для фона splash screen.

  2. Измените файл android/app/src/main/AndroidManifest.xml:

    Найдите тег <activity> и добавьте атрибут, чтобы использовать созданный фоновый ресурс:

    <activity
        android:name=".MainActivity"
        android:theme="@style/LaunchTheme"
        ...>
    
  3. Настройка стиля:

    В файле android/app/src/main/res/values/styles.xml добавьте новый стиль для splash screen:

    <style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/launch_background</item>
    </style>
    

2. Добавление Splash Screen на iOS

  1. Откройте Xcode и найдите папку с вашим Flutter-проектом.

  2. Добавьте изображение для splash screen:

    Перейдите в папку ios/Runner, найдите файл LaunchScreen.storyboard и откройте его. Вы можете добавить сюда изображение или изменить фон, используя графический интерфейс Xcode.

  3. Настройте запуск:

    Убедитесь, что в файле Info.plist есть настройки для использования этого экрана:

    <key>UILaunchStoryboardName</key>
    <string>LaunchScreen</string>
    

3. Использование пакета flutter_native_splash

Если вы хотите автоматизировать процесс создания splash screen, можно использовать пакет flutter_native_splash. Он значительно упрощает процесс. Вот пример:

  1. Добавьте зависимость в pubspec.yaml:

    dev_dependencies:
      flutter_native_splash: ^2.0.0
    
  2. Настройте splash screen в том же файле:

    flutter_native_splash:
      color: "#42a5f5"
      image: assets/splash.png
      android: true
      ios: true
    
  3. Выполните команду:

    flutter pub run flutter_native_splash:create
    

Этот пакет автоматически создаст необходимые файлы и настройки для Android и iOS.

После этого splash screen будет отображаться при запуске вашего приложения.