Gradle Dependency Management pada Android –
Hi Devs!
Masih ingat dengan artikel sebelumnya Belajar Gradle Kotlin DSL pada Project Android? Artikel ini merupakan kelanjutannya.
Setelah berhasil migrasi dari Groovy ke Kotlin DSL untuk semua Gradle scripts pada proyek Android, kini saatnya kita mengatur dependencies di dalamnya agar lebih terpusat dan terkendali.
💻 Mulai Belajar Pemrograman
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.
Daftar SekarangPentingnya Mengatur Dependensi
Pengembangan sebuah aplikasi tak pernah lepas dari peran library. Baik itu library pihak ke-3 ataupun standard library. Pada proyek Android, penambahan sebuah library bisa dilakukan dengan cara menambahkannya pada build.gradle sebagai dependensi. Kita bisa mudah melakukannya dengan bantuan Gradle build system. Tutorial resminya bisa kamu lihat di tautan ini.
1 2 3 4 5 6 7 8 9 |
dependencies { implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.31") implementation("com.android.support:appcompat-v7:28.0.0") implementation("com.android.support.constraint:constraint-layout:1.1.3") testImplementation("junit:junit:4.12") androidTestImplementation("com.android.support.test:runner:1.0.2") androidTestImplementation("com.android.support.test.espresso:espresso-core:3.0.2") } |
Kode di atas adalah contoh library yang digunakan pada sebuah aplikasi. Cukup rapi dan tidak ada masalah dalam penerapannya, bukan?
Pada dasarnya, sebuah proyek baru di Android Studio hanya memiliki 1 (satu) modul, yaitu app. Dengan begitu, untuk mengatur dependensi pun cukup mudah karena terpusat pada sebuah berkas build.gradle (app). Namun, bagaimana jika kita ingin menerapkan modularization pada aplikasi kita?
Modularization adalah sebuah teknik dalam pengembangan aplikasi yang memungkinkan kita untuk memisahkan fungsionalitas ke dalam modul independen. Tonton video berikut untuk mengetahui pembahasan tentang modularization pada aplikasi Android dari Sidiq Permana dan Saya pada Dicoding Live beberapa bulan yang lalu.
Langkah – Langkah Mengatur Dependensi
Dalam pelaksanaannya, kita akan mengelompokkan dependensi pada sebuah modul khusus, yang disebut dengan buildSrc. Langsung saja, mari ikuti beberapa langkah berikut untuk mengatur dependensi agar lebih ideal:
- Pastikan Anda sudah melakukan migrasi ke Kotlin DSL pada semua Gradle scripts yang ada. Ikuti tutorial Belajar Gradle Kotlin DSL pada Project Android.
- Buatlah folder baru dengan nama buildSrc di dalam folder utama proyek. Folder ini nantinya akan menjadi sebuah modul yang akan menampung semua dependensi.
- Di dalam buildSrc tambahkan beberapa folder dan berkas, sehingga strukturnya seperti berikut:
- Tambahkan plugin Kotlin DSL pada berkas build.gradle.kts:
1234567plugins {`kotlin-dsl`}repositories {jcenter()}
Untuk mengaktifkannya, lakukan sinkronisasi Gradle. - Selanjutnya pada berkas Dependencies.kt, kita akan memindahkan semua dependensi yang digunakan pada proyek. Caranya pun cukup sederhana. Perhatikan contoh berikut:
123456789101112131415161718192021222324252627282930313233343536373839private const val kotlinVersion = "1.3.31"private const val androidGradleVersion = "3.4.0"//support libsprivate const val appcompatVersion = "1.0.0"private const val constraintLayoutVersion = "1.1.3"//test libsprivate const val junitVersion = "4.12"private const val runnerVersion = "1.1.0"private const val espressoVersion = "3.1.0"object Dependencies{object Android {val minSdkVersion = 21val targetSdkVersion = 28val compileSdkVersion = 28val applicationId = "com.dicoding.app"val versionCode = 1val versionName = "0.1"}object Kotlin{val kotlin_std = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"}object BuildPlugins {const val androidGradle = "com.android.tools.build:gradle:$androidGradleVersion"const val kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"}object SupportLibs{val appcompat = "androidx.appcompat:appcompat:$appcompatVersion"val constraint_layout = "androidx.constraintlayout:constraintlayout:$constraintLayoutVersion"}object TestLibs{val junit = "junit:junit:$junitVersion"val espresso = "androidx.test.espresso:espresso-core:$espressoVersion"val runner = "androidx.test:runner:$runnerVersion"}}
Pada berkas tersebut, kita telah mendeklarasikan semua dependensi beserta versinya ke dalam beberapa objek. Kita pun bisa mengelompokkan objek berdasarkan jenisnya. Dengan begitu kode akan terlihat lebih rapi. - Sekarang kita bisa menggunakan semua dependensi dengan lebih ekspresif. Berikut contohnya:
123implementation(Dependencies.Kotlin.kotlin_std)implementation(Dependencies.SupportLibs.appcompat)implementation(Dependencies.SupportLibs.constraint_layout) - Terakhir, ubahlah semua penerapan dependensi pada build.gradle.kts (project) dan build.gradle.kts (app).
Nah, seperti itulah Gradle Dependency Management. Sekarang semua dependensi telah tersimpan pada buildSrc dan bisa digunakan untuk semua modul yang ada. Ketika nanti kita ingin menambah atau memperbarui sebuah dependensi, kita tak perlu lagi membuka modul satu per satu. Cukup buka buildSrc dan tambahkan atau perbarui dependensi yang diinginkan.
Commit History
Semua langkah – langkah di atas juga bisa kamu lihat pada commit history berikut:
Kesimpulan
- GDM diperlukan ketika kita mengembangkan aplikasi modular.
- GDM membuat penulisan dependensi lebih rapi dan ekspresif.
- Dengan GDM, pengaturan dependensi pada setiap modul jadi lebih mudah.
Sampai di sini ya tutorial kali ini. Semoga bermanfaat. Tonton juga video tentang Gradle Dependency Management berikut:
Jika ada yang kurang jelas, silakan tulis di kolom komentar. Semangat belajar!
Gradle Dependency Management pada Android-end
Simak pengalaman developer yang telah mengambil Kotlin Android Developer Expert di
- “Pemuda Bali ini Mengembangkan Aplikasi Layanan Ambulan Desa Berbasis Kotlin” di https://blog.dicoding.com/pemuda-bali-ini-mengembangkan-aplikasi-layanan-ambulan-desa-berbasis-kotlin/
- “Belajar Kotlin di Warung Kopi: Cerita Seorang Developer” di https://www.dicoding.com/blog/belajar-kotlin-di-warung-kopi-cerita-seorang-developer/
- “Tak Ada Kata Terlambat: Pindah Karir Programmer” di https://www.dicoding.com/blog/karir-programmer/
Mau juga jadi Kotlin Developer Expert dengan sertifikasi yang diakui industri IT dunia? Lihat kurikulum online Kotlin Android Developer Expert di dicoding.id/a/55>
Mumpung ada promo beasiswa berikut ini. Kalau kamu membeli 1 kelas manapun di Dicoding, kamu memberi 1 beasiswa kelas yang sama untuk mereka yang membutuhkan.