How to change app launch icon in Flutter

Key takeaways:

  • Generate platform-specific app icons using tools like App Icon, ensuring proper size variations for Android and iOS. Organize assets into mipmap-* folders for Android and Assets.xcassets for iOS.

  • For Android, replace mipmap-* directories and update AndroidManifest.xml to reference custom icons. For iOS, replace Assets.xcassets and configure Info.plist to define icon mappings.

  • Ensure compatibility with Retina displays and dark mode by providing high-resolution icons (@2x, @3x) and testing icons across various devices, including 1024x1024 App Store icons.

  • Implement adaptive icons by creating separate background and foreground layers, placing them in mipmap-anydpi-v26, and configuring an XML file to ensure consistent icon appearance across Android versions.

The app launch icon is the icon that appears on our device's home screen when we launch our app. It is a great way to brand and make our app stand out.

Implementation

We can follow the instructions given below to change the application launch icon.

Prepare the custom app icons

To generate icons of different sizes for both Android and iOS simultaneously, we can follow these steps.

  1. Visit the website App Icon.

  2. Upload our icon image by clicking the "Upload your app icon" button.

  3. Tick the iPhone and Android options checkboxes to generate icons for both platforms.

  4. Click the "Generate" button, and this website will automatically create different-sized icons for Android and iOS.

  5. It will generate a zip folder named AppIcons with android, Assets.xcassets named folders, and App Store and Play Store icons.

Adding icons in Android 

To update the app icon in the Android platform of our Flutter project, we can follow these steps.

  1. We can open our Flutter project in our preferred code editor or IDE.

  2. Locate the android/app/src/main/res directory within our project.

  3. Inside the res directory, we will find multiple mipmap-* folders.

  4. Replace these mipmap-* folders with the corresponding mipmap-* folders from the downloaded AppIcons zip file.

  5. Once we have replaced the folders, the new app icon resources will be in place for the Android platform.

Adding icons in iOS

To update the app icon in the iOS platform of our Flutter project, follow these steps.

  1. Navigate to the ios/Runner/ directory in our Flutter project.

  2. Locate the Assets.xcassets folder within the Runner directory.

  3. Delete the existing Assets.xcassets folder.

  4. Now, open the folder where we have downloaded the new app icon assets (let's assume it's named AppIcon).

  5. Copy the Assets.xcassets folder from the AppIcon folder.

  6. Paste the copied Assets.xcassets folder into the ios/Runner/ directory of our Flutter project.

Optimizing iOS app icons

To ensure your app icon looks sharp and professional across all iOS devices (including iPhones, iPads, and macOS), it's important to follow these additional steps:

  1. Include all required icon sizes: iOS uses app icons of different sizes depending on the device and context (such as app icons for iPhone, iPad, the App Store, and notifications). When generating icons, make sure you're including all the necessary sizes. The Assets.xcassets folder should contain icons ranging from 20x20 pixels to 1024x1024 pixels, depending on where they’ll be used.

  2. Consider dark mode: Since many iOS users have dark mode enabled, it's essential to make sure the app icon is visible and appealing on both light and dark backgrounds. Test how your icon looks in dark mode to ensure it stands out appropriately.

  3. Support retina displays: Apple devices often come with Retina displays, which require high-resolution icons. Be sure to provide @2x and @3x versions of your icons so they appear crisp on Retina screens.

  4. Include a 1024x1024 app store icon: In addition to the icons used in the app itself, you'll need a high-resolution 1024x1024 icon for the App Store listing. This ensures your app is represented well in the store.

  5. Test across devices: After updating the icons, take time to test them on multiple devices and screen sizes. Xcode’s simulators and real iOS devices can help you verify how the icon looks on various models.

Update the configuration files

After replacing the icons, we need to update the configuration files in our Flutter project to reference the new icons.

  • For Android: Open the android/app/src/main/AndroidManifest.xml file and locate the <application> tag. Add or modify the android:icon attribute inside it to specify the path to our custom app icon. For example:

<application
        android:label="exampleapp"
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">

Note: Replace ic_launcher with the name of our custom icon file (without the file extension).

  • For iOS: Open the ios/Runner/Info.plist file and locate the <key>CFBundleIcons</key> section. If not found, create one. Inside it, update the CFBundlePrimaryIcon and CFBundleIconFiles entries to reference our custom app icon file names. For example:

<key>CFBundleIcons</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>ic_launcher</string>
        </array>
    </dict>
</dict>

Test and build

After making the necessary changes, we must test our app to ensure the custom app launch icon is displayed correctly. For that, we can run the following command:

flutter run

Note: It is recommended to perform a clean build (flutter clean) and restart your IDE to ensure that the changes are applied correctly.

Handling adaptive icons (Android)

To ensure the app icon is displayed consistently across all devices and versions of Android, especially for newer Android versions that support adaptive icons, we can follow these steps to create and implement adaptive icons:

  1. Prepare adaptive icons: An adaptive icon requires two layers: a background layer and a foreground layer. These images should be designed to fit within the mask imposed by the Android system.

  2. Add adaptive icon resources: After generating the adaptive icons, locate the mipmap-anydpi-v26 folder within the android/app/src/main/res directory. If this folder does not exist, create it.

  3. Place foreground and background layers: Copy the adaptive icon files (e.g., ic_launcher_foreground.png and ic_launcher_background.png) into the mipmap-anydpi-v26 folder. These files represent the icon's background and foreground layers, respectively.

  4. Modify the AndroidManifest.xml file: In the android/app/src/main/AndroidManifest.xml file, modify the android:icon attribute within the <application> tag to reference the adaptive icon for newer Android versions:

<application
android:label="exampleapp"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
  1. Create an XML File for the adaptive icon: In the mipmap-anydpi-v26 directory, create an XML file named ic_launcher.xml to define the adaptive icon layers. The file should look like this:

<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background" />
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
</adaptive-icon>
  1. Test adaptive icons: To verify that adaptive icons are working as expected on supported Android devices, run your Flutter app again and check that the icon displays correctly across various Android versions and devices.

Conclusion

In conclusion, implementing custom app launch icons is crucial for branding and enhancing the visual appeal of your mobile app. For Android, replace the mipmap folders with new icons, and for iOS, update the Assets.xcassets folder. Optimizing for iOS ensures support for Retina displays, dark mode, and proper icon sizes for all devices, including the App Store.

For Android, handling adaptive icons by preparing background and foreground layers ensures consistency across devices. After updating the configuration files, thorough testing and clean builds are necessary to confirm the icons display correctly, giving your app a polished, professional look.

What can you learn further?

  • Dive deeper into customizing UI elements in Flutter beyond icons, such as splash screens and navigation bars.

  • To learn how to optimize app icons and listings to improve visibility and ranking in app stores, check out this course on Flutter.

  • To study additional platform-specific icon requirements for iOS and Android, including notification icons and adaptive icons for different API levels, check out this resource.

Frequently asked questions

Haven’t found what you were looking for? Contact Us


How do I change the app icon in Flutter without a package?

To change the app icon in Flutter without using a package, follow these steps:

  • Step 1: Create or design the app icon and ensure it is available in the required sizes for both Android and iOS platforms.

  • Step 2 (For Android):

    • Open your Flutter project in your preferred IDE. Navigate to android/app/src/main/res``, where you'll find multiple mipmap-* folders (e.g., mipmap-hdpi, mipmap-xhdpi). Replace the default icons in these folders with your custom icons, ensuring the correct sizes match the folders’ requirements. Update the android:icon attribute in the AndroidManifest.xml file to reference the new icon.
  • Step 3 (For iOS):

    • Navigate to the ios/Runner/Assets.xcassets folder. Replace the existing app icon set with your custom icons, ensuring you include all required sizes for iPhones, iPads, and the App Store. Update the Info.plist file if necessary to ensure the new icons are correctly referenced.
  • Step 4: After updating the icons, run the app on both Android and iOS simulators or devices to ensure the custom app icon is displayed correctly. Perform a clean build using flutter clean and then run the app again to ensure all changes are applied properly.


How to create an app icon?

To create an app icon, follow these general steps:

  • Design the icon:

    • Use design tools like Adobe Illustrator, Figma, or Canva to create a high-resolution image that represents your app. Ensure the design is simple, recognizable, and adheres to app store guidelines. The standard size for an app icon is typically 1024x1024 pixels. However, the icon will need to be resized for different devices and resolutions.
  • Generate icons for multiple sizes:

    • For Android, iOS, and app stores, different devices require icons in varying sizes. Tools like App Icon Generator (available online) can automatically generate multiple icon sizes from a single image. Upload your designed icon to a tool like App Icon or MakeAppIcon, and it will create all necessary icon sizes for both platforms.
  • Export and save:

    • Once you’ve generated the different icon sizes, save them into separate folders for Android and iOS. Ensure your icons meet platform-specific requirements (e.g., including adaptive icons for Android and high-resolution versions for Retina displays on iOS).
  • Test across devices:

    • After adding your app icon to the project, test it on both Android and iOS devices or emulators to confirm the icon displays correctly across different screen sizes and resolutions.

This process ensures your app icon looks professional and is optimized for all platforms and devices.


How do I change my icon on Flutterflow?

To change your app icon in FlutterFlow:

  • Prepare your icon: Design or obtain a square, high-resolution PNG icon (1024x1024 pixels).

  • Access project settings: Open your project, go to Settings > General Settings, and find the App Icon option.

  • Upload icon: Click the “App Icon” option and upload your PNG file.

  • Build and test: Save changes, build the app, and test it on Android and iOS to verify the icon displays correctly.

These steps allow you to easily update your app icon in FlutterFlow.


Free Resources

Copyright ©2025 Educative, Inc. All rights reserved