DEV Community

Muhammad Zeeshan
Muhammad Zeeshan

Posted on

Stop Using a Plain Image Resizer for Your App Icons — Here's What to Do Instead

Most "app icon generators" online are just glorified image resizers. You drop in a 1024×1024 PNG, they spit out smaller versions of the same file. That's it.

That works fine if your icon is already fully designed. But what if you're in the middle of building an MVP and just need something that looks like a real app?

The problem with placeholder icons

When you create a new iOS or Android project, the default placeholder is a gray grid. It's immediately recognizable as "this app is not finished." If you're demoing to a client, a stakeholder, or running a TestFlight build — that gray grid signals unpolished before anyone taps a single screen.

A real icon takes 5 minutes to set up. There's no reason to ship without one.

What your icon actually needs to output

iOS and Android have strict requirements, and they differ from each other.

iOS expects an AppIcon.appiconset folder with a Contents.json manifest so Xcode knows which file maps to which context. Sizes range from 20pt all the way to 1024pt, at @1x, @2x, and @3x scale.

Android uses adaptive icons — a foreground layer and a background layer rendered separately, so the system can apply its own mask (circle, squircle, rounded square, etc.) depending on the device manufacturer. You also need:

  • Legacy icons for API ≤ 25
  • Round icons for API 25
  • A 512×512 Play Store asset
  • Monochrome variant for Android 13+ themed icons

A plain image resizer gives you none of this structure. You'd still need to manually rename files, arrange folders, and write the Contents.json.

What actually helps

If you're inside the IDE

Android Studio Panda 3 have built-in adaptive icon builder.

Android Studio's Image Asset Studio covers the basics — foreground, background, monochrome, legacy, and round variants from a single dialog. Access it via right-click on res/New → Image Asset.

Locating Image Asset Creation Dialog Option

Image Asset Creation Dialog

But it has few limitations:

  • The built-in clip art library is limited
  • There's no text styling (bold, italic, regular)
  • The UI can feel clunky for anyone who just wants a quick, clean result.

My tool addresses all of this — you get access to the full React Icons library (thousands of icons across Font Awesome, Material Design, Remix, and more), proper text styling options, a simpler interface, and a live device preview that shows your icon across all Android shape variants before you download anything.

Its a free browser-based tool that goes further than just resizing.

iOS app icon generation options

Android app icon generation options

You can:

  • Layer assets — choose a foreground (image, clip art from thousands of React Icons, or styled text) over a custom background color or image
  • Preview in context — see your icon live in real iPhone and Android device frames across 8 real-world contexts: home screen, spotlight, settings, App Store, notifications, and more
  • Download a ready-to-use ZIP — with the correct Xcode AppIcon.appiconset folder structure and Android mipmap folders, ready to drop straight into your project

It's especially useful during active development because the assets are replaceable — swap out the foreground or background anytime as your branding evolves, without starting from scratch.

👉 mzeeshan.me/tools/app-icon-generator

The 2-minute MVP icon workflow

  1. Pick any icon from the built-in React Icons library — or upload your own image or logo
  2. Set a background color that matches your app's brand
  3. Preview it on a home screen and adjust until it reads clearly at small sizes
  4. Download the ZIP and drop the folders directly into Xcode or Android Studio

Your app won't look finished. But it'll look intentional — which is all you need for early builds, client demos, and internal testing.

Quick reference: what each platform needs

Asset iOS Android
Source size 1024×1024 PNG 512×512 PNG (Play Store)
Output format AppIcon.appiconset + Contents.json mipmap-mdpi through mipmap-xxxhdpi
Adaptive layers ✓ Foreground + Background
Monochrome ✓ Android 13+
Legacy fallback ✓ API ≤ 25
Round icon ✓ API 25

The gray grid is a 5-minute problem. No reason to leave it there.

Works for native iOS, Android, React Native, and Flutter projects.

Top comments (0)