App Icons
App icon and adaptive icon setup with Expo configuration, required sizes, and generation tools.
App Icons
Every mobile app needs an icon. Expo simplifies icon generation by taking a single high-resolution image and creating all required sizes for iOS and Android.
Required Sizes
| Platform | Size | Purpose |
|---|---|---|
| iOS | 1024x1024 | App Store listing |
| iOS | Various (auto-generated) | Home screen, Spotlight, Settings |
| Android | 1024x1024 | Play Store listing |
| Android | 108x108 dp (adaptive) | Home screen, launcher |
Basic Setup
Place your icon in the assets folder and configure app.json:
{
"expo": {
"icon": "./assets/icon.png"
}
}This single 1024x1024 PNG is used to generate all required sizes during the build.
Icon Requirements
- Format: PNG (no transparency for iOS App Store)
- Size: 1024x1024 pixels minimum
- Shape: Square — iOS rounds the corners automatically
- No alpha: iOS App Store rejects icons with transparency
Adaptive Icons (Android)
Android adaptive icons have separate foreground and background layers, allowing the OS to apply different shapes (circle, squircle, rounded square):
{
"expo": {
"icon": "./assets/icon.png",
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon-foreground.png",
"backgroundImage": "./assets/adaptive-icon-background.png",
"backgroundColor": "#FFFFFF"
}
}
}
}Designing Adaptive Icons
The foreground image should:
- Be 108x108 dp (432x432 px at xxxhdpi)
- Keep the logo within the safe zone (center 66dp / 264px circle)
- Have a transparent background
You can use a solid color instead of a background image:
{
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon-foreground.png",
"backgroundColor": "#3B82F6"
}
}
}iOS-Specific Configuration
For a different icon on iOS:
{
"expo": {
"ios": {
"icon": "./assets/ios-icon.png"
}
}
}Favicon (Web)
If your Expo app also runs on web:
{
"expo": {
"web": {
"favicon": "./assets/favicon.png"
}
}
}Generation Tools
Start with a 1024x1024 source image and use these tools:
| Tool | Description |
|---|---|
| Icon Kitchen | Free, generates adaptive icons with preview |
| Figma App Icon Template | Free Figma template with safe zones |
| EasyAppIcon | Generates all sizes from one image |
| makeappicon.com | Batch resize for all platforms |
Design Tips
- Keep it simple — The icon is small on screen, fine details get lost
- Use bold colors — Stand out on both light and dark wallpapers
- Avoid text — Text is unreadable at small sizes
- Test on device — Check how it looks on the actual home screen
- Check dark backgrounds — Ensure visibility on dark mode home screens
Development Build Icon
Add a banner to distinguish dev builds from production:
{
"expo": {
"plugins": [
[
"expo-build-properties",
{
"android": {},
"ios": {}
}
]
]
}
}A common pattern is to add a "DEV" banner to development build icons so you can tell them apart from the App Store version on your device.
Verify Your Icons
After building, verify icons look correct:
# Build for preview
eas build --profile preview --platform ios
eas build --profile preview --platform androidInstall the build on your device and check the home screen icon appearance.