Delegated properties is a really nice feature of Kotlin and we are using them a lot in our code base. The entire project contains more than 500 delegated properties. Unfortunatelly, each property compiles to a class with 6 extra methods. While this can be fine if you're running on JVM, this is absolutely unacceptable in case you're targeting Android.
For example, the following class produces 2 more classes, Delegate$bar$1
and Delegate$foo$1
:
public class Delegate(private val values: Map<String, Any>) {
public val bar: String by values
public val foo: String by values
}