Build a successful Kotlin DSL for your business domain
Kotlin is a great language for building custom Domain Specific Languages (DSL). Thanks to many features, building a DSL in Kotlin is a piece of cake… is it? The language is just a tool, and it is not the only tool needed to build a successful DSL. In this introductory article, I’d like to show […]
How to share Gradle version catalogs between projects
Gradle version catalogs are a new feature of Gradle build system. They help managing dependency versions in the projects. In the previous article, we explored how to use them locally. This time, we are going to learn, how to share a single version catalog between many projects. This may be useful for teams that own […]
Kotlin ‘immutability’ is just an illusion
When I tried Kotlin for the first time, I quickly noticed the distinction between List<T> and MutableList<T> types in Kotlin collections API. I really liked it, until I discovered how it works. Then I tried to use some defensive programming techniques to prevent using certain implementations. It turned out that they also don’t fully work […]