-
Notifications
You must be signed in to change notification settings - Fork 0
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
[Feature/#9] : 약속 생성 UI 구현 #12
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
와우 너무 고생 많으셨습니다! 👏👏👏
core/src/main/java/com/sopt/core/designsystem/component/textfield/NoostakTextField.kt
Outdated
Show resolved
Hide resolved
core/src/main/java/com/sopt/core/designsystem/component/textfield/NoostakTextField.kt
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P2: 변경되지 않는 텍스트들은 추출해주시면 좋을 것 같습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
외모췌크 말구 ktlintCheck 해주세요!!!! 헿
스트링 추출도!!!!
core/src/main/java/com/sopt/core/designsystem/component/button/NoostakButton.kt
Show resolved
Hide resolved
presentation/src/main/java/com/sopt/presentation/calendar/navigation/CalendarNavigation.kt
Outdated
Show resolved
Hide resolved
import com.sopt.presentation.R | ||
|
||
@Composable | ||
fun DetailScreen(onNextClick: () -> Unit, onBackClick: () -> Unit) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1: Route안에서 Screen을 호출해야돼욥 ㅠㅠ GroupDetailRoute 확인하시면서 구조 바꿔주세욤
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1 : 지금 저희 프로젝트 구조에서는 ~Route에는 viewModel을 포함한 프로세스 처리 로직들을 담는 방식입니다. ~Screen은 최소의 프로세스 로직을 포함하여 UI를 띄우기 위한 역할로 이해하시면 될 것 같아요. xml 파일에 해당하는거죠. 그러므로 역할 구분을 더 명확히 하여 코드를 짜면 좋을 것 같아요
UI를 제외한 프로세스 로직이 필요하지 않는 단순 화면이거나 재사용되는 화면의 본체 파일이라면 괜찮겠지만 각 페이지마다 route-screen이 짝으로 필요하다고 이해하시면 쉬울 것 같아요. 물론 상황에 따라서 달라지겠지만.. 만약 코드가 너무 길어져서 분리하고 싶다면 ~Route 파일과 ~Screen 파일로 분리하는건 상관없습니다!
말이 길어졌지만 어쨋든.. 지금 상황에서는 CalendarDetailRoute 파일을 생성하여 그 안이든 따로이든 CalendarDetailScreen 코드를 작성하면 되실 것 같네요~
하나 덧붙이자면 모든 파일, 변수, 함수 등의 네이밍은 해당 이름만 봤을 때 어떤 역할을 하는 아이인지 알 수 있게끔 붙여주세요. 추후 프로젝트의 규모가 커지거나 시간이 지났을 때 좋은 네이밍으로 지었어야 코드를 짠 사람도, 협업하는 사람들도 쉽게 이해할 수 있을테니까요!
presentation/src/main/java/com/sopt/presentation/calendar/CalendarViewModel.kt
Outdated
Show resolved
Hide resolved
.padding(horizontal = 16.dp, vertical = 24.dp), | ||
topBar = { | ||
NoostakTopAppBar( | ||
title = "약속 만들기", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1: 스트링 추출띠예우예
core/src/main/java/com/sopt/core/designsystem/component/textfield/NoostakTextField.kt
Outdated
Show resolved
Hide resolved
presentation/src/main/java/com/sopt/presentation/calendar/CalendarRoute.kt
Outdated
Show resolved
Hide resolved
Image( | ||
painter = painterResource( | ||
id = if (isSingleDateMode) R.drawable.ic_calendar_toggle_on | ||
else R.drawable.ic_calendar_toggle_off | ||
), | ||
contentDescription = null, | ||
contentScale = ContentScale.FillBounds, | ||
modifier = Modifier | ||
.clickable { | ||
isSingleDateMode = !isSingleDateMode | ||
} | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1: 이미지 넣지 말구 compose에서 지원하는 switch 컴포저블로 변경띠
Spacer(modifier = Modifier.weight(1f)) | ||
|
||
NoostakButton( | ||
text = "다음", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1: extract string plz
presentation/src/main/java/com/sopt/presentation/calendar/navigation/CalendarNavigation.kt
Outdated
Show resolved
Hide resolved
presentation/src/main/java/com/sopt/presentation/calendar/navigation/CalendarNavigation.kt
Outdated
Show resolved
Hide resolved
presentation/src/main/java/com/sopt/presentation/calendar/navigation/CalendarNavigation.kt
Outdated
Show resolved
Hide resolved
val timeValue = newValue.toIntOrNull() ?: 0 | ||
viewModel.updateTime(timeValue) | ||
}, | ||
modifier = Modifier.width(50.dp), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1: width가 너무 적어서 클릭 영역이 좁아요 ㅠ "시간" 텍스트를 제외한 나머지 영역을 모두 텍스트 필드로 줍시답
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1 : 디쟌 쌤에게 터치 영역 물어보는게 좋을 것 같아요. GUI에도 애매
core/src/main/java/com/sopt/core/designsystem/component/calendar/NoostakCalendar.kt
Outdated
Show resolved
Hide resolved
presentation/src/main/java/com/sopt/presentation/calendar/screen/InfoScreen.kt
Outdated
Show resolved
Hide resolved
core/src/main/java/com/sopt/core/designsystem/component/button/NoostakButton.kt
Show resolved
Hide resolved
presentation/src/main/java/com/sopt/presentation/calendar/screen/InfoScreen.kt
Outdated
Show resolved
Hide resolved
presentation/src/main/java/com/sopt/presentation/calendar/screen/InfoScreen.kt
Outdated
Show resolved
Hide resolved
onValueChange = { newValue -> | ||
val timeValue = newValue.toIntOrNull() ?: 0 | ||
viewModel.updateTime(timeValue) | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1 :숫자를 여러개 입력하면 필드 영역이 작아서 숫자가 잘려 보이는데
영역은 넓게하고, if문 사용해서 글자 수 제한하는게 더 좋을 것 같습니다!
onValueChange = { newValue -> | |
val timeValue = newValue.toIntOrNull() ?: 0 | |
viewModel.updateTime(timeValue) | |
}, | |
onValueChange = { | |
if (it.length <= maxLength) { | |
onTextChange(it) | |
} | |
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1 : 기디 연락 ㄱㄱ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
core/src/main/java/com/sopt/core/designsystem/component/button/NoostakButton.kt
Show resolved
Hide resolved
core/src/main/java/com/sopt/core/designsystem/component/button/NoostakButton.kt
Show resolved
Hide resolved
core/src/main/java/com/sopt/core/designsystem/component/button/NoostakButton.kt
Show resolved
Hide resolved
core/src/main/java/com/sopt/core/designsystem/component/button/NoostakButton.kt
Show resolved
Hide resolved
core/src/main/java/com/sopt/core/designsystem/component/chip/NoostakCalendarCategoryChip.kt
Show resolved
Hide resolved
presentation/src/main/java/com/sopt/presentation/calendar/screen/InfoScreen.kt
Outdated
Show resolved
Hide resolved
presentation/src/main/java/com/sopt/presentation/calendar/screen/InfoScreen.kt
Outdated
Show resolved
Hide resolved
onValueChange = { newValue -> | ||
val timeValue = newValue.toIntOrNull() ?: 0 | ||
viewModel.updateTime(timeValue) | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1 : 기디 연락 ㄱㄱ
val timeValue = newValue.toIntOrNull() ?: 0 | ||
viewModel.updateTime(timeValue) | ||
}, | ||
modifier = Modifier.width(50.dp), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P1 : 디쟌 쌤에게 터치 영역 물어보는게 좋을 것 같아요. GUI에도 애매
✅ 𝗖𝗵𝗲𝗰𝗸-𝗟𝗶𝘀𝘁
📌 𝗜𝘀𝘀𝘂𝗲𝘀
📎 𝗪𝗼𝗿𝗸 𝗗𝗲𝘀𝗰𝗿𝗶𝗽𝘁𝗶𝗼𝗻
📷 𝗦𝗰𝗿𝗲𝗲𝗻𝘀𝗵𝗼𝘁
Screen_recording_20250103_003255.mp4
💬 𝗧𝗼 𝗥𝗲𝘃𝗶𝗲𝘄𝗲𝗿𝘀
... .. ㄹㅇ 우당탕탕 와르르멘션인데 저 어떡함요 ?ㅠ
https://www.youtube.com/watch?v=r2ko422xW0w&t=877s