var • denotes nullable fields val userDroid = User(name = "Droid") • default values data class User( val name: String, var emailAddress: String? = null, var optIntoEmails: Boolean = true )
a lot easier to read and manage // Async callbacks networkRequest { result -> // Successful network request databaseSave(result) { rows -> // Result saved } }
a lot easier to read and manage // Async callbacks networkRequest { result -> // Successful network request databaseSave(result) { rows -> // Result saved } } // The same code with coroutines val result = networkRequest() // Successful network request databaseSave(result) // Result saved vs
android:id="@+id/button"/> Activity.kt activity.xml Makes available ALL ids defined in the project Views unrelated to inflated layout are accessible Doesn’t expose nullability well
android:id="@+id/button"/> Activity.kt activity.xml Makes available ALL ids defined in the project Views unrelated to inflated layout are accessible Doesn’t expose nullability well Other options: Data Binding or Butter Knife