Conversation
kimdoyeon1234
left a comment
There was a problem hiding this comment.
LazyVerticalGrid + LazyRow 모두 items() DSL과 key를 올바르게 사용하신 점, ProductDetailScreen까지 구현하신 점 정말 인상적입니다!
다만 이번 미션의 핵심인 Type-safe Navigation이 아직 적용되지 않았습니다! 현재 selectedTab enum으로 화면을 전환하고 있는데, @serializable + data object + NavController 방식으로 바꿔주세요!
그리고 모든 화면과 컴포넌트가 MainActivity.kt 한 파일에 작성되어 있는데, 화면마다 파일을 분리해주시면 가독성과 유지보수성이 훨씬 좋아집니다!
ShopScreen의 하트 버튼도 클릭 이벤트가 연결되어 있지 않으니 onWishClick 람다를 추가해서 isWishlisted 상태가 변경되도록 수정해주세요!
Type-safe Navigation만 적용해주시면 완성도가 훨씬 올라갈 거예요! 수고하셨습니다!!
There was a problem hiding this comment.
HomeScreen, ShopScreen, WishlistScreen, CartScreen, ProductDetailScreen 등 모든 화면과 컴포넌트가 MainActivity.kt 한 파일에 작성되어 있습니다! 하나만 보면 되서 좋긴합니다만.. 화면마다 파일을 분리해주시면 가독성과 유지보수성이 훨씬 좋아집니다! 예를 들어 ui/home/HomeScreen.kt, ui/shop/ShopScreen.kt처럼 패키지 구조도 함께 잡아주세요!
There was a problem hiding this comment.
현재 selectedTab enum으로 화면을 전환하고 있는데, NavController + NavHost 기반의 Type-safe Navigation이 적용되지 않았습니다! @serializable + data object 방식으로 Route를 정의하고 composable<Route.Home> 형태로 바꿔주세요!
kotlin@Serializable sealed interface Route {
@Serializable data object Home : Route
@Serializable data object Shop : Route
...
}
composable<Route.Home> { HomeScreen() }
There was a problem hiding this comment.
BottomTab enum과 ProductUiModel 데이터 클래스도 별도 파일로 분리해주시면 더 좋습니다! 예를 들어 navigation/BottomTab.kt, model/ProductUiModel.kt처럼 분리해주세요!
There was a problem hiding this comment.
ShopScreen의 ProductGridCard에서 하트 아이콘이 표시되지만 클릭 이벤트가 연결되어 있지 않습니다! 하트 클릭 시 isWishlisted 상태가 변경되도록 onWishClick 람다를 추가해주세요!
📌 PR 제목
🔗 관련 이슈
Closes #이슈번호
✨ 변경 사항
🔍 테스트
📸 스크린샷 (선택)
🚨 추가 이슈