Your Flutter app works great on your phone. But when users try to download it from the Play Store? They see “50MB” and just... close the app.
Here's the thing: a large app means fewer downloads, more people leaving bad reviews, and less engagement. In this guide, I'll show you how I made my Flutter apps 50% smaller without losing any features.
Before we optimize, let's see what we're working with. Run this command:
flutter build appbundle --release --analyze-size
This shows exactly what's eating up space. Typical Flutter apps have:
This is the easiest win. Instead of building an APK, build an App Bundle:
flutter build appbundle --release
What happens? Google Play creates separate versions for each device. Users only download what they need. No code changes needed. Just run the command above.
Real example: I went from 48MB to 35MB just with this one step.
Check your pubspec.yaml file. Do you really use every package you added?
Common mistakes:
Action: Go through your pubspec.yaml one by one. If you can't remember why you added it, delete it.
Images are usually the problem. One big, uncompressed image can be 2–5MB alone.
Here's what I do:
Example: If your app has 10 images at 1MB each (10MB total), after compression you're at 3MB. That's 7MB saved!
Pro tip: Store images online (Firebase, AWS, etc.) and download them when needed. Users get a smaller download and you save space.
Custom fonts can be 1–5MB. Do you really need 5 different fonts?
What to do:
Most apps only use one or two fonts. Be ruthless here.
Does your app really need a PDF library at startup if only power users use it? No.
The solution: Load heavy packages only when needed.
import 'package:pdf/pdf.dart' deferred as pdf; // Later, when user actually needs it: await pdf.loadLibrary();
This keeps your initial download small. Advanced features load later if the user needs them.
When building for the Play Store, always use:
flutter build appbundle --release --obfuscate --split-debug-info=debug/
This does two things:
Here's what happens when you apply these changes:
Total: A 50MB app can become 25–30MB. That's a game changer.
After you optimize, don't let it get big again. Here's how:
flutter build appbundle --analyze-size regularlyThat's it. Follow these steps and your app will be noticeably smaller, faster to download, and users will love you for it.
Questions? Or need help optimizing your specific app? Hit me up – I've helped apps cut their size in half.