Розробка сплэш-скрина (Launch Screen) мобільного застосунку
Launch Screen — перше, що видить користувач після натиснення на іконку. Він існує не для красоти, а щоб прикрити час ініціалізації застосунку ілюзією миттєвого запуску. Apple та Google це прямо фіксують у гайдлайнах: Launch Screen повинен виглядати як «знімок» першого екрана застосунку, а не як брендовий екран.
iOS: LaunchScreen.storyboard vs Info.plist
До iOS 14 Launch Screen задавався через LaunchScreen.storyboard. Починаючи з Xcode 14, App Store вимагає UILaunchScreen у Info.plist для нових застосунків. Обидва підходи підтримуються, але storyboard дає більше гнучкості.
Важливий момент: iOS кешує Launch Screen. Якщо змінили щось у storyboard та тестуєте — потрібно видалити застосунок та поставити його заново, інакше побачите стару версію.
Що можна робити в Launch Screen на iOS: статичний логотип, фоновий колір, просте зображення. Що не можна: анімації (це причина reject по Guideline 2.3.7), відео, інтерактивні елементи. Текст також не рекомендується — немає механізму локалізації.
Розміри зображень: потрібні варіанти @1x, @2x, @3x. Для Asset Catalog у Xcode — PDF-вектор або PNG-сет.
Android: SplashScreen API vs legacy
До Android 12 сплеш реалізовувався через Theme з windowBackground. З Android 12 з'явився SplashScreen API — системний, з анімацією іконки. Google наполегливо рекомендує мігрувати, і для нових застосунків з таргетом API 31+ це вже стандарт.
Через SplashScreen API: задаємо windowSplashScreenBackground (колір фону), windowSplashScreenAnimatedIcon (анімована іконка, Animated Vector Drawable, не більше 1000ms), windowSplashScreenIconBackgroundColor. Іконка — адаптивна, 240×240dp.
Бібліотека androidx.core:core-splashscreen дозволяє використовувати SplashScreen API на Android 6+, що вирішує проблему фрагментації.
React Native та Flutter
У React Native сплеш реалізується через нативні частини iOS/Android + пакет react-native-bootsplash (рекомендується над застарілим react-native-splash-screen). react-native-bootsplash генерує всі необхідні ресурси з одного PNG через CLI-команду.
У Flutter: стандартний FlutterActivity показує нативний launch screen до першого кадру Flutter. Налаштовується через той же LaunchScreen.storyboard на iOS та SplashScreen API на Android. flutter_native_splash — плагін, який генерує нативні ресурси під обидві платформи з одного файлу конфігурації.
Animated Splash Screen
Анімований splash (Lottie-анімація після нативного launch screen) — це інша історія. Після того як застосунок ініціалізувався, показуємо перший екран-заглушку з Lottie-анімацією на 1–2 секунди. Технічно це вже перший екран застосунку, а не системний Launch Screen. На iOS LottieAnimationView з офіційної бібліотеки Lottie iOS 4.x, на Android LottieAnimationView з com.airbnb.android:lottie.
Строк — 1 день. Включає дизайн, підготовку ресурсів для всіх платформ, налаштування в проекті.







