Introduction
When developing applications with Flutter, customizing the launcher icon enhances branding and user experience. By default, new projects use a generic Flutter logo as their app icon on both iOS and Android platforms. However, developers often wish to replace this with a more personalized icon that represents their application uniquely. This tutorial will guide you through the process of changing the application launcher icons in Flutter projects for both Android and iOS using various methods, including tools and manual steps.
Prerequisites
- A Flutter environment set up on your machine.
- Basic knowledge of navigating directories within your project.
- An image that you want to use as an icon, preferably at least 512×512 pixels in size, or ideally 1024×1024 pixels for better quality.
Method 1: Using the flutter_launcher_icons
Package
One of the most straightforward ways to change your Flutter application’s launcher icons is by using the flutter_launcher_icons
package. This method automates the process and works seamlessly across both Android and iOS platforms.
Step-by-Step Guide
-
Add the Dependency
Open your
pubspec.yaml
file and addflutter_launcher_icons
to your dev_dependencies:dev_dependencies: flutter_test: sdk: flutter flutter_launcher_icons: "^0.9.0"
-
Configure the Icon Settings
Below your dependencies, configure the path to your icon image and specify the platforms for which you want to apply the new icons:
flutter_icons: image_path: "icon/icon.png" android: true ios: true
-
Install the Package
Run the following command in your terminal to fetch the package:
$ flutter pub get
-
Generate Icons
Execute this command to generate and apply icons for both platforms:
$ flutter pub run flutter_launcher_icons:main
This tool not only replaces the default launcher icons but also allows you to specify separate images for Android and iOS if desired.
Advanced Features
- Flavors Support: As of version 0.8.0,
flutter_launcher_icons
supports app flavors, allowing different icons per environment (e.g., dev or prod).
Method 2: Manual Icon Replacement
For developers who prefer manual control over the icon generation process, here’s how to set launcher icons for each platform individually.
Android Icons
-
Asset Studio in Android Studio
- Open your Flutter project’s
android
directory in Android Studio. - Navigate to the
res
folder and right-click it. - Select New > Image Asset.
- Choose an image (at least 512×512 pixels) for your launcher icon.
- Open your Flutter project’s
-
Manual Icon Creation
If you prefer manual creation, place different sized icons in the respective mipmap folders like
mipmap-hdpi
,mipmap-mdpi
, etc., following Android’s recommended sizes. -
Update Manifest
Ensure that the
AndroidManifest.xml
refers to your new icon name:<application android:icon="@mipmap/ic_launcher">
iOS Icons
-
Create Icons Using Tools or Manually
- Use tools like Icon Set Creator (for Mac users) to generate all required sizes from a 1024×1024 image.
- Alternatively, manually create and name icons according to the specifications in
ios/Runner/Assets.xcassets/AppIcon.appiconset
.
-
Import Icons into Xcode
- Open your Flutter project’s
ios
directory with Xcode. - Go to Runner > Assets.xcassets, delete the existing AppIcon, and import your new icon set.
- Open your Flutter project’s
Additional Tips
- Ensure iOS icons have no transparency as per Apple’s guidelines.
- Always test the application on both simulators/emulators after changing the icons to confirm they appear correctly.
By following these methods, you can effectively customize the launcher icons of your Flutter applications for a more professional and branded appearance. Choose between automated tools or manual adjustments based on your preference and project requirements.