Cara Mengurangi Ukuran Aplikasi Expo/React Native

Photo by Awal Ariansyah on Canva Cara Mengurangi Ukuran Aplikasi Expo/React Native oleh Awal Ariansyah

# Pengenalan

Halo semua, kali ini saya akan menuliskan pengalaman saya dalam mengurangi ukuran aplikasi android yang dibuat menggunakan expo/react-native. Sebenarnya artikel ini hanya menterjemahkan apa yang sudah saya publish di Dev.to dengan judul A Tale of Reducing Expo/React Native Android Application (opens new window).

Oke, sebelumnya mari melihat development environment yang saya gunakan. Saya menggunakan Lubuntu 20.04 focal, dengan Desktop Environment LxQt 0.14.1 seperti yang tertera di gambar bawah ini. Bagi rekan-rekan yang menggunakan Windows, kurang lebih langkahnya sama.

Desktop Environment

Setelah mengalami banyak error, akhirnya saya berhasil mengurangi aplikasi android yang saya buat dari 52MB menjadi 27MB, penurunan sebanyak 49%! Dan setelah mengetahui error-error apa saja yang saya hadapi, saya tulis artikel ini dengan harapan rekan-rekan bisa mengurangi error yang ada.

# Requirements

Ada beberapa paket/aplikasi yang harus disiapkan yaitu sebagai berikut, jika kalian menggunakan Windows cukup install Java dan SDK atau langsung install Android Studio. Namun karena saya menggunakan Ubuntu, persiapannya agak berbeda.

# Install JRE

sudo apt-get install default-jre

Cek instalasi

java -version

# Install JDK

sudo apt-get install defalut-jdk

Cek instalasi

javac -version

Install JRE dan JDK

# Install Expo Command Line

sudo npm install --global expo-cli

# Install Android Command Line Tools

sudo export ANDROID_HOME=/usr/lib/android-sdk

sudo wget https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip
1

sudo unzip commandlinetools-linux-6609375_latest.zip -d cmdline-tools

sudo mv cmdline-tools $ANDROID_HOME/

sudo export PATH=$ANDROID_HOME/cmdline-tools/tools/bin:$PATH

# Mengatur lisensi dari sdk

Pergi ke folder /usr/lib/android-sdk/

cd /usr/lib/android-sdk/

Kita harus menyetujui semua lisensi dari sdk sebelum menggunakannya

sudo yes | sdkmanager --licenses

Serta kita perlu mengatur ulang permission dari folder /tmp untuk menghindari masalah permission

sudo chmod -R 0777 /tmp

# Aksi

Langkah pertama yang harus rekan-rekan lakukan adalah membuka folder project expo/react-native yang ingin di kurangi ukuran aplikasinya menggunakan terminal. Pastikan rekan-rekan mencadangkan terlebih dahulu file-file tersebut.

# Eject project

Jalankan perintah berikut untuk meng-eject file project expo ke dalam folder android dan iOs.

expo eject

Rekan-rekan akan diberikan beberapa pertanyaan, cukup isikan sesuai dengan informasi project yang ada. Setelah selesai, akan ada 2 folder baru yaitu android dan iOs.

# Buat file local.properties

Pergi ke folder android dan buat file baru dengan nama local.properties. File ini akan digunakan untuk menunjukkan lokasi sdk ke gradle saat mem-build aplikasi.

cd android

touch local.properties

sudo nano local.properties

Buat variable sdk.dir seperti berikut

sdk.dir = /usr/lib/android-sdk/
1
Membuat local properties untuk gradle

Ctrl + O, Enter, Ctrl + x untuk menyimpan dan keluar dari teks editor nano.

# Membuat keystore

Selanjutnya ke folder android/app pada terminal dan buat sebuah keystore sehingga kita bisa mem-publish aplikasi kita ke Google Play Store.

cd android/app

sudo keytool -genkey -v -keystore yourkeyname.keystore -alias yourkeyaliasname -keyalg RSA -keysize 2048 -validity 10000

Ganti yourkeyname dan yourkeyaliasname dan rekan-rekan akan ditanyai password untuk keystoremu dan beberapa pertanyaan. Pastikan rekan-rekan mencatat passwordnya supaya tidak lupa.

Setelah selesai, sebuah file baru akan muncul dengan ekstensi (.keystore). Itu adalah keystore rekan-rekan.

# Mengubah gradle.properties

Sekarang kembali ke direktori sebelumnya dan ubah file gradle.properties.

cd ..

sudo nano gradle.properties

Tambahkan script berikut

MYAPP_UPLOAD_STORE_FILE=yourkeyname.keystore
MYAPP_UPLOAD_KEY_ALIAS=yourkeyaliasname
MYAPP_UPLOAD_STORE_PASSWORD=yourkeypassword
MYAPP_UPLOAD_KEY_PASSWORD=yourkeypassword
org.gradle.jvmargs=-Xmx4096m
1
2
3
4
5
Mengubah properties gradle

Ganti yourkeyname, yourkeyaliasname dan yourkeypassword sesuai dengan keystore yang telah kalian buat lalu simpan.

# Mengubah build.gradle

Sekarang, pergi ke folder app dan ubah file build.gradle.

cd app

sudo nano build.gradle

Ubah baris berikut dari false ke true

def enableSeparateBuildPerCPUArchitecture = false
def enableProguardInReleaseBuilds = false
1
2
Mengubah build gradle

Scroll ke bawah ke bagian signingConfigs dan tambahkan konfigurasi berikut dibawah debug

	release {
            if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
                storeFile file(MYAPP_UPLOAD_STORE_FILE)
                storePassword MYAPP_UPLOAD_STORE_PASSWORD
                keyAlias MYAPP_UPLOAD_KEY_ALIAS
                keyPassword MYAPP_UPLOAD_KEY_PASSWORD
        }
1
2
3
4
5
6
7

Lalu, di bagian buildTypes cari kurung kurawal release dan ubah baris berikut (gunanya untuk merilis aplikasi kita pada versi release bukan versi percobaan/debug)

signingConfig signingConfigs.debug
1

menjadi

signingConfig signingConfigs.release
1

dan tambahkan baris berikut dibawah minifyEnabled

shrinkResources true
1
Mengubah build gradle

# Lainnya

Lalu scroll ke bawah ke baris paling akhir, tambahkan kurung kurawal penutup }. Tanpa kurung ini rekan-rekan akan mengalami error.

Menambah kurung kurawal

Terakhir, jika rekan-rekan ingin mem-build file .apk secara universal, maka scroll ke atas dan cari kata splits, lalu di dalam abi ubah universalApk dari false ke true. Lalu simpan.

Mengubah universal apk

# Build aplikasi

Sekarang semua sudah siap, waktunya mem-build. Kembali ke folder android di mana ada file dengan nama gradlew. Ubah user di terminal menjadi superuser, untuk menghindari permasalahan permission.

cd ..

sudo su

Jika rekan-rekan ingin mem-build file .apk, jalankan perintah berikut

./gradlew assembleRelease

atau jika rekan-rekan ingin mem-build menjadi file .aab, jalankan perintah berikut

./gradlew buildRelease

Dalam kasus saya, membutuhkan 5-18 menit tergantung spek komputer dan besarnya project rekan-rekan. Hasilnya akan berada di folder app/build/outputs/apk/release untuk file .apk dan app/build/outputs/bundle/release untuk .aab.

Tips Publish Google Play Store

Jika rekan-rekan punya aplikasi android yang tidak butuh izin atau permission apapun, pastikan sebelum mem-build buka file AndroidManifest.xml di folder android/app/src/main lalu hapus kode yang mengandung keyword use permission.

Oke, mungkin itu saja, terima kasih telah membaca. Semoga bermanfaat.
Selamat malam~

# Referensi

  1. Rizki Budi (opens new window)
  2. ZeroGraivity (opens new window)
  3. Chaminda Bandara (opens new window)
  4. Tshilidzi Mudau (opens new window)
  5. Marcel Hofgesang (opens new window)
  6. Felix Too (opens new window)