pengemabangan aplikasi Android dan memiliki pengalaman lebih dari 10 tahun di bidang tersebut. Saat ini, ia bekerja di Gojek pada tim Developer Experience, mengurus proses development dan memastikan para developer memiliki pengalaman yang menyenangkan saat mengembangkan aplikasi.
~1.7 juta diantaranya adalah Kotlin • Belum termasuk generated code, scripts, dan juga build system • 300+ modul • 700+ dependencies pada compile classpath
~1.7 juta diantaranya adalah Kotlin • Belum termasuk generated code, scripts, dan juga build system • 300+ modul • 700+ dependencies pada compile classpath • Build time median ~30s • Build time p95 ~6m
Non-aktifkan build features Android secara default • Migrasi ke non-transitive R org.gradle.caching=true android.defaults.buildfeatures.buildconfig=false android.defaults.buildfeatures.resvalues=false android.defaults.buildfeatures.aidl=false … android.nonTransitiveRClass=true
bentuk artifact (AAR/JAR) untuk mempersingkat waktu iterasi • Mengurangi configuration dan execution time • Meningkatkan performa IDE • Menggunakan properties file untuk konfigurasi
tanpa harus menunggu versi baru dari AGP • Gradle test retry plugin: mengatasi flaky test dengan mengulang test yang bermasalah • Affected module detector plugin: eksekusi task pada modul yang berubah dan berhubungan dengan itu • Gradle doctor plugin: mendiagnosa konfigurasi build
dead code pada modul • Menganalisa dependencies dan plugin yang tidak terpakai • Menganalisa modul yang bisa disederhanakan (pure JVM) • Scoring sistem untuk module https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin
dampak di berbagai area • Sama seperti software lainnya, devtools juga memerlukan optimasi dan arsitektur yang tepat untuk dapat scale up • Automasi dapat mempermudah pemeliharaan dan pembenahan projek • Hindari optimasi prematur. YMMV