android-app-icon

majiayu000's avatarfrom majiayu000

Generate app icon using IconKitchen and place in correct locations

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 5, 2026

When & Why to Use This Skill

This Claude skill automates the end-to-end process of generating and deploying Android app icons. By integrating with IconKitchen, it analyzes your project's brand colors and naming conventions to guide the creation of professional adaptive icons. It eliminates manual asset management by automatically placing generated files into the correct Android mipmap directories and Fastlane metadata folders, ensuring full compliance with Google Play Store requirements.

Use Cases

  • New Project Initialization: Quickly set up a complete set of adaptive icons for a fresh Android project without manual resizing or folder creation.
  • Rebranding and UI Updates: Seamlessly update all app icon densities and store listing assets when brand colors or logos change.
  • Fastlane Integration: Automatically prepare and place the 512x512 high-resolution icon into the Fastlane metadata directory for automated Play Store deployments.
  • Adaptive Icon Implementation: Ensure correct implementation of foreground, background, and monochrome layers across all screen densities (mdpi to xxxhdpi) to support modern Android UI standards.
nameandroid-app-icon
descriptionGenerate app icon using IconKitchen and place in correct locations
categoryandroid
version1.0.0
- icon_sourceUser's logo/image file path (optional)
- app_nameApp name for text-based icon (optional)
- primary_colorPrimary brand color hex (optional)
verify"test -f fastlane/metadata/android/en-US/images/icon.png && file fastlane/metadata/android/en-US/images/icon.png | grep '512 x 512'"

Android App Icon

Guide user through IconKitchen to generate app icons, then place assets in correct locations.

Prerequisites

  • Android project
  • App name defined in app/src/main/res/values/strings.xml

Inputs

Input Required Default Description
icon_source No - Path to logo/image file for icon
app_name No From strings.xml App name for text-based icon
primary_color No From colors.xml Primary brand color (hex)

Process

Step 1: Analyze Project for Icon Suggestions

# Extract app name from strings.xml
APP_NAME=$(grep 'name="app_name"' app/src/main/res/values/strings.xml | sed 's/.*>\([^<]*\)<.*/\1/')
echo "App name: $APP_NAME"

# Extract primary color from colors.xml or themes.xml
if [ -f "app/src/main/res/values/colors.xml" ]; then
    PRIMARY_COLOR=$(grep 'name="colorPrimary"\|name="md_theme_light_primary"' app/src/main/res/values/colors.xml | head -1 | sed 's/.*>\([^<]*\)<.*/\1/')
    echo "Primary color: $PRIMARY_COLOR"
fi

# Check if icon resources already exist
if [ -d "app/src/main/res/mipmap-xxxhdpi" ]; then
    echo "Existing icon resources found:"
    ls app/src/main/res/mipmap-xxxhdpi/
fi

Step 2: Generate Icon Setup Guide

Create docs/APP_ICON_SETUP.md with project-specific instructions.

Step 3: IconKitchen Workflow

Direct user to https://icon.kitchen/

Recommended settings based on project:

  • Platform: Android
  • Icon Type: Adaptive (for Android 8+)
  • Foreground: User's logo or app name as text
  • Background Color: Primary color from project
  • Shape: Circle or Squircle (most common)

Options:

  • Option A: Image/Logo - Upload PNG or SVG (ideally 512x512+)
  • Option B: Clipart - Search for icon that represents the app
  • Option C: Text - Use app name or initials

Step 4: Download and Process Icon Assets

After generating in IconKitchen:

  1. Click "Download" button
  2. Select "Android" format
  3. Save and extract the ZIP file

The ZIP contains:

android/
├── mipmap-mdpi/
├── mipmap-hdpi/
├── mipmap-xhdpi/
├── mipmap-xxhdpi/
├── mipmap-xxxhdpi/
└── play_store_512.png

Step 5: Copy Assets to Project

# Copy mipmap resources (replace existing)
cp -r /path/to/extracted/android/mipmap-* app/src/main/res/

# Copy Play Store icon to Fastlane metadata
mkdir -p fastlane/metadata/android/en-US/images
cp /path/to/extracted/android/play_store_512.png \
   fastlane/metadata/android/en-US/images/icon.png

Or use the provided scripts/process-icon.sh helper script.

Step 6: Verify AndroidManifest

Ensure AndroidManifest.xml references the icon:

<application
    android:icon="@mipmap/ic_launcher"
    android:roundIcon="@mipmap/ic_launcher_round"
    ...>

Step 7: Build and Verify

# Clean and rebuild
./gradlew clean assembleDebug

# Install and check icon on device/emulator
./gradlew installDebug

Icon Processing Script

A helper script scripts/process-icon.sh can automate asset placement:

#!/bin/bash
# Usage: ./scripts/process-icon.sh /path/to/iconkitchen-download.zip

ZIP_PATH="${1:-}"

if [ -z "$ZIP_PATH" ]; then
    echo "Usage: $0 <path-to-iconkitchen-zip>"
    exit 1
fi

# Extract and process icon assets
TEMP_DIR=$(mktemp -d)
trap "rm -rf $TEMP_DIR" EXIT

unzip -q "$ZIP_PATH" -d "$TEMP_DIR"

# Find android directory
ANDROID_DIR=$(find "$TEMP_DIR" -type d -name "android" | head -1)

# Copy mipmap resources
for density in mdpi hdpi xhdpi xxhdpi xxxhdpi; do
    SRC_DIR="$ANDROID_DIR/mipmap-$density"
    DEST_DIR="app/src/main/res/mipmap-$density"

    if [ -d "$SRC_DIR" ]; then
        mkdir -p "$DEST_DIR"
        cp -r "$SRC_DIR"/* "$DEST_DIR/"
        echo "  ✓ mipmap-$density"
    fi
done

# Copy Play Store icon
PLAY_STORE_ICON=$(find "$ANDROID_DIR" -name "play_store_*.png" | head -1)
if [ -n "$PLAY_STORE_ICON" ]; then
    mkdir -p fastlane/metadata/android/en-US/images
    cp "$PLAY_STORE_ICON" fastlane/metadata/android/en-US/images/icon.png
    echo "  ✓ Play Store icon (512x512)"
fi

echo "✅ Icon assets installed successfully!"

Verification

MANDATORY: Run these commands:

# Check icon resources exist
ls -la app/src/main/res/mipmap-xxxhdpi/

# Check Play Store icon
ls -la fastlane/metadata/android/en-US/images/icon.png

# Verify icon dimensions
file fastlane/metadata/android/en-US/images/icon.png
# Should show: PNG image data, 512 x 512

# Build to verify
./gradlew assembleDebug

Completion Criteria

  • docs/APP_ICON_SETUP.md generated with project-specific instructions
  • Mipmap resources copied to app/src/main/res/mipmap-*/
  • Play Store icon at fastlane/metadata/android/en-US/images/icon.png
  • Icon is 512x512 PNG
  • ./gradlew assembleDebug builds successfully with new icon

Play Store Requirements

Asset Size Format Notes
App Icon 512 x 512 px PNG No transparency, no rounded corners

IconKitchen's play_store_512.png meets these requirements.

Troubleshooting

"Icon looks pixelated"

Cause: Source image too small Fix: Use source image at least 512x512, prefer SVG

"Icon has wrong shape on some devices"

Cause: Android adaptive icons can be masked differently Fix: Ensure important content is in center "safe zone" (66dp circle)

"Monochrome icon not showing in Android 13"

Cause: Missing monochrome layer Fix: IconKitchen generates this automatically, check ic_launcher.xml

Next Steps

After completing this skill:

  1. Run /devtools:android-store-listing to create feature graphic
  2. Run /devtools:android-screenshot-automation to capture screenshots
  3. Upload to Play Store: bundle exec fastlane upload_metadata