Androidの minifyEnabled は必ず有効にしましょう

結論

appにあるbuild.gradleで見かけるisMinifyEnabledはリリース用は必ずtrueにしよう

// app/build.gradle.kts

android {
    ...
    buildTypes {
        getByName("release") {
            isMinifyEnabled = true // <= これ
            proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
        }
        getByName("debug") {
    ...

有効にしないと何がおきるのか?

apkやaabのファイルサイズがメチャクチャ大きくなる!

実際にaabのファイルサイズをみたところ、、、

minifyEnabledが有効 : aabのファイルサイズ
4.7MB

minifyEnabledが無効 : aabのファイルサイズ
13.8MB

3倍以上もサイズが圧縮されることが分かった。
これはデカイ...

なぜ大きくなるのか?

公式ドキュメントによると、、

R8 によるコードの圧縮がデフォルトで有効になります。

コードの圧縮(ツリー シェイキングとも呼ばれています)とは、ランタイムに必要のないコードを R8 が判断して削除するプロセスです。 たとえば、アプリに多数のライブラリ依存関係が含まれていても、その機能のごく一部しか使用されない場合、このプロセスによってアプリのサイズを大幅に縮小できます。

developer.android.com

だそうで、コードの圧縮と最適化を自動で行ってくれる。 便利〜