0. 혼용

UI 개발에서, State 명명법은 하기 2가지 방법이 존재.

  1. 화면에 어떤 종류의 영향을 주는 지를 기반으로. → 영향 기반.
  2. 그 상태가 나타내는 논리적인 동작(행동)을 기반으로. → 동작 기반.

1. 잘못된 사용례

// BAD
data class LoginState(
    val emailText: String = "",
    val isProgressBarVisible: Boolean = false, // -> 1번 영향 기반
    val isLoginFailed: Boolean = false // -> 2번 동작 기반
)

⇒ 어떤 접근법을 사용하든, 둘 중 하나를 일관되게 사용해야 함.


2. 옳은 사용례

// GOOD
data class LoginState(
    val emailText: String = "",
    val isLoggingIn: Boolean = false,
    val isLoginFailed: Boolean = false
)

⇒ 각 Composable은 그 자체로 해당 상태에서 어떤 행동을 할 지 결정 가능해짐.