코틀린에선 else if문 왠만하면 when으로 쓴다
else if문은 보기 지저분하기떔에
enum class를 이용해서 메시지들을 타입별로 관리하기 용이하게 할수있다.
enum class SignUpErrorMessage(
@StringRes val message: Int,
){
NAME(R.String.sign_up_name_error),
...
}
SignUpErrorMessage.NAME.message 를 사용하면 sign_up_name_error를 불러올 수 있다
valid체크는 데이터 클래스를 이용해서 관리 할 수 있다.
object SignUpValidExtension {
/*
* 이메일 정규 표현식
*/
fun String.validEmailServiceProvider() = Regex("^[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$").containsMatchIn(this)
/*
* 특문 포함
*/
fun String.includeSpecialCharacters() =
Regex("[!@#\$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+").containsMatchIn(this)
/*
* 대문자 포함
*/
fun String.includeUpperCase() = Regex("[A-Z]").containsMatchIn(this)
}
사용할 액티비티에 import를 한뒤 사용가능하다