목록login (4)
라떼는말이야
앱 개발에서 가장 일반적인 패턴 중 하나는 LoginActivity에서 로그인 후 MainActivity로 전환되는 것이다. 사용자가 LoginActivity에서 올바른 자격 증명을 입력하면 앱은 LoginActivity를 종료하고 MainActivity를 시작한다. 일반적으로 사용자가 이후에 다시 앱을 실행시켰을 때 로그인을 다시 할 필요 없게 하는 것을 원할 것이다. 이를 실현하기 위해서 몇 가지 접근법이 있는데, 가장 쉬운 것은 사용자가 앱을 사용할 때마다 매번 로그인을 강제하는 것이다. 하지만 이 방법은 유저 경험(UX)에 아주 끔찍한 방법이다. 일반적으로 사용자가 로그인하면 몇 종류의 토큰을 반환하고, 그것을 앱의 생명주기 외부 어딘가에 저장하면 된다. 일단 토큰을 받았다면, 토큰의 기간이 만료..
목표 설정 프로젝트 생성 시 일반적으로 Empty Activity로 생성해 앱을 만들지만 그 외에도 다양한 템플릿들을 지원해준다. 템플릿들은 구글에서 작성했거나 구글에 통과된 검증된(?) 코트일 테니 템플릿으로 생성해보고 어떻게 구성해놨을지 확인해보는 것도 도움이 될 듯해서 기록에 남기고자 한다. 이번엔 Login Activity를 확인해보려고 한다. 물론 로그인에 필요한 사용자 인증 로직이나 서버와의 통신 로직은 없다. 뷰와 뷰모델, 그리고 UI Controller인 액티비티에서는 어떻게 상호 작용하고, 로그인 상태에 따른 처리를 하는지 확인하는 것이 목표이다. 프로젝트의 구성 프로젝트 생성 시 LoginActivity를 선택하면 기본적으로 위와 같은 구성으로 프로젝트가 생성된다. 사실상 뷰는 로그인 ..
로그인 전 & 후 로그인 전/후 화면을 테스트하기 위해 테스트용 버튼을 만들었다. (메뉴들 맨 위에) 물론 테스트이기 때문에 로그인 로직 없이 뷰만 전환한다. (viewModel의 loggedIn: Boolean 변수의 값에 따라 뷰를 전환한다) Material Design 적용 로그인 회원 가입 위 사진 중 맨 왼쪽의 사진은 와이어 프레임으로 짜여진 화면이다. 기존에는 가운데 사진처럼 와이어 프레임의 디자인에 맞춰 뷰를 작성했다. 하지만 좀 더 깔끔한 디자인과 사용성을 위해 메테리얼 디자인을 적용했다. 자세한 동작은 밑에서 이어 설명한다 로그인 화면 더 보기 탭에서 (로그 아웃 상태에서) 상단의 로그인하기 버튼을 누르면 로그인 화면을 띄운다. 아이디 & 비번 찾기 화면 회원 가입 화면
activity_login.xml EditText의 힌트들은 [res] -> [values] -> strings.xml 에 지정되어 있다. 로고의 폰트는 구글의 roboto_mono_thin폰트를 사용했다. strings.xml Login 아이디 비밀번호 회원 가입 로그인 앱을 실행시켰을 때 바로 로그인 창이 뜨도록 AndroidManinfest.xml 파일을 수정했다. AndroidManinfest.xml 기존에 MainActivity 안에 있는 블록을 LoginActivity 안으로 옮겨준다. LoginActivity.java package com.example.login.ui.login; import android.app.Activity; import androidx.annotation.Nullab..