Membandingkan Ukuran APK untuk Aplikasi di Flutter, React Native, Kotlin dan Java
Ada banyak cara untuk membuat aplikasi mobile mulai dari pengembangan spesifik platform langsung (menggunakan Java dan Kotlin untuk Android dan ObjC dan Swift untuk iOS), ada React Native dari Facebook, Electrode Native dari Walmart, Ionic framework, Unity untuk tipe-tipe aplikasi tertentu, dan framework flutter.io yang baru saja dirilis oleh Google
Pernah bertanya-tanya bagaimana library dan framework ini mempengaruhi ukuran aplikasi Anda? Mari kita menganalisis beberapa file apk untuk masing-masing aplikasi yang ditulis dalam beberapa cara ini. Aplikasinya sangat sederhana, hanya berisi judul dibagian atas dan teks di tengah layar. Kita akan menunjukan untuk aplikasi minimum apa yang perlu dikerjakan oleh framework ini bersama apk agar dapat dijalankan.
- Untuk percobaan kali ini kita akan membuat empat versi aplikasi yang berbeda, di masing-masing aplikasi diantaranya Java, Kotlin, React Native dan Flutter (Android API 27)
- Apk tersebut kemudian di publikasikan untuk tipe rilis menggunakan Android studio untuk Java dan Kotlin dan menggunakan cli untuk React Native dan Native
- Menggunakan konfigurasi default proguard
- Apk dianalisis menggunakan fitur Analisis APK di Android Studio
Java (539 KB)
Mari kita mulai dari yang paling simple –Java. Seperti yang Anda harapkan, akan menjadi ukuran terkecil mengingat kita hanya menggunakan Java dan framework Android untuk membuat aplikasi ini, dengan satu-satunya dependency yakni Android Support Library, yang dapat Anda lihat disini membutuhkan cukup banyak ruang.
Kita dapat berpotensi menurunkan ukuran aplikasi dengan menghapus dependency ini saja dan menggunakan Activity dari pada AppCompatActivity
Kotlin (550 KB)
Selanjutnya Kotlin. Jika Anda sudah lama ngoding di Java, Kotlin menjadi angin segar. Apk rilis untuk aplikasi Kotlin membandingkan sesuatu yang kita lihat di apk Java, ditambah sebagian kecil dari info sugar sintaks berdasarkan Kotlin
React Native (7 MB)
Jika Anda datang dari dunia web dan ingin menjadi mobile developer menggunakan javascript React Native bisa menjadi salah satu pilihan. React Native juha membantu jika Anda ingin mengintergrasi lebih cepat pada fitur tanpa merilis aplikasi untuk setiap perubahan kecil.
Rilis apk yang dihasilkan oleh React Native memiliki beberapa kelas dalam file classes.dex yang memiliki 12193 metode referensi untuk aplikasi tertentu ini.
React Native juga menambahkan beberapa dependensi asli di direktoru lib untuk X86 dan armeabi-v7a. Menambah hingga sekitar 6,4 MB dependensi secara total.
Flutter.io (7.5 MB)
Aplikasi rilis yang dihasilkan oleh Flutter cli berisi mesin C/C++ dan Dart VM yang membuat hampir semua apk. Aplikasi ini berjalan langsung menggunakan set intruksi native dan tidak ada interpreter yang terlibat.
Setiap metode penulisan aplikasi memiliki kelebihan dan kekurangannya. Pilih metode yang paling sesuai untuk digunakan baik untuk kasus kebutuhan Anda sendiri ataupun unutk perusahaan Anda. Anda juga bisa mengkombinasi dan mencocokan beberapa framework untuk membuat bagian yang berbeda dari aplikasi Anda.
Contohnya, jika Anda ingin bereksperimen membuat suatu komponen di React Native, jika Anda ingin membagi kode antara aplikasi iOS dan Android, lihat React Native atau Flutter,io dan jika Anda hanya ingin berfokus pada Android dan menjaga agar ukuran aplikasi lebih minimum sangat penting Anda bisa menggunakan Java atau Kotlin