38 poin oleh xguru 2025-03-12 | 7 komentar | Bagikan ke WhatsApp

Pengantar lingkungan pengembangan aplikasi Android menurut standar saat ini

  • Build: gradle
  • Konfigurasi build: convention plugin
  • Manajemen dependensi: version catalog
  • Penerapan build cache
  • Analisis performa build: build-scan
  • Struktur modul: dipisahkan per feature
  • Networking - retrofit
  • Pemetaan JSON - kotlinx serialization
  • Penyimpanan data persisten - jetpack datastore, room
  • DI - koin
  • Image loader - coil
  • UI - compose
  • Komunikasi antara View dan ViewModel - flow
  • Pengelolaan kualitas kode - ktlint , konsist
  • Unit test - junit 4

7 komentar

 
kipsong133 2025-03-13

Terima kasih atas tulisannya yang bagus.

 
ganadist 2025-03-12

Sebagai seseorang yang entah bagaimana akhirnya menetap sebagai build engineer aplikasi Android, kalau saya meninggalkan pendapat..

Build: gradle

Kalau proyeknya sangat besar atau kompleks pun, tetap harus pakai gradle... (tatapan jauh)
Untuk meningkatkan performa build gradle pada proyek yang sangat besar atau kompleks, proyek-proyek berikut sedang dikembangkan, jadi kalau Anda memakai gradle di proyek besar, sebaiknya siapkan migrasi dari jauh-jauh hari.

Komposisi modul: dipisahkan per feature

Secara pribadi, saya rasa tidak ada alasan untuk sengaja mengekspos layer arsitektur ke build system.
Untuk aplikasi yang saya kelola, saya membuat modul feature-api / feature-impl terekspos ke build system.

  • feature-app :
    • model data, atau interface yang terhubung dengan modul lain
  • feature-impl:
    • implementasi nyata dari feature tersebut

Kalau disusun seperti ini, perubahan kode di feature-impl tidak memengaruhi modul lain yang mereferensikan feature-api (isolasi dependensi), sehingga sangat membantu incremental build maupun peningkatan build cache hit rate.

Unit test - junit 4

Sepertinya keputusan Google berperan besar dalam hal ini.

 
ganadist 2025-03-12

Namun, untuk mengadopsi teknologi terbaru(?), JUnit4 cukup sering menjadi penghambat, jadi secara pribadi saya punya harapan kecil agar bisa bermigrasi ke JUnit5.
https://docs.gradle.com/develocity/test-distribution/

Kalau memakai junit-vintage-engine, test JUnit4 bisa dijalankan di JUnit5 tanpa perubahan besar, tetapi overhead-nya cukup besar. (kurang lebih menjadi 20% lebih lambat)

 
kingori 2025-03-12

Wah, ini sungguh sebuah kehormatan bagi keluarga.

 
gera1d 2025-03-14

Ini Wilson!

 
brainer 2025-03-12

Hmm.. sebagai selingan, dalam beberapa tahun terakhir terlihat fenomena aneh di mana sebagian besar startup memakai Flutter, sementara perusahaan besar seperti META dan OpenAI memilih native..

 
tsboard 2025-03-12

Kebetulan tahun ini saya memang berencana membuat aplikasi Android, jadi ini menjadi panduan yang sangat berguna. Hehe