Skip to main content

How to reduce Mobile App size?

Ethereal3 min read
On this page
  1. 1Choose the Right Architecture
  2. 2Optimize Images and Assets
  3. 3Remove Unused Dependencies
  4. 4Enable Code Shrinking and Obfuscation
  5. 5Use App Bundles and Dynamic Delivery
  6. 6Split by CPU Architecture
  7. 7Download Content On Demand
  8. 8Optimize Fonts
  9. 9Reduce Localization Resources
  10. 10Compress Media Files
  11. 11Use Lightweight Alternatives
  12. 12Optimize JavaScript Bundles (React Native)
  13. 13Optimize Flutter Applications
  14. 14Optimize Native Libraries

Reducing app size is important for faster downloads, lower uninstall rates, better conversion from app stores, and improved performance on low-storage devices.

Here are the key areas developers should focus on:

Choose the Right Architecture

  • Avoid adding unnecessary frameworks or SDKs.
  • Prefer modular architecture so only required features are included.
  • Separate optional features into downloadable modules when possible.

Optimize Images and Assets

  • Use modern image formats such as WebP or AVIF instead of PNG or JPEG.
  • Compress images before adding them to the project.
  • Remove unused icons, illustrations, and splash screen assets.
  • Use vector assets where possible instead of multiple bitmap sizes.

Remove Unused Dependencies

  • Audit third-party libraries regularly.
  • Avoid importing entire libraries when only a small portion is needed.
  • Replace heavy SDKs with lightweight alternatives if possible.

Example:

  • Using a full analytics suite for basic event tracking can add several MB to the app size.

Enable Code Shrinking and Obfuscation

Android

  • Enable R8 or ProGuard.
  • Remove unused classes and methods automatically.

iOS

  • Enable dead code stripping.
  • Remove unused architectures from release builds.

Use App Bundles and Dynamic Delivery

For Android:

  • Use the Android App Bundle format instead of APK.
  • Users download only resources required for their device architecture and language.

Split by CPU Architecture

Instead of shipping one package containing:

  • ARM64
  • ARMv7
  • x86
  • x86_64

Deliver only the architecture required by the user’s device.

Download Content On Demand

Avoid bundling:

  • Tutorial videos
  • Large animations
  • Product catalogs
  • Game resources

Download these after installation or when first required.

Optimize Fonts

  • Use only required font weights.
  • Prefer system fonts where possible.
  • Subset custom fonts to include only required characters.

Reduce Localization Resources

  • Include only target languages initially.
  • Download additional languages on demand if needed.

Compress Media Files

  • Compress videos aggressively.
  • Use streaming for video content instead of bundling files.
  • Convert audio to efficient formats such as AAC or Opus.

Use Lightweight Alternatives

Examples:

  • Replace GIF animations with Lottie animations.
  • Replace large SVG libraries with optimized vector assets.

Optimize JavaScript Bundles (React Native)

  • Enable Hermes engine.
  • Remove unused npm packages.
  • Enable minification in production builds.
  • Use inline requires where applicable.

Optimize Flutter Applications

  • Build with --split-per-abi.
  • Use flutter build appbundle instead of APK.
  • Remove unused assets from pubspec.yaml.
  • Use tree shaking for icons:flutter build appbundle --tree-shake-icons

Optimize Native Libraries

Native .so libraries are often among the biggest contributors to app size.

  • Remove unused ABIs.
  • Avoid bundling debugging symbols in production.
  • Use stripped release binaries.

Analyze Build Size Regularly

Use platform tools:

  • Android Studio APK Analyzer
  • Flutter DevTools Size Analysis
  • Xcode App Size Report


For most startup apps, the biggest wins usually come from:

  1. Removing unnecessary SDKs.
  2. Using App Bundles instead of APKs.
  3. Optimizing images and fonts.
  4. Enabling code shrinking.
  5. Using dynamic feature delivery for rarely used modules.

If you mobile app size is larger as you expected, Consult with our Team

Found This Helpful?

If you're ready to build, we're ready to quote. Free discovery call, fixed price.