이전에 Activity를 작성한 적이 있다.
액티비티에서는 화면의 동작들을 처리한다면 UiState는 화면의 상태값을 지정하고, 저장하는 역할을 한다.
아래는 LoginUiState의 전체코드이다.
코드
data class LoginUiState(
val email: String = "",
val password: String = "",
val isLoading: Boolean = false,
val successToSignIn: Boolean = false,
val userMessage: String? = null
) {
val isInputValid: Boolean
get() = isEmailValid && isPasswordValid
private val isEmailValid: Boolean
get() {
return if (email.isEmpty()) {
false
} else {
android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()
}
}
private val isPasswordValid: Boolean
get() = password.length >= 6
val showEmailError: Boolean
get() = email.isNotEmpty() && !isEmailValid
val showPasswordError: Boolean
get() = password.isNotEmpty() && !isPasswordValid
}
우선 Data Class를 이용하여 정의하였다.
변수 설명
email: 사용자의 이메일 주소를 나타냅니다.
password: 사용자의 비밀번호를 나타냅니다.
isLoading: 현재 로딩 상태를 나타냅니다. 기본값은 false이며, 로딩 중일 때는 true로 설정됩니다.
successToSignIn: 로그인이 성공했는지 여부를 나타냅니다. 기본값은 false이며, 로그인에 성공하면 true로 설정됩니다.
userMessage: 사용자에게 표시할 메시지를 나타냅니다. 기본값은 null이며, 성공 또는 실패와 관련된 메시지가 필요한 경우 설정됩니다.
또한, 다음과 같은 추가적인 기능이 구현되어 있습니다:
기능 설명
isInputValid: 이메일과 비밀번호가 유효한지 여부를 나타내는 속성입니다. 이메일이 유효하고 비밀번호가 6자 이상이면 true를 반환합니다.
isEmailValid: 이메일이 유효한지 여부를 나타내는 속성입니다. 비어 있지 않고, 안드로이드의 이메일 패턴에 부합하면 true를 반환합니다.
isPasswordValid: 비밀번호가 6자 이상인지 여부를 나타내는 속성입니다.
showEmailError: 이메일이 비어 있지 않고 유효하지 않으면 에러를 보여주어야 하는지 여부를 나타내는 속성입니다.
showPasswordError: 비밀번호가 비어 있지 않고 유효하지 않으면 에러를 보여주어야 하는지 여부를 나타내는 속성입니다.
기능의 경우 변수 값에 따라 화면에 보여지는 상태값을 달리 해야하기 때문에 만들었다.
이를 통해서 화면에서 더욱 사용자의 입력 상태에 따라 유동적으로 화면을 보여줄 수 있다.
'Android > Study' 카테고리의 다른 글
[Android] ktlint, detekt를 적용해보기 (0) | 2024.01.20 |
---|---|
[Android] android에서 multipart로 image 전송 및 받아오기 (0) | 2024.01.14 |
[Android] View가 그려지는 순서 (0) | 2024.01.13 |
[Android] Activity 생명 주기(Life Cycle) (0) | 2024.01.13 |
[Android] 안드로이드 4대 컴포넌트 (0) | 2024.01.13 |