The app size conversation usually starts after a stakeholder compares the APK to a competitor’s and asks why a to-do list is 40 MB. The engineering response is often to start deleting packages, which is both the most painful lever and usually not the one that matters. Flutter apps have a size floor: the engine, the Dart runtime, Skia or Impeller, and the ICU data. That floor is real and you cannot remove it. Everything above it is yours, and in most apps I have looked at, the majority of “yours” is assets and shipped-but-unused native code, not Dart. So the first move is not to delete anything. It is to measure. Measure first: --analyze-size flutter build apk --release --analyze-size flutter build appbundle --release --analyze-size flutter build ipa --release --analyze-size This prints a summary and writes a JSON file. Open that file in DevTools’ app size tool — it gives you a treemap where the boxes are proportional to bytes, broken down by package, by asset, and by...