An artificially extended splash screen — one that holds for a hardcoded timer rather than dismissing when the app is ready — violates Apple's HIG and Android's launch screen guidance and is flagged during App Store review as an indication of poor app quality. Beyond rejection risk, every extra second of splash increases abandonment: research on mobile startup performance shows user drop-off begins at 2 seconds and accelerates sharply past 3. A 5-second hardcoded delay loses a measurable percentage of first-run users before they ever see the app. ISO 25010:2011 performance-efficiency applies here directly — launch time is a contractual quality attribute, not a cosmetic preference.
Medium because an artificially extended splash screen signals poor app quality to store reviewers and measurably increases first-run abandonment before users reach the app UI.
Remove all hardcoded setTimeout or sleep calls from the splash lifecycle and tie dismissal to actual app readiness. Heavy initialization (API prefetch, database hydration) must move off the critical path.
// Wrong — artificial delay
await new Promise(resolve => setTimeout(resolve, 5000));
// Correct — dismiss when ready
await Promise.all([authCheck(), configLoad()]);
SplashScreen.hideAsync();
For Expo, call SplashScreen.preventAutoHideAsync() at module load and SplashScreen.hideAsync() only after fonts and critical data are loaded. Profile cold-start time on a real mid-range device (not a simulator) using Xcode Instruments or Android Profiler before submitting.
mobile-store-readiness.visual-assets.splash-screen-durationmediumapp.json for any delay/timeout configuration, or in native code for how long the splash screen displays before the app UI becomes interactive. Look for excessive delays in ios/[AppName]/LaunchScreen.storyboard or android/app/src/main/res/drawable/launch_screen.xml. The splash screen should appear only during app initialization (typically <1-2 seconds on modern devices).mobile-offline-storage) checks state restoration on launch, which directly affects splash screen duration."Splash screen includes a 5-second hardcoded delay before showing app UI" or "App takes >3 seconds to initialize, splash screen persists for entire duration""splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
}
setTimeout, sleep())