Intro to Launcher Icons

Designing an eye-catching icon is crucial for making your app stand out in app stores and ensuring users can easily find it on their home screens:

iOS app store page and home screen showing the icon for my Flutter Tips app

When you create a new Flutter project, the default launcher icon is the standard Flutter logo, and that gets old pretty quick:

iOS home screen showing a bunch of new Flutter apps with the standard icon

Choosing a unique icon is not only desirable but also required. 👇

A cautionary tale about app icons

When I first published my Flutter Tips app on the Google Play Store, I chose an icon that vaguely resembled the Flutter logo. Shortly afterward, my app was removed for “Violation of Impersonation policy”. After reading the Flutter Brand Guidelines and some back and forth with the Play Store team, I ended up with a different icon, and my app was reinstated.

Bottom line: The app stores take copyright and trademark infringement seriously. Non-compliance can result in your app being removed without notice, which is very inconvenient and can impact your business.

Assuming you’ve already designed a custom icon, how do you show it on iOS and Android when the app is installed?

How are icons stored on iOS and Android?

On iOS, an AppIcon bundle is used to represent all the icon sizes:

Xcode app icon asset bundle

On Android, the same icon is available at different resolutions to render correctly across devices with varying screen densities:

Android app icons for different resolutions

If you have designed your icon and want to use it in your app, you must apply it consistently across all these variants, each with the correct resolution. If you’ve ever done this by hand, you’ll know how tedious the whole process is.

Enter Flutter Launcher Icons

To simplify the process, the Flutter Launcher Icons package was created. In this module, you’ll learn how to use it to generate the launcher icon for each target platform.

Here’s what you will learn:

  • How to install and run flutter_launcher_icons to generate your app icon
  • How to configure the icon generation process for each target platform
  • How to deal with adaptive icons on Android

What about flavored app icons?

For convenience, I’ve already provided the icon for the Flutter ship app:

Icon for the Flutter Ship app

By the end of this module, you’ll know how to easily generate your launcher icon for iOS, Android, and web:

Xcode app icon asset bundle with the updated icon

How to design your own icon?

If you want to create your own icon, consider these options:

  • Create it yourself using Figma as shown in this lesson
  • Find one on Flaticon and tweak it as necessary (check the license rights for each icon)
  • Use an app icon generator like Icon Kitchen
  • Outsource it on marketplaces like Fiverr (but beware of freelancers who may forge copyrighted icons from other apps/companies)
  • Generate it with Midjourney (that’s what I did for my Flutter Tips app)

Note that app icons should follow specific guidelines and specifications, as outlined by each store:

We’ll explore the icon design process in more detail in an upcoming lesson.

Questions? Let's chat

⚠️