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
Terima kasih atas tulisannya yang bagus.
Sebagai seseorang yang entah bagaimana akhirnya menetap sebagai build engineer aplikasi Android, kalau saya meninggalkan pendapat..
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.
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.
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.
Sepertinya keputusan Google berperan besar dalam hal ini.
Namun, screenshot testing plugin yang baru dirilis belakangan ini justru berbasis JUnit5.
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)Wah, ini sungguh sebuah kehormatan bagi keluarga.
Ini Wilson!
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..
Kebetulan tahun ini saya memang berencana membuat aplikasi Android, jadi ini menjadi panduan yang sangat berguna. Hehe