As of today
In Android
the download size of a minimal Flutter app (no Material Components, just a single Center widget, built with flutter build apk --split-per-abi
), bundled and compressed as a release APK, to be approximately 4.3 MB for ARM, and 4.6 MB for ARM 64.
flutter build apk
(defaults to --release) builds a single apk to support the target devices might result in a very large apk (fat apk)
One way to reduce the size of your apk is to create multiple apks that contain file for specific screen densities or abis.
Run flutter build apk --split-per-abi
this command builds two apks's
targeting arm,arm64 based devices
the apk's are located at build/app/outputs
On iOS,
a release IPA of the same app has a download size of 10.9 MB on an iPhone X, as reported by Apple’s App Store Connect. The IPA is larger than the APK mainly because Apple encrypts binaries within the IPA, making the compression less efficient.
by default, we build universal binaries for iOS that include both armv7 and arm64 architectures for all three of:
- Flutter.framework (the engine)
- App.framework (the AOT-compiled app)
- Runner (the entrypoint of the app)
Apple does app-thinning on their end such that the end-user downloads only the bits relevant to their device. To get the download size,
- log in to App Store Connect,
- select your app, navigate to the Activity page,
- select your build,
- then click the App Store File Sizes link.
sources:
- flutter FAQ
- Reduce --release apk and ipa sizes