-
Notifications
You must be signed in to change notification settings - Fork 1
[UI/#359] 탐색, 공고 뷰 / 로딩 이미지 추가 #370
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
Conversation
boiledeggg
left a comment
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.
깔쌈한데요? 고생 많으셨습니당~
| else -> InternInfo( | ||
| dDay = "", | ||
| title = "", | ||
| viewCount = 0, | ||
| company = "", | ||
| companyCategory = "", | ||
| companyImage = "", | ||
| deadline = "", | ||
| workingPeriod = "", | ||
| startYearMonth = "", | ||
| qualification = "", | ||
| jobType = "", | ||
| url = "", | ||
| detail = "", | ||
| isScrapped = false, | ||
| scrapCount = 0 | ||
| ) |
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.
InternInfo의 companion object에 빈 InternInfo를 반환해주는 함수나 변수를 만들어주면 UI 코드가 더 깔끔해질 것 같아요!
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.
와 줄 수 들어든 거 보고 행복하네요 ㅠ
| val image = if (companyImage == "") { | ||
| ic_terning_intern_item_image_loading_128 | ||
| } else { | ||
| companyImage | ||
| } |
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.
| val image = if (companyImage == "") { | |
| ic_terning_intern_item_image_loading_128 | |
| } else { | |
| companyImage | |
| } | |
| val image = companyImage.ifBlank { | |
| ic_terning_intern_item_image_loading_128 | |
| } |
ifBlank라는걸 사용해서 빈 문자열인 경우 다른 값을 반환할 수 있어요! 사용하면 좋을 것 같네요!
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.
가독성의 신. ifBlank 메모했습니다
Hyobeen-Park
left a comment
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.
느데 출동!! 공고 이미지는 잘 적용되었는데 배너는 한 번 더 확인이 필요할 것 같아요😭 녹화영상도 함께 첨부할게요!!
Screen_Recording_20250329_164835.mp4
Hyobeen-Park
left a comment
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.
수고하셨습니다~~!! 배너쪽 로딩뷰만 한 번 더 확인 부탁드려요!!
| } else { | ||
| Box( | ||
| modifier = Modifier | ||
| .fillMaxSize(), | ||
| contentAlignment = Alignment.Center | ||
| ) { | ||
| TerningLottieAnimation( | ||
| jsonFile = terning_banner_loading, | ||
| modifier = Modifier | ||
| .fillMaxWidth() | ||
| .height(112.dp), | ||
| iterations = LottieConstants.IterateForever | ||
| ) | ||
| } |
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.
서버통신이 느린 경우도 있지만 통신 이후 이미지 로딩이 오래걸리는 경우도 있어서 두 가지 상황을 모두 고려해야 할 것 같습니다! 후자의 경우 searchBanners에 데이터가 존재하기 때문에 이 로딩 로띠가 보이지 않을 것 같네요..!
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.
로딩뷰에 로띠를 넣는 경우는 제가 저번에 언급했던 SubcomposeAsyncImage를 활용해도 좋을 것 같아요!
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.
아니 이런 천재 개발자들!!!!!!!!1 왜 그 생각을 못했지 감사합니다.
| val internInfo = when (internState.loadState) { | ||
| is UiState.Success -> (internState.loadState as UiState.Success<InternInfo>).data | ||
| else -> InternInfo( | ||
| dDay = "", | ||
| title = "", | ||
| viewCount = 0, | ||
| company = "", | ||
| companyCategory = "", | ||
| companyImage = "", | ||
| deadline = "", | ||
| workingPeriod = "", | ||
| startYearMonth = "", | ||
| qualification = "", | ||
| jobType = "", | ||
| url = "", | ||
| detail = "", | ||
| isScrapped = false, | ||
| scrapCount = 0 | ||
| ) |
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.
| val internInfo = when (internState.loadState) { | |
| is UiState.Success -> (internState.loadState as UiState.Success<InternInfo>).data | |
| else -> InternInfo( | |
| dDay = "", | |
| title = "", | |
| viewCount = 0, | |
| company = "", | |
| companyCategory = "", | |
| companyImage = "", | |
| deadline = "", | |
| workingPeriod = "", | |
| startYearMonth = "", | |
| qualification = "", | |
| jobType = "", | |
| url = "", | |
| detail = "", | |
| isScrapped = false, | |
| scrapCount = 0 | |
| ) | |
| val internInfo = (internState.loadState as? UiState.Success<InternInfo>)?.data ?: InternInfo() |
석준오빠가 리뷰 단 것처럼 빈 InternInfo 반환할 수 있도록 만들면 이렇게 구현하는 것도 깔끔하고 좋을 것 같아요!
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.
쏘스윗!!!!
leeeyubin
left a comment
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.
수고하셨숩니당~~!!!!🚀
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.
파일 이름 마지막에 128은 무엇을 의미하나용?
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.
로딩 이미지 크기입니당~~!
| AsyncImage( | ||
| model = ImageRequest.Builder(LocalContext.current) | ||
| .crossfade(true) | ||
| .data(companyImage) | ||
| .data(image) | ||
| .build(), | ||
| contentDescription = stringResource(id = R.string.search_image), | ||
| contentScale = ContentScale.Fit, | ||
| modifier = Modifier | ||
| .fillMaxWidth() | ||
| modifier = Modifier.fillMaxWidth(), | ||
| ) | ||
| } |
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.
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.
아항!!! 추가해두면 확실히 사용자 입장에서 구별하기 좋을 것 같네용 🥹
근데 에러 이미지가 따로 없는 지금 당장은 에러 이미지인지 로딩 이미지인지가 구별이 안될 것 같은 issue..
| } else { | ||
| Box( | ||
| modifier = Modifier | ||
| .fillMaxSize(), | ||
| contentAlignment = Alignment.Center | ||
| ) { | ||
| TerningLottieAnimation( | ||
| jsonFile = terning_banner_loading, | ||
| modifier = Modifier | ||
| .fillMaxWidth() | ||
| .height(112.dp), | ||
| iterations = LottieConstants.IterateForever | ||
| ) | ||
| } |
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.
로딩뷰에 로띠를 넣는 경우는 제가 저번에 언급했던 SubcomposeAsyncImage를 활용해도 좋을 것 같아요!
Hyobeen-Park
left a comment
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.
어머낭 어푸 안한거 이제 알았네요ㅠ LGTM~~!!🚀🚀
leeeyubin
left a comment
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.
확인했습니다!! 수고 많았어용🚀

⛳️ Work Description
📸 Screenshot
359.webm
📢 To Reviewers