← Back to all posts

The Fastest Way to Generate App Icons for React Native

EhsanBy Ehsan
3 min read
React NativeApp IconsToolingApp DevelopmentiOSAndroidCLI Toolsnpm packagesMobile DevelopmentAutomation

Introduction

Generating app icons for React Native used to be tedious. Export your icon at 10+ different sizes for iOS, then another set for Android. Round icons, adaptive icons, notification icons—it never ends.

AppIcon.co used to be my favorite tool for this. Upload an image, download a zip with all sizes. It worked great, but still required manual file copying.

Now I use a faster approach: one command line tool that does everything locally.

The Fast Way

Install it globally or use npx:

npx icon-set-creator create src/icons/app_icon.png

That's it. The tool generates all required icon sizes for both iOS and Android.

Prepare Your Icon

Before running the command, prepare your source image:

Size: 1024x1024 pixels (minimum)

Format: PNG with transparency

Design: Keep important content in the center. Mobile platforms apply different masks (rounded corners, circles, squircles).

Safe zone: Keep critical elements within the center 80% of the image. Corners and edges might get cropped.

Background: If your icon needs a background color, include it in the PNG. Don't rely on transparency unless intentional.

What It Generates

The tool creates all the icon sizes you need:

iOS:

  • App icon sizes (20pt to 1024pt at 1x, 2x, 3x)
  • Assets.xcassets configuration
  • Handles light and dark mode if needed

Android:

  • mipmap folders (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi)
  • Launcher icons
  • Adaptive icons (foreground and background)
  • Round icons

All properly sized and organized in the correct directories.

Best Practices

Use vector graphics when possible - Design your icon in Illustrator, Figma, or Sketch. Export at 1024x1024 or higher for best quality.

Test on real devices - iOS and Android display icons differently. Test on both platforms to ensure it looks good.

Keep it simple - App icons are displayed at small sizes. Complex details get lost. Bold, simple shapes work best.

High contrast - Make sure your icon stands out against various backgrounds. Light and dark home screens, folders, etc.

No text - Text rarely works well in app icons. Use symbols and shapes instead.

Consistent style - Match the design language of your app. The icon is the first thing users see.

Alternative: Manual Setup

If you want more control, you can still do it manually:

iOS: Add icons to ios/YourApp/Images.xcassets/AppIcon.appiconset/

Android: Add icons to android/app/src/main/res/mipmap-*/

But honestly, why bother? The automated tool is faster and less error-prone.

Common Issues

Icon not updating:

After generating new icons:

  • iOS: Clean build folder (Product > Clean Build Folder in Xcode)
  • Android: Run cd android && ./gradlew clean
  • Rebuild the app

Wrong sizes generated:

Make sure your source image is at least 1024x1024. Smaller images get upscaled and look blurry.

Transparency issues on Android:

Android adaptive icons separate foreground and background. If your icon has transparency, you might need to provide a solid background layer.

Final Tip

If you're updating your app icon regularly, you can also add the command as a package.json script:

{
  "scripts": {
    "generate:icons": "icon-set-creator create src/icons/app_icon.png"
  }
}

Then just run npm run generate:icons whenever you need to update.

Resources