active lifecycle state ͷͱ͖͚ͩ௨͢Δͱ͍͏͜ͱ͕ Մೳ ༻ස: ߴ // just LiveData "androidx.lifecycle:lifecycle-viewmodel:2.0.0" "androidx.lifecycle:lifecycle-compiler:2.0.0"
ViewModel and LiveData "androidx.lifecycle:lifecycle-extensions:2.0.0" // just ViewModel "androidx.lifecycle:lifecycle-viewmodel:2.0.0" "androidx.lifecycle:lifecycle-compiler:2.0.0"
→ Kotlin ͷ sealed class Λ͏ https://kotlinlang.org/docs/reference/sealed-classes.html sealed class ΫϥεܧঝઌΛ੍ݶͰ͖Δ sealed class Expr { data class Const(val number: Double) : Expr() data class Sum(val e1: Expr, val e2: Expr) : Expr() object NotANumber : Expr() } Expr ܕͷΠϯελϯεͷ࣮ମ Const, Sum NotANumber ͷͲΕ͔ when (expr) { is Expr.Const -> TODO() is Expr.Sum -> TODO() Expr.NotANumber -> TODO() }
sealed class Status<out T> { object Loading : Status<Nothing>() data class Success<T>(val data: T) : Status<T>() data class Error(val throwable: Throwable) : Status<Nothing>() } → Kotlin ͷ sealed class Λ͏ data class Status( val isLoading: Boolean, val data: List<Repo>?, val throwable: Throwable? )