Assets & size¶
Checks on bundled assets that drive the size axis — oversized images/fonts/media, duplicates, heavy SVG/Lottie, and image-format opportunities.
12 checks.
assets-duplicate-files¶
Severity:
Duplicate assets bloat the app bundle and make maintenance harder — changes must be applied in multiple places.
How to fix: Consolidate duplicate files into a single shared location and reference them from one place.
assets-heavy-font-family¶
Severity: Medium
Each font variant adds to the bundle size. Most apps only need 3-4 variants (regular, bold, italic, bold-italic).
How to fix: Audit which font weights and styles are actually used in the app and remove unused variants. Consider using a variable font instead.
assets-heavy-font-file¶
Severity:
Heavy font files significantly increase app size. Consider subsetting to include only the glyphs you need.
How to fix: Subset the font to include only required glyphs, or switch to a variable font to reduce the number of files.
assets-large-lottie¶
Severity:
Large Lottie animations consume memory during playback and increase bundle size. They may contain embedded images or overly complex paths.
How to fix: Simplify the animation in After Effects/Figma, remove embedded raster images, reduce keyframes, or use dotLottie compression.
assets-large-svg¶
Severity:
Large SVGs can slow down rendering and increase bundle size. They may contain unnecessary metadata or unoptimized paths.
How to fix: Optimize the SVG using tools like SVGO, remove unnecessary metadata, or consider converting to a vector drawable / programmatic drawing.
assets-oversized-font¶
Severity: High–Medium–Low
A full font file ships every glyph even though apps use a small subset, wasting bundle size.
How to fix: Subset the font to the glyphs/weights you actually use, or rely on platform fonts.
assets-oversized-image¶
Severity: High–Medium–Low
Large raster images inflate the download size and memory use, hurting install conversion and low-end devices.
How to fix: Compress and right-size images, prefer WebP, or load large art from the network/CDN instead of bundling it.
assets-oversized-video-audio¶
Severity: High–Medium–Low
Bundling large video/audio bloats the app download for content that is usually better streamed.
How to fix: Stream media from a CDN at runtime instead of bundling it in the app.
assets-rasterized-vector¶
Severity: Medium
A vector with an embedded raster image negates the size advantage of using a vector format and adds rendering overhead (the raster must be decoded and scaled at runtime, consuming extra CPU and memory).
How to fix: Re-export the vector/Lottie without embedded raster layers. If a raster image is genuinely needed, reference an optimized WebP/PNG separately, or use the dotLottie (.lottie) container.
assets-top-size-contributors¶
Severity: Info
Understanding which files contribute most to repository size helps prioritize optimization efforts for maximum impact.
How to fix: Review each large file to determine if it can be compressed, optimized, moved to a CDN, or removed if unused.
assets-unoptimized-png¶
Severity: Low
Unoptimized PNG files increase app download size and install footprint. Lossless PNG compression can typically reduce file sizes by 20-70% with no visual quality loss.
How to fix: Run PNG files through a lossless optimizer such as oxipng or pngcrush. Add optimization to your CI pipeline with tools like image-min or squoosh-cli.
assets-webp-candidate¶
Severity: Low
WebP format provides superior compression over JPEG and PNG for both lossy and lossless images, reducing app download size and memory usage.
How to fix: Convert JPEG/PNG assets to WebP using cwebp or Android Studio's built-in converter. Both Android (API 14+) and iOS (14+) support WebP natively.