This doesn’t want to be a real article, but more a crash course about Kotlin DSL for Gradle.
The crucial point is the possibility of migrating an existing project to the new Kotlin DSL for Gradle, in an incremental, modularized fashion.
Below we have a pretty standard root project build.gradle
file:
https://gist.github.com/hamen/7fa25a3a7ad8452873051f7782c77db5
The parts that I want to highlight are those shared version numbers, i.e. rxJavaVersion
, timberVersion
and so on.
This is a standard build.gradle
file for an Android Library Module:
https://gist.github.com/hamen/1961a93d56d4f976b5892f3149991e58
As you can see, we reference those constants.
If you want to migrate this file to the new Kotlin DSL, you need to create a build.gradle.kts
file in place of your build.gradle
one and make it look like this:
https://gist.github.com/hamen/b906ad200fc94fb6f3be761b22f8fbb7
Notice how we can access those constants in a different way, but still pretty straightforward.
You will also notice that the dependencies are not the same in the two files, some versions are hardcoded, other are referencing the global constants.
It’s messy on purpose: this is an working example from one of my projects and I want to show a few of different choices you can have in those files. It’s up to you.
If you want a better overview about Kotlin DSL for Gradle, I would suggest the good article by Antonio Leiva https://antonioleiva.com/kotlin-dsl-gradle/.
Thank you all for the feedbacks and the support!
Happy Kotlin ❤️