-
Notifications
You must be signed in to change notification settings - Fork 2
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] 시간표 마이그레이션 #291
base: develop
Are you sure you want to change the base?
[Feature] 시간표 마이그레이션 #291
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.
오우... 이 어려운걸 하시느라 고생 많으셨습니다 코드보고 많이 배워가요~
fun LectureResponse.toLecture() = Lecture( | ||
id = this.id ?: 0, | ||
code = this.code ?: "", | ||
name = this.name ?: "", | ||
grades = this.grades ?: "", | ||
lectureClass = this.lectureClass ?: "", | ||
regularNumber = this.regularNumber ?: "", | ||
department = this.department ?: "", | ||
target = this.target ?: "", | ||
professor = this.professor ?: "", | ||
isEnglish = this.isEnglish ?: "", | ||
designScore = this.designScore ?: "", | ||
isElearning = this.isElearning ?: "", | ||
classTime = this.classTime, | ||
) | ||
|
||
fun TimetablesLectureResponse.toLecture() = Lecture( | ||
id = this.id ?: 0, | ||
code = this.code ?: "", | ||
name = this.name ?: "", | ||
grades = this.grades ?: "", | ||
lectureClass = this.lectureClass ?: "", | ||
regularNumber = this.regularNumber ?: "", | ||
department = this.department ?: "", | ||
target = this.target ?: "", | ||
professor = this.professor ?: "", | ||
isEnglish = "", | ||
designScore = this.designScore ?: "", | ||
isElearning = "", | ||
classTime = this.classTime.orEmpty(), | ||
) |
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.
lecture에 대해서 두개의 response를 둔 이유가 궁금합니다!
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.
이건 서버에서 불러오는 시간표 api response 스키마가 동일하지 않아서 response dto 를 두개 만들어 놨습니다.. 서버에게 말해야하지만 이번에 v2로 api를 만들고 있는걸로 알아서 공수가 또 들어갈것같아 우선 냅뒀습니다.. 추가로 이전 버전의 사이드 이펙트나 안드로이드가 아닌 다른 플랫폼에서 발생하는 이슈를 생각해보니 하암..
/lectures
(강의 목록 조회)
/timetables
(시간표 정보 조회)
Column( | ||
modifier = modifier | ||
.fillMaxSize() | ||
.padding(end = 2.dp, bottom = 2.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.
.padding(end = 2.dp, bottom = 2.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.
예리한 피드백 감사합니다.
코드량이 많아서 리뷰를 봐주다니 영광이네요..
고생 많으십니다! |
@kongwoojin 피드백 감사드립니다 ^^ |
onAddLecture: () -> Unit, | ||
onClick: (List<TimetableEvent>) -> Unit, | ||
) { | ||
val isSelected = selectedLecture == lecture |
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.
derivedStateOf
를 이용하면 lecture
와 selectedLecture
가 달라졌지만 isSelected
가 유지되는 상황에서 isSelected
와 관련있는 컴포저블의 리컴포지션을 방지할 수 있습니다
val isSelected by remember(lecture, selectedLecture) {
derivedStateOf { selectedLecture == lecture }
}
.padding(start = dayStartPadding) | ||
) { | ||
val days = listOf("월", "화", "수", "목", "금") | ||
repeat(days.size) { |
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.
(팁) listOf(...).map {}
으로 축약할 수 있을 것 같습니다
이슈
개요
Java to Jetpack compose migration
시연영상
_.2.mp4
_.1.mp4
_.mp4
추가 논의사항
마이그레이션 하면서 코드 의존성은 강해지고, 코드를 분할해서 PR 날리기 어려워서 코드량이 많은 점 죄송합니다..최대한 분할하여 올렸습니다!!
원하는 MVP는 아니지만, 우선 리뷰를 위하여 PR 올려놓습니다!
질문