Belajar Gradle Kotlin DSL pada Project Android

Belajar Gradle Kotlin DSL pada Project Android

Halo Kotliners!
Kali ini saya akan sedikit berbagai mengenai pengalaman menggunakan Kotlin DSL sebagai pengganti Groovy di dalam proyek Android.

Apa itu Gradle?

Semua Android developer pasti tak asing lagi dengan yang namanya Gradle. Ia merupakan sebuah build tools yang umum digunakan dalam pengembangan aplikasi, salah satunya Android. Kamu bisa baca di https://www.gradle.org/ untuk lebih lengkapnya. Sebuah Gradle scripts biasanya dituliskan dengan bahasa pemrograman Groovy. Lalu bisakah Gradle script ditulis dengan Kotlin? Bisa dong. Monggo baca blog ini: Kotlin Meets Gradle.

Tentunya akan lebih menyenangkan jika menulis sebuah scripts dengan bahasa pemrograman yang kita sukai. Selain lebih mudah, kita juga bisa lebih memahami apa yang kita tulis. Itulah yang saya rasakan ketika pertama kali mencoba Kotlin DSL. Terlebih dengan beberapa “magic” yang ditawarkan oleh Android Studio seperti auto complete, deteksi eror, dan yang lainnya.

Apa itu Kotlin DSL?

Sebelumnya, mari kita simak dulu apa itu yang dimaksud dengan Kotlin DSL. Kotlin adalah sebuah bahasa pemrograman yang kaya akan fitur-fitur menarik yang bisa membuat kode lebih ringkas dan ekspresif. Salah satunya adalah dukungan untuk menuliskan domain-specific language atau DSL. Menurut Wikipedia, DSL adalah sebuah bahasa komputer yang dikhususkan utuk domain aplikasi tertentu. Ia berbeda dengan general-purpose language yang bisa diterapkan di semua domain aplikasi.

Salah satu contoh penerapan DSL yang jamak diketahui para developer adalah perintah query pada SQL. Jika memperhatikan statements dalam SQL, kita bisa menyimpulkan bahwa itu hampir mirip seperti kalimat dalam bahasa Inggris: ekspresif dan mudah dibaca. Contoh:

Perbedaan yang paling terlihat dari kode di atas dengan kode yang biasanya adalah tata bahasa. Kode pada DSL lebih mudah dibaca oleh manusia dan juga lebih mudah dipahami, bahkan untuk orang yang belum mengerti programming. Pada Kotlin sendiri kita bisa menemukan contoh penerapan DSL di dalam beberapa library, salah satunya adalah Anko. Anko adalah sebuah library pada Kotlin yang membuat pengembangan aplikasi Android menjadi lebih cepat dan lebih mudah. Jika tertarik dengan Anko, kamu bisa mempelajarinya di kelas Kotlin Android Developer Expert.

Belajar Gradle Kotlin DSL

Setelah mengetahui sekilas tentang Kotlin DSL, kini saatnya kita memasuki topik utama pada tutorial ini, yaitu menerapkan Kotlin DSL pada Gradle scripts di dalam proyek Android.

Beberapa tools/peralatan yang harus kita siapkan terlebih dahulu adalah:

  • Android Studio versi terbaru
  • Kotlin versi terbaru
  • Gradle versi terbaru

Langkah Migrasi Groovy ke Kotlin

Selanjutnya silakan buat proyek baru dengan Android Studio. Jangan lupa  memilih Kotlin sebagai bahasa yang akan digunakan. Di sini saya menggunakan Android Studio versi 3.3.2 dengan Kotlin versi 1.3.21. Setelah itu, periksa versi Gradle pada file gradle-wrapper.properties:

Saran saya, gunakan Gradle versi 5.0 karena sudah mendukung Kotlin DSL 1.0.

Di sini kita akan fokus pada 3 (tiga) file yang terdapat pada proyek tersebut yaitu settings.gradle, build.gradle (project), dan build.gradle (app). Ketiga file tersebut merupakan Gradle scripts yang secara default dituliskan dengan Groovy. Sekarang saatnya kita akan migrasi dari Groovy ke Kotlin DSL pada file-file tersebut.

Pertama, ubahlah settings.gradle menjadi settings.gradle.kts dan pastikan kode di dalamnya menjadi eror. Kenapa? Karena sudah mengubah file Gradle menjadi Kotlin scripts, tentunya kamu harus mengubah kode di dalamnya menjadi Kotlin DSL.

Sampai di sini kita sudah melihat perbedaan sederhana dari Groovy dan Kotlin DSL, yakni String pada Groovy dapat dikutip dengan tanda kutip tunggal ‘string’ sedangkan Kotlin membutuhkan tanda kutip ganda “string” dan tanda kurung ( ) untuk menjalankan fungsinya.

Langkah selanjutnya, lakukan hal yang sama pada file build.gradle (project). Ubahlah menjadi build.gradle.kts dan perbarui kode di dalamnya menggunakan Kotlin DSL. Perhatikan commit history berikut untuk lebih lengkapnya:

Commit history - Belajar Gradle Kotlin DSL pada Project Android

Commit history

Pada perubahan tersebut kamu juga bisa melihat bagaimana sebuah clean task dideklarasikan pada Kotlin DSL.

Terakhir, kita perlu memodifikasi file build.gradle (app). Setelah mengubahnya menjadi build.gradle.kts, kamu akan melihat semua kode di dalamnya mengalami eror seperti gambar berikut:

Belajar Kotlin Gradle

build.gradle.kts (app)

Mari kita perbaiki satu per satu dengan mengubah kodenya menjadi Kotlin DSL. Mulailah dari 3 (tiga) baris paling atas berikut:

Salah satu tujuan dari DSL adalah lebih deklaratif. Biasanya kita menggunakan apply plugin untuk mendeklarasikan sebuah plugin. Dengan Kotlin DSL kita cukup menggunakan blok plugins saja.

Lanjutkan ke semua kode yang berada di blok android. Ubahlah menjadi seperti berikut:

Di sini  kamu perlu memperhatikan bagaimana sebuah plugin diterapkan. Pada Groovy, kamu bisa menggunakan tanda sama dengan ( = ) untuk menetapkan sebuah nilai, dengan Kotlin DSL kamu perlu mengetahui terlebih dahulu apakah konfigurasi tersebut adalah sebuah function atau property.

Di dalam blok buildTypes kita menggunakan  getByName() karena sebenarnya release adalah sebuah string yang diteruskan ke sebuah fungsi yang dipanggil oleh Groovy dan Kotlin tidak akan bisa mengaksesnya. minifyEnabled juga bukan merupakan nama properti yang sebenarnya, maka kita perlu menggunakan nama aslinya, yaitu isMinifyEnabled.

Kemudian pada blok dependencies, kita perlu menyesuaikan kodenya menjadi seperti berikut:

Commit History

Nah, sampai di sini kita sudah berhasil melakukan migrasi dari semua Gradle scripts yang dituliskan dengan Groovy menjadi Kotlin DSL. Untuk lebih jelasnya, kamu bisa melihat commit history berikut:

Kamu juga bisa mempelajari langkah-langkah migrasi yang lebih lengkap pada dokumentasi ini.

Semoga tutorial Belajar Gradle Kotlin DSL pada Project Android ini bermanfaat. Jika ada yang kurang jelas, silakan tulis di kolom komentar ya. Nantikan juga tutorial-tutorial selanjutnya, selain tutorial Belajar Gradle Kotlin DSL ini. Semangat belajar!

Belajar Gradle Kotlin DSL pada Project Android – end

Simak pengalaman developer yang telah mengambil Kotlin Android Developer Expert di

  1. “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/
  2. “Belajar Kotlin di Warung Kopi: Cerita Seorang Developer” di https://www.dicoding.com/blog/belajar-kotlin-di-warung-kopi-cerita-seorang-developer/ 
  3. “Tak Ada Kata Terlambat: Pindah Karir Programmer” di https://www.dicoding.com/blog/karir-programmer/
  4. 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

Belajar mengembangkan aplikasi atau game dengan kurikulum yang telah divalidasi langsung oleh industri dengan Dicoding Academy.

Belajar di Dicoding Sekarang →
Share this:

Head of Reviewer, Dicoding