Skip to content
Back to skills

Design Splash Screen

ASecurity

Design Android splash screen using SplashScreen API (Android 12+) and expo-splash-screen for older. Use when the user says 'splash screen android', 'launch screen android', 'first screen android'.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 4, 2026
developmentgobashapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add khadinakbarlabs/expo-mobile-app-builder --skill design-splash-screen --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Design Splash Screen?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Design Splash Screen
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/khadinakbarlabs-design-splash-screen/badge)](https://www.skillsdirectory.com/skills/khadinakbarlabs-design-splash-screen)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "design-splash-screen"
description: "Design Android splash screen using SplashScreen API (Android 12+) and expo-splash-screen for older. Use when the user says 'splash screen android', 'launch screen android', 'first screen android'."
---

# Design Splash Screen (Android)

Android 12+ uses the official SplashScreen API — different from iOS storyboard pattern.

## How it works (Android 12+)

System renders:
1. Window background (color)
2. Animated app icon (default duration)
3. Brand image (optional)
4. App's first activity

Android 11 and below: fallback to expo-splash-screen full-screen image.

## RN+Expo config

```bash
npm exec --no -- expo install expo-splash-screen
```

`app.json`:
```json
{
  "expo": {
    "plugins": [
      [
        "expo-splash-screen",
        {
          "image": "./assets/splash-icon.png",
          "imageWidth": 200,
          "backgroundColor": "#ffffff",
          "android": {
            "image": "./assets/splash-icon-android.png",
            "imageWidth": 200,
            "backgroundColor": "#ffffff"
          },
          "dark": {
            "image": "./assets/splash-icon-dark.png",
            "backgroundColor": "#000000"
          }
        }
      ]
    ]
  }
}
```

## Design rules

- **No text** — Android system renders icon, not your design
- **Center-anchor logo** — 200dp width recommended
- **Match app background color** — seamless transition to first screen
- **No animation** — system handles fade
- **Light + dark variants** — match system theme

## Image specs

- **PNG with transparency** for the icon
- **200dp width** typical (Android scales for density)
- Single subject, centered

## Hide splash from code

```tsx
import * as SplashScreen from 'expo-splash-screen';

SplashScreen.preventAutoHideAsync();

// After your app is ready:
useEffect(() => {
  if (appReady) {
    SplashScreen.hideAsync();
  }
}, [appReady]);
```

## Splash screen timing budget

- System splash: ~200-400ms (Android 12+ standardized)
- Your bootstrap (font loading, theme calc): <200ms target
- Total perceived: <600ms

If your app takes longer to boot, defer non-critical work — don't show "Loading..." in splash.

## Pre-Android 12 fallback

expo-splash-screen renders a full-screen image. Same image, but stretched. Less polished but acceptable.

## Common gotchas

- "Splash flashes white" — wrong background color in plugin config
- "Splash too long" — your JS is slow; not the splash screen
- "Logo too big" — `imageWidth` is in dp, not px
- Dark mode splash not matching system — set `dark` variant explicitly
- Splash showing brand image on Android 12+ — use `brandImage` field, separate from icon

## Pair with
- `design-app-icon-adaptive` for icon
- `optimize-aab-size` if splash assets bloat bundle

Files in this skill

  • SKILL.md2.7 KB
  • agents/openai.yaml191 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…