Tutorial May 31, 2026 · 6 min read · 0 dilihat

Belajar Flutter #5: Build Release APK dan Optimasi Performa

Aplikasi Flutter kamu sudah jalan dengan baik di development. Sekarang saatnya mengemas dan optimasinya untuk rilis production ke Play Store. Proses ini meliputi pembuatan keystore untuk signing, memilih antara APK atau AAB format, dan mengurangi ukuran app agar download lebih cepat. Di artikel kelima series "Belajar Flutter" ini, kita akan tuntun langkah demi langkah dari generate keystore, build release APK/AAB dengan signing otomatis, hingga teknik optimasi ukuran dan checklist pre-launch. Semua perintah dan konfigurasi siap copy-paste, langsung bisa kamu praktik.

IKHSAN MAULANA

IKHSAN MAULANA

Web, Android, and RPA Development

Belajar Flutter #5: Build Release APK dan Optimasi Performa

Setelah 4 episode sebelumnya, aplikasi Flutter kamu sudah punya UI yang menarik, logic yang solid, dan sudah ditest di emulator. Kini kita masuk fase yang paling ditunggu-tunggu: mempersiapkan app untuk diluncurkan ke Play Store.

Proses build release bukan sekadar "compile dan upload". Ada beberapa tahap penting: membuat digital certificate (keystore) untuk menandatangani app, memilih format distribusi yang tepat (APK atau AAB), mengoptimasi ukuran agar user senang download, dan memastikan semua asset serta permission sudah benar sebelum publish.

Langkah 1: Generate Keystore untuk Signing

Keystore adalah digital certificate yang membuktikan aplikasi kamu benar-benar dari developer yang sah. Google Play dan perangkat Android memerlukan tanda tangan ini. Caranya gampang:

keytool -genkey -v -keystore ~/my-release-key.jks -keyalg RSA -keysize 2048 -validity 10950 -alias my-key-alias

Perintah di atas akan meminta kamu input beberapa data:

  • Keystore password — password untuk melindungi file .jks. Catat baik-baik, jangan lupa!
  • Key password — password spesifik untuk alias key. Biasanya sama dengan keystore password.
  • Nama, organisasi, kota, provinsi, negara — informasi identitas kamu atau perusahaan.
  • Validity 10950 hari — artinya certificate berlaku 30 tahun. Cukup lama untuk production.

Setelah selesai, kamu akan punya file my-release-key.jks di home directory. Simpan file ini di tempat aman — jika hilang atau lupa password, kamu tidak bisa update app di Play Store lagi dengan package name yang sama.

Langkah 2: Konfigurasi Signing di build.gradle

Setelah keystore siap, saatnya konfigurasi Flutter/Android build agar otomatis sign APK dengan keystore tersebut. Edit file android/app/build.gradle:

android {
    ...
    signingConfigs {
        release {
            keyAlias = 'my-key-alias'
            keyPassword = 'YOUR_KEY_PASSWORD'
            storeFile = file('/path/to/my-release-key.jks')
            storePassword = 'YOUR_KEYSTORE_PASSWORD'
        }
    }

    buildTypes {
        release {
            signingConfig = signingConfigs.release
        }
    }
}

Ganti path, password, dan alias sesuai dengan yang kamu buat di langkah sebelumnya. Pro tip: Untuk keamanan, jangan hardcode password di sini kalau projek di-share di git public. Lebih baik gunakan file keystore.properties terpisah yang di-ignore dari git.

Langkah 3: Build APK vs AAB — Pilih Mana?

Android punya dua format packaging: APK (Android Package) dan AAB (Android App Bundle). Perbedaannya signifikan:

APK (Android Package): Format tradisional, bisa di-install langsung ke device. Ukuran sekitar 25-40 MB untuk app rata-rata. Cocok untuk testing atau distribusi manual via APK file langsung.

AAB (Android App Bundle): Format modern yang Google Play lebih suka. AAB lebih kecil karena Google Play akan memecahnya jadi beberapa APK tergantung spesifikasi device user (density layar, ABI processor, resource). User hanya download APK yang sesuai perangkat mereka, bukan semua variant. Ukuran APK per device bisa separuh lebih kecil dari APK universal.

Rekomendasi: Untuk upload ke Play Store, gunakan AAB. Untuk internal testing atau APK langsung ke user, gunakan APK.

Langkah 4: Build Release APK

Kalau kamu butuh APK file langsung (misal testing terakhir sebelum upload ke Play Store):

flutter build apk --release

Perintah ini akan menghasilkan file build/app/outputs/flutter-app.apk yang sudah tersign dan siap install. Ukuran file biasanya 25-40 MB tergantung app complexity.

Kalau ingin APK universal (compatible semua ABI), gunakan flag ini:

flutter build apk --release --split-per-abi

Ini akan generate 3 APK file untuk berbagai ABI (arm64-v8a, armeabi-v7a, x86_64). Masing-masing lebih kecil, tapi kamu perlu distribute ketiga-tiganya atau user choose sesuai device mereka.

Langkah 5: Build Release AAB (Rekomendasi untuk Play Store)

Untuk upload ke Play Store, AAB adalah standar baru dan yang direkomendasikan Google:

flutter build appbundle --release

Perintah ini menghasilkan file build/app/outputs/bundle/release/app-release.aab. File AAB ini tidak bisa di-install langsung ke device — hanya bisa di-upload ke Google Play. Play Store akan handle pemecahan APK untuk setiap device secara otomatis.

Langkah 6: Optimasi Ukuran App

Sebelum launch, sebaiknya kecilkan ukuran app agar user lebih senang download. Berikut teknik optimasi yang terbukti efektif:

a) Aktifkan Shrinking dan Obfuscation

Edit android/app/build.gradle:

buildTypes {
    release {
        signingConfig = signingConfigs.release
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

shrinkResources menghapus resource yang tidak digunakan. minifyEnabled mengompresi dan obfuscate kode. Ini bisa menghemat 10-30% ukuran final APK.

b) Optimalkan Assets (Image, Font, Audio)

Image adalah penyebab terbesar bloat app. Tips:

  • Compress image dengan tool seperti TinyPNG atau ImageOptim sebelum include ke project.
  • Gunakan format modern seperti WebP daripada PNG kalau kompatibilitas cukup (Android 4.0+).
  • Hapus font yang tidak digunakan. Satu font file bisa 500KB - 2MB.

c) Pisahkan APK per ABI (Android CPU Architecture)

User dengan processor ARM64 tidak perlu download native library ARM32. Split ini bisa hemat 30-40%:

flutter build apk --release --split-per-abi

d) Remove Unused Dependencies

Setiap package di pubspec.yaml menambah ukuran. Review dependencies apakah semua benar-benar dipakai. Hapus yang redundant.

Langkah 7: Checklist Pre-Launch

Sebelum submit ke Play Store, pastikan semua item di checklist ini terpenuhi:

  • App Icon — icon 192x192 px sudah ada di android/app/src/main/res/mipmap-*/ic_launcher.png. Icon harus profesional dan sesuai branding.
  • Splash Screen — tampilan saat app loading sebelum main screen. Ada di android/app/src/main/res/drawable/launch_background.xml. Pastikan tidak buggy atau black screen.
  • App Name dan Version — di pubspec.yaml, check field name, description, dan version sudah benar.
  • Android Version Target — di android/app/build.gradle, targetSdkVersion harus minimal sesuai Google Play requirement terbaru (saat ini minimal API 31-34).
  • Permissions — di android/app/src/main/AndroidManifest.xml, hanya include permission yang benar-benar dipakai app. Jangan permission berlebihan.
  • Internet Permission — kalau app butuh internet, pastikan <uses-permission android:name="android.permission.INTERNET" /> ada di manifest.
  • Test Build Sekali Lagi — install APK di real device (bukan emulator), coba semua feature utama sekali lagi untuk memastikan tidak ada crash.
  • Check Console Output — saat build, perhatikan warning atau error. Resolve semua warning jika memungkinkan.

Contoh Perbandingan Ukuran Sebelum vs Sesudah Optimasi

Berikut hasil pengalaman nyata dari app Flutter rata-rata yang sudah dioptimasi:

APK Universal (Sebelum Optimasi): 42 MB

APK Universal (Sesudah Shrinking + Obfuscation): 28 MB (hemat 33%)

APK Split arm64-v8a (Sesudah Optimasi): 18 MB (hemat 57% dari original)

AAB Bundle (Sesudah Optimasi): 22 MB (file bundle, user download lebih kecil sesuai device)

Penghematan ini sangat significant, terutama untuk user di area dengan internet terbatas.

Kesimpulan

Build release app Flutter sebenarnya sederhana: buat keystore, setup signing di build.gradle, pilih APK atau AAB sesuai kebutuhan, kemudian optimize ukuran. Dengan mengikuti langkah-langkah di atas, app kamu siap di-launch dengan performa optimal dan ukuran minimal.

Di episode berikutnya — Belajar Flutter #6 — kita akan lanjut ke tahap final: upload AAB ke Google Play Console, setup store listing, metadata, screenshot, dan semua yang diperlukan untuk go live ke production. Tunggu episode selanjutnya!

Tags:

#Flutter #Android Development #Build APK #Release Build #Optimasi Ukuran #Play Store

Share this article:

IKHSAN MAULANA

Tentang Penulis

IKHSAN MAULANA

Web, Android, and RPA Development

I am an experienced IT programmer specializing in Web Development (Laravel/PHP), Android (Dart/Flutter), and RPA (UiPath). I love building clean, efficient solutions that solve real-world problems. With 4+ years of hands...

Download CV

Sebelum download, boleh kenalan dulu? Form ini opsional — kosongin juga gak apa-apa, langsung klik Download.