No Inline classes
data class User(
val id: String,
val name: String,
val iconUrlTemplate: String,
val lastLoggedInAt: String,
val birthday: String
)
Slide 28
Slide 28 text
With Inline classes
data class User(
val id: UserId,
val name: String,
val iconUrlTemplate: UrlTemplate,
val lastLoggedInAt: DateTimeString,
val birthday: DateString
)
inline class UserId(val value: String) : Serializable
Slide 48
Slide 48 text
fun openUserScreen(user: User) {
findNavController()
.navigate(
R.id.action_home_to_user,
UserFragmentArgs(user.id).toBundle()
)
}
Slide 49
Slide 49 text
private val args: UserFragmentArgs by navArgs()
override fun oncreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val userId = args.id
// do something
}