인스타그램 클론코딩 웹과 달리 앱은 로그인, 회원가입, 인증코드 확인 화면이 각각 스택 네비게이션의 스크린으로 구성되어 있습니다. 그래서 인스타그램 클론코딩 웹보다는 코드 보기가 더 편합니다.
키보드가 나타날 때 컴포넌트들을 위로 올리는 방법은 있지만 그것이 중요한 것은 아니기 때문에 구현하지는 않았습니다.
로그인, 회원가입, 인증코드 확인 화면을 각각의 스크린으로 분리한 이유는 무엇인가요?
웹처럼 한 개의 화면에서 플래그(action)를 사용해 3종류의 화면을 표시하는 경우, 안드로이드 앱에서는 뒤로가기 버튼 한 번에 앱이 종료될 수 있기 때문입니다.
예를 들어, 회원 가입중에 소셜 로그인으로 전환하기 위해 뒤로가기 버튼을 누른 경우, 앱이 종료됩니다. 이 경우엔 회원가입 화면에서 뒤로가기 버튼을 누르면 이전 화면인 로그인 화면으로 이동하는 것이 더 좋은 구조라고 생각합니다.
스크린
Login | Signup | Confirm |
회원가입부터 이메일 인증까지 한 번에 하는 경우
Login → (Signup → Confirm) → Login
Signup 스크린에서 Confirm 스크린으로 넘어갈 때는 스택을 쌓는 것(push)이 아니라 스크린을 교체(replace)해 줍니다.
Confirm 스크린에서 인증이 완료되면, navigation.goBack() 메소드로 login 스크린으로 이동하기 위해서 입니다.
회원가입 후 이메일 인증을 나중에 하는 경우
Login → Confirm → Login
Confirm 스크린에서 Login 스크린으로 이동할 때
Login 스크린에 userName과 패스워드를 전달해 주어야 합니다.
위의 동영상 45초에서 인증을 완료했을 때 Login 스린으로 넘어가면 userName과 패스워드가 입력되어 바로 로그인하는 것을 확인할 수 있습니다.
패스워드가 안보이는 것은 아이폰 녹화에서 자동으로 가려주기 때문입니다.
'리액트 네이티브' 카테고리의 다른 글
[인스타그램 클론코딩] 앱에서 백엔드로 Cognito 토큰 전송 (0) | 2020.05.22 |
---|---|
[인스타그램 클론코딩] 앱 로그인 구현 (구글 로그인 포함) (0) | 2020.05.22 |
[인스타그램 클론코딩] 앱 로그아웃 구현 (0) | 2020.05.22 |
[인스타그램 클론코딩] 앱 회원가입 구현 (0) | 2020.05.22 |
[인스타그램 클론코딩] 앱 로그인 구조 (0) | 2020.05.14 |