Loading…

Guides › Flutter App Icon Sizes: The Complete Guide for Every Platform

Flutter App Icon Sizes: The Complete Guide for Every Platform

7 min read · Updated August 2026

Every size Flutter expects for Android, iOS, Web, Windows, macOS, and Linux — and why there are so many of them.

One of the more surprising things about shipping a Flutter app is discovering just how many different icon files a single logo turns into. A developer coming from web design, where a favicon might be the only icon a project needs, can be caught off guard by the dozens of PNGs, an ICO file, and several JSON manifests that a "finished" app icon actually requires. This guide walks through every size Flutter needs, platform by platform, and explains why the count is so high.

Android: five densities, two shapes

Android ships five standard pixel densities — mdpi, hdpi, xhdpi, xxhdpi, and xxxhdpi — and expects a differently sized launcher icon in each one, from 48×48 up to 192×192 pixels. On top of that, most modern launchers render a "round" variant of the icon for devices or themes that mask icons into a circle, so each density folder also gets an ic_launcher_round.png. Add a single 512×512 icon for the Play Store listing itself, and a basic Android icon set is already ten-plus files before adaptive icons even enter the picture.

Since Android 8.0 (API 26), launchers can additionally mask and animate icons into whatever shape a given device theme uses — squircle, teardrop, circle, or something else entirely. That requires splitting the icon into a foreground layer and a background layer, each generated at a larger canvas size than the flat launcher icon so the system has room to crop and animate without clipping important content.

iOS: one iconset, fifteen sizes

iOS consolidates everything into a single AppIcon.appiconset folder, but that folder still needs a size for every context the icon might appear in: the home screen at 1x/2x/3x scale factors, Settings, Spotlight search, notifications, and the App Store listing itself (a 1024×1024 marketing icon). Each of those contexts has its own required pixel dimensions, and a Contents.json file ties the filenames to their intended usage so Xcode knows which file goes where.

Web, Windows, macOS, and Linux

A Flutter web build needs a favicon, a couple of standard PWA icon sizes for the home-screen/install prompt, and — if the app supports being "installed" as a PWA — maskable variants with extra padding so operating systems can safely crop them into a circle or squircle without cutting off the logo.

Windows desktop apps use a single multi-resolution .ico file (which is really several PNG or BMP images bundled together behind one filename) plus a plain PNG for use inside the app itself. macOS follows the same iconset pattern as iOS, just with its own required sizes — 16 up to 1024 pixels — and its own Contents.json. Linux desktop icons are the simplest of the six, following the standard GTK icon sizes used across most Linux desktop environments.

Why this adds up to so many files

Multiply five Android densities, fifteen iOS sizes, several web variants, a Windows ICO, a macOS iconset, and Linux sizes together, and a full six-platform icon set can easily reach 40-50 individual files — every one of them needing the exact right pixel dimensions and the exact right filename, because each platform's build tooling looks for those files by name, not by inspecting the image itself. Getting even one dimension or filename wrong typically means the platform either falls back to a default icon or rejects the build outright — which is exactly the tedious, error-prone part that an automated generator exists to remove.

Ready to generate your icons? Open FLogo Generator.