| name | asset-catalog-optimizer |
| description | Analyze and optimize Xcode asset catalogs - find unused assets, missing resolutions, compress images |
| type | skill |
| language | python |
Asset Catalog Optimizer
Analyze .xcassets folders to optimize image assets and find issues.
Capabilities
- List all assets in catalogs
- Find unused images (not referenced in code)
- Check for missing @2x/@3x versions
- Analyze image file sizes
- Compress images losslessly
- Detect duplicate images
- Validate asset naming
- Generate asset inventory
- Calculate total asset size
- Suggest optimizations
Tools Included
asset_optimizer.py
Python script for asset analysis and optimization
Commands:
# Analyze asset catalog
./asset_optimizer.py PaleoRose/Assets.xcassets analyze
# Find unused assets
./asset_optimizer.py PaleoRose/Assets.xcassets find-unused --source-dir PaleoRose
# Check missing resolutions
./asset_optimizer.py PaleoRose/Assets.xcassets check-resolutions
# Compress images
./asset_optimizer.py PaleoRose/Assets.xcassets compress --quality 85
# Generate report
./asset_optimizer.py PaleoRose/Assets.xcassets report --output report.html
# Calculate sizes
./asset_optimizer.py PaleoRose/Assets.xcassets sizes
Features
Unused Asset Detection
Searches Swift/ObjC code for asset references like:
NSImage(named: "icon")UIImage(named: "logo")Image("background")[NSImage imageNamed:@"button"]
Resolution Checking
Verifies all imagesets have:
- @1x (universal or Mac)
- @2x (required for Retina)
- @3x (iOS only, warns if missing)
Compression
- PNG: lossless optimization with pngquant/optipng
- JPEG: quality-based compression
- Preserves transparency
- Maintains color profiles
Usage
Run when:
- App bundle is too large
- Need to audit assets
- Before App Store submission
- Cleaning up old/unused assets
- Optimizing performance
Output Examples
Asset Catalog Analysis: Assets.xcassets
========================================
Total Assets: 47
Total Size: 12.3 MB
Missing Resolutions (5):
- icon.imageset: Missing @2x
- logo.imageset: Missing @3x
- background.imageset: Missing @2x, @3x
Unused Assets (8):
- old-button.imageset (45 KB)
- deprecated-icon.imageset (23 KB)
- test-image.imageset (156 KB)
Potential Savings:
- Compression: 3.2 MB (26%)
- Remove unused: 1.8 MB (15%)
- Total: 5.0 MB (41%)
Recommendations:
1. Compress 23 PNG files to save 3.2 MB
2. Remove 8 unused assets to save 1.8 MB
3. Add missing @2x/@3x versions for 5 assets