728x90
21일차
30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
강의 목표
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 앱 개발시 원하는 기능을 구현하기 위해 어떤 기술이 필요한 지 알 수 있습니다.
- 디자인 아키텍처 패턴, 비동기 처리 등 효율적인 앱 개발 방법을 익힐 수 있습니다.
목차 02 Basic - Ch03. 비밀 다이어리
인트로 (완성앱&구현기능소개)기본 UI 그리기- 자물쇠 페이지 구현하기 (로그인, 비밀번호 변경)
- 다이어리 화면 구현하기 (글 작성, 삭제)
- 아웃트로
자물쇠 페이지 구현하기 (로그인, 비밀번호 변경)
- 비밀 번호 변경 버튼의 로직을 짜보자
- 비밀 번호 변경 상태임을 저장하는 변수 changePasswordMode 를 사용한다
버튼을 눌렀는데 이미 변경모드일때
val passwordPreference = getSharedPreferences("password", Context.MODE_PRIVATE)
val passwordFromUser = "${numberPicker1.value}${numberPicker2.value}${numberPicker3.value}"
if(changePasswordMode) {
passwordPreference.edit(true) {
putString("password", passwordFromUser)
}
changePasswordMode = false;
chagePasswordBtn.setBackgroundColor(Color.BLACK)
}
- sharedPreferences를 사용하여 pw와 사용자가 numberpicker에 입력한 비밀번호를 가져온다
- edit 람다 함수를 이용하여 로컬 DB를 수정해준다
- 인자로 들어간 ture는 apply와 commit 중 commit 을 하게 해준다
- commmit과 다르게 apply 는 비동기적으로 움직인다
- 굳이 빠른 동작이 필요하지 않음으로 Commit으로 구현
- 변경후에는 다시 모드를 바꾸고 버튼색도 바꿔준다
버튼을 눌러서 변경모드로 바꿀때
else {
if(passwordPreference.getString("password", "000").equals(passwordFromUser)){
changePasswordMode = true
Toast.makeText(this, "변경할 비밀번호를 입력해주세요", Toast.LENGTH_SHORT).show()
chagePasswordBtn.setBackgroundColor(Color.RED)
} else {
// 잠금 해제 실패
showErrorAlertDialog()
}
}
- 저장된 비밀번호와 numberpicker의 비밀번호를 비교한다
- 맞으면 변경모드로 바뀌며 색도 바꿔줌
- 아니면 잠금 해제 실패
private fun showErrorAlertDialog() {
AlertDialog.Builder(this)
.setTitle("실패!!")
.setMessage("비밀번호가 잘못되었습니다.")
.setPositiveButton("확인") { _, _ -> }
.create()
.show()
}
- 잠금 해제 실패를 위와 같이 중복 사용되는 부분을 모듈화 하였다
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강인증샷
링크
728x90
'Android > Challenge' 카테고리의 다른 글
패스트캠퍼스 챌린지 23일차 (0) | 2022.02.15 |
---|---|
패스트캠퍼스 챌린지 22일차 (0) | 2022.02.14 |
패스트캠퍼스 챌린지 20일차 (0) | 2022.02.12 |
패스트캠퍼스 챌린지 19일차 (0) | 2022.02.11 |
패스트캠퍼스 챌린지 18일차 (0) | 2022.02.10 |