Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1주차/XML] Android UI 구현 기초 #1

Open
15 of 27 tasks
SYAAINN opened this issue Apr 1, 2024 · 0 comments · Fixed by #3
Open
15 of 27 tasks

[1주차/XML] Android UI 구현 기초 #1

SYAAINN opened this issue Apr 1, 2024 · 0 comments · Fixed by #3
Assignees
Labels
[XML] 📕 [심화 과제] 세미나_심화과제 📗[필수 과제] 세미나_필수과제 📙 [도전 과제] 세미나_도전과제

Comments

@SYAAINN
Copy link
Collaborator

SYAAINN commented Apr 1, 2024

📗 필수과제

로그인을 하려면 회원가입 화면이 있어야겠죠?

  • 화면에 회원가입 버튼 추가
  • 회원가입 버튼을 누르면 회원가입 화면에서 회원정보를 저장해서 로그인 화면으로 돌아오도록 구현 (registerForActivityResult, putExtra 활용)
  • 회원가입 화면에서 받아온 정보와 로그인 정보가 일치하면 로그인 성공
  • 로그인 성공 시 "로그인에 성공했습니다" 토스트를 보여주고 메인화면(MainActivity)로 이동
  • 비밀번호는 EditTextInputType을 활용하여 입력할 때 안보이게 설정

회원가입 페이지 만들기

  • SignUpActivity를 만들고 레이아웃 구현 (디자인 자유)

  • 필수 입력 조건 : ID, 비밀번호, 닉네임

  • 추가 입력 조건 : 생년월일, 성별

  • 모든 정보를 입력하지 않았을 시 회원가입 불가하며 해당 정보 전달할 메세지 구현 (Snackbar, Toast)

  • 회원가입 성공 시 LoginActivity 로 화면이 전환됨과 동시에 입력했던 정보 전달, 회원가입 성공 메세지 구현

    회원가입 성공 조건 :

  • ID : 6~10 글자

  • Password : 8~12 글자

  • 닉네임 : 한 글자 이상, 공백으로만 이루어진 닉네임은 불가

  • 나머지 조건 : 자유

메인 페이지 만들기

  • MainActivity 파일에 구현. 앱 처음 진입 시는 LoginActivity
  • Image, Text 등을 활용해 마이페이지 자유롭게 디자인
  • 로그인 화면에서 받아온 닉네임과 ID 활용
  • XML 에서는 dimensionRatio 를, Compose 에서는 aspectRatio 를 활용해 이미지의 가로 x 세로 크기를 알아서 맞추기
  • 이미지와 텍스트, 텍스트와 텍스트 사이 간격을 줘서 가시성 증대시키기 (Hint : margin, padding, Spacer)

📕 심화과제

Activity 생명주기를 알아보기

  • Activity의 생명주기와 각 생명주기에 실행해야하는 로직을 블로그,노션 등에 정리하여 링크를 Readme.md 파일에 추가하기
  • 우리 앱에서는 생명주기 측면에서 어떤 것들을 고려해야할 지 함께 정리하기 (Ex. 화면 전환, 다크 모드)

Android ViewModel을 사용하여 State 관리해보기

  • Android 에는 Activity 생명주기보다 조금 긴 ViewModel 이라는 클래스가 존재하는데 이걸 활용하여 State 의 관리를 View 책임으로부터 멀어지게 해보기

유저에게 좀 더 좋은 경험을 제공하기 중 1가지 적용하기

  • 뒤로가기 시 로그인 화면
    - 메인 화면에서 뒤로가기를 눌렀을 때 이전 스택에 남아있는 로그인 화면이 아니라 앱을 종료 할 수 있도록 구현 (Intent Flags, Activity Task)
  • 텍스트 입력 시 2줄 방지
    - EditText(XML), TextFiled(Compose)의 특정 속성을 활용해 Text를 한 줄로 제한
    - 엔터키를 누르면 다음 입력칸으로 넘어가도록 진행
  • 키보드가 올라올 때 버튼을 가릴 때
    - 키보드가 올라갈 때 화면도 같이 올라가도록 구현 android:windowSoftInputMode
  • 클릭 시 리플 효과
    - Compose 에서 클릭 시 리플효과를 제거하는 방법에 대해 학습

📙 도전과제

자동 로그인 구현

  • 로그인 프로세스를 거쳐 마이페이지에 진입한 유저는, 이후 재접속 시 자동 로그인 되도록 구현 (SharedPreference)
  • 마이페이지 화면에 로그아웃 기능이 있는 로그아웃 버튼을 구현

Composable의 생명주기를 알아보기 (README.md 업로드)

( 참고문헌 : https://developer.android.com/develop/ui/compose/lifecycle )

  • 컴포저블 함수의 생명주기는 어떻고, 컴포지션은 무엇인지 정리하여 업로드

Intent를 좀 더 알아보자 (README.md 업로드)

( 참고문헌 : https://developer.android.com/reference/android/content/Intent )

  • 명시적, 암시적 Intent 의 구분
  • AndroidManifest 에 있는 <intent-filter> .. 어떤 역할인 지 학습
@SYAAINN SYAAINN added the 📗[필수 과제] 세미나_필수과제 label Apr 1, 2024
@SYAAINN SYAAINN self-assigned this Apr 1, 2024
@SYAAINN SYAAINN added 📕 [심화 과제] 세미나_심화과제 📙 [도전 과제] 세미나_도전과제 [XML] labels Apr 15, 2024
@SYAAINN SYAAINN changed the title [1주차/필수] Android UI 구현 기초 [1주차/XML] Android UI 구현 기초 Apr 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[XML] 📕 [심화 과제] 세미나_심화과제 📗[필수 과제] 세미나_필수과제 📙 [도전 과제] 세미나_도전과제
Projects
None yet
1 participant