Skip to content

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.