Skip to content

Conversation

@seungjunGong
Copy link
Collaborator

@seungjunGong seungjunGong commented May 9, 2025

📌 PR 요약

TVING 클론 코딩 - API 연동

🌱 작업한 내용

  • 필수과제
    • 회원가입, 로그인, 내 닉네임 조회 api 연동
    • SignIn, SignUp, My ViewModel 적용
  • navigation type safety 적용

🌱 PR 포인트

  • 자동로그인 구현
  • 회원가입 시 사용자가 아이디, 닉네임, 패스워드 입력후 버튼 클릭시마다
    호출하려다가 구조상 어려움이 있어 변경했습니다.
    → 모든 입력 후 조건 충족 시 한 번만 호출하는 방식으로 변경
  • 시간 관리를 잘하겠습니다..ㅜ

📸 스크린샷

회원가입 로그인 내 닉네임 조회
Screen_recording_20250509_203812.mp4
Screen_recording_20250509_203933.mp4
Screen_recording_20250509_203956.mp4

📮 관련 이슈

@seungjunGong seungjunGong self-assigned this May 9, 2025
Copy link
Member

@MinseoSONG MinseoSONG left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4차과제 수고햇아요 ~~
컴포즈 처음인걸로 알고 있는데 넘 잘해서 놀랏음 (( 구라아님 ))
코리 남긴거 확인해주고, 시연영상 보니까 로그인 화면에 padding 값이 중복되어 들어간건지 뭔가 탑바가 좀 아래로 내려와있네유 그것도 한번 확인 해줘 ~~~~

image
공승준 개자래 ~

call: retrofit2.Call<BaseResponseDto<SignInResponseDto>>,
t: Throwable,
) {
Log.d("SignInViewModel", "error: $t.message")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Log는 깃에 올리기 전에 모두 지워주세요 ~ 에러 메시지나 유저정보와 같은 민감한 정보들이 그대로 출력될 수 있어서, 사용을 지양하는게 좋습니다.
아니면 Timber를 사용하시면 깔끔하답니당
Log랑 기능상 똑같은데 Timber는 기록이 남지 않거든요 ~

Comment on lines +23 to +24
fun SignUpButton(
height: Dp = 50.dp,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

버튼에 직접 height를 주는 것보다는 안에 내용물에 대하여 padding 값을 주는 걸로 높이를 설정해주는 것이 기기대응에 좋답니다 ~~

Comment on lines -79 to 75
}

}

@Preview(showBackground = true)
@Composable
private fun Preview() {
TvingTheme {
SignUpErrorDialog(
onDismissRequest = {},
text = stringResource(R.string.error_invalid_id),
)
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이거 프리뷰 왜 지웠어요?? 정말 순수하게 궁금핑

onNextClick: () -> Unit,
modifier: Modifier = Modifier,
isPassword: Boolean = false,
isLoading: Boolean = false,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

얘는 어디에 쓰이는 친구일까요?? 현재 코드에서는 쓰이지 않는 것 같아요 확인 부탁드림 ~

만약 서버 통신을 기다리는 의미의 로딩이라면 이렇게 인자로 받기보다는 더 좋은 방법이 있지 않을까 .. !

Copy link

@mjeong21 mjeong21 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이번 과제 하느라 수고하셨어요! 코드 잘 보고 많이 배우고 갑니당 총총...

Comment on lines 33 to +40
Scaffold(
modifier = Modifier
.fillMaxSize()
.background(Color.Black),
bottomBar = {
MainNavigation(
navController = navController,
)
}
) { innerPadding ->
.background(Color.Black), bottomBar = {
MainNavigation(
navController = navController,
)
}) { innerPadding ->

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 부분들을 MainScreen으로 관심사를 분리하는 건 어떨까요?

Text(
text = stringResource(R.string.btn_sign_up_next),
color = if (enabled) {
Color.Black

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

컬러 적용한 것 같은데 여기도 적용해주세요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] 4차 과제

4 participants