Launch Screen Development for Mobile Applications
Launch Screen is the first thing a user sees after tapping the app icon. It exists not for beauty, but to cover app initialization time with the illusion of instant launch. Apple and Google explicitly state this in guidelines: Launch Screen should look like a "snapshot" of the app's first screen, not a branding screen.
iOS: LaunchScreen.storyboard vs Info.plist
Before iOS 14, Launch Screen was set via LaunchScreen.storyboard. Starting with Xcode 14, App Store requires UILaunchScreen in Info.plist for new applications. Both approaches are supported, but storyboard provides more flexibility.
Important note: iOS caches the Launch Screen. If you change something in the storyboard and test it, you need to delete the app and reinstall it, otherwise you'll see the old version.
What you can do in Launch Screen on iOS: static logo, background color, simple image. What you cannot: animations (this is the reason for Guideline 2.3.7 rejection), video, interactive elements. Text is also not recommended — there's no localization mechanism.
Image sizes: you need @1x, @2x, @3x variants. For Asset Catalog in Xcode — PDF vector or PNG set.
Android: SplashScreen API vs Legacy
Before Android 12, splash was implemented via Theme with windowBackground. With Android 12, SplashScreen API appeared — system-level, with icon animation. Google strongly recommends migrating, and for new apps with API 31+ target, it's already standard.
Via SplashScreen API: we set windowSplashScreenBackground (background color), windowSplashScreenAnimatedIcon (animated icon, Animated Vector Drawable, no more than 1000ms), windowSplashScreenIconBackgroundColor. Icon is adaptive, 240×240dp.
The androidx.core:core-splashscreen library allows using SplashScreen API on Android 6+, which solves the fragmentation problem.
React Native and Flutter
In React Native, splash is implemented via native parts of iOS/Android plus the react-native-bootsplash package (recommended over deprecated react-native-splash-screen). react-native-bootsplash generates all necessary resources from a single PNG via CLI command.
In Flutter: standard FlutterActivity shows a native launch screen until the first Flutter frame. Configured via the same LaunchScreen.storyboard on iOS and SplashScreen API on Android. flutter_native_splash is a plugin that generates native resources for both platforms from a single configuration file.
Animated Splash Screen
Animated splash (Lottie animation after native launch screen) is a different story. After the app initializes, we show the first placeholder screen with a Lottie animation for 1–2 seconds. Technically, this is already the first app screen, not the system Launch Screen. On iOS, LottieAnimationView from official Lottie iOS 4.x library, on Android LottieAnimationView from com.airbnb.android:lottie.
Timeline: 1 day. Includes design, resource preparation for all platforms, project configuration.







