Skip to content

Create Week07 Mission1,2,3#37

Open
Hyerin-Jeong wants to merge 1 commit into
mainfrom
Week07/LinLin
Open

Create Week07 Mission1,2,3#37
Hyerin-Jeong wants to merge 1 commit into
mainfrom
Week07/LinLin

Conversation

@Hyerin-Jeong
Copy link
Copy Markdown
Contributor

📝 미션 번호

N주차 Misson N

📋 구현 사항

📎 스크린샷

✅ 체크리스트

  • Merge 하려는 브랜치가 올바르게 설정되어 있나요?
  • 에뮬레이터 또는 실제 기기에서 정상 동작하나요?
  • 불필요한 주석 및 Log가 제거되었나요?

🤔 질문 사항

@Dawon-Y Dawon-Y self-requested a review May 11, 2026 04:51
@Dawon-Y Dawon-Y assigned Dawon-Y and Hyerin-Jeong and unassigned Dawon-Y May 11, 2026
@Dawon-Y
Copy link
Copy Markdown
Contributor

Dawon-Y commented May 17, 2026

안녕하세요! 7주차 과제 진행하시느라 고생 많으셨습니다💚


Week06/LinLin 주요 UI/네비게이션 코드 리뷰

1. 총평

  • Fragment 기반 화면(CartFragment & OnCartOrderListener) + Compose 기반 화면/컴포넌트가 혼합되어, XML-Compose 이행기 과제를 잘 소화하셨습니다.
  • BottomBar, Product카드, Grid카드, Screen 등 각각을 독립적 컴포저블로 설계하여 유지보수성과 확장성이 높습니다.
  • 코드 전반(네이밍, 컬러, 컴포즈 관용구, SRP 등)에서 개발자 경험이 느껴지는 코드입니다.

2. 파일별 주요 피드백

2.1. CartFragment.kt / OnCartOrderListener.kt

  • Fragment+ViewBinding 기반의 장바구니 화면 구현 (레거시 Activity/Fragment 요구에 대응)
  • 주문 버튼 클릭 시, OnCartOrderListener 인터페이스로 MainActivity(Host)와 decoupling → 액티비티-프래그먼트 이벤트 구조의 모범
  • 뷰 바인딩 메모리 누수 방지 및 생명주기 관리 잘 되어 있음 (_binding = null)
  • 실전에서 필요한 Navigation 연결(예: "주문하기 → Shop 탭 이동" 등)을 확장 구현하기 좋은 기반이 됩니다.

2.2. LinLinBottomBar.kt

  • 커스텀 BottomNavigationBar를 Compose로 직접 제작
    • 색상/패딩/WindowInsets까지 신경써서, 실 기기 대응력 Good
    • 각 탭 아이콘/라벨이 재사용 가능한 컴포저블(BottomTabItem)로 설계
    • 선택/비선택 분기, 컬러/폰트 Weight 변화 등 시안 매칭도 우수
    • NavigationBars Padding 등 최신 Compose API까지 활용
  • 현재 탭감지(현재 화면 체크)도 NavDestination로 처리 → 네비게이션 혼동 없고 안전하게 동작

2.3. ProductCard.kt / ShopGridCard.kt

  • ProductCard
    • 상품명, 가격, 이미지 등 "홈/추천" 등에 쓸 수 있는 단일 상품 카드로, 코드가 간결하면서도 확장 유연
    • 최대 1줄, overflow ELLIPSIS, RoundedCorner/Spacing 모두 적용
  • ShopGridCard
    • 쇼핑 목록용 그리드 상품 카드
    • 위시(하트), BestSeller 뱃지, 색상/서브타이틀 등 각 상품 속성을 조건부 렌더링
    • MaterialTheme 의존으로 다크/라이트 대응도 쉽도록 설계
    • Icon(위시) 처리도 조건에 따라 아이콘/색상 변경 방식 좋음

2.4. screens/CartScreen.kt, HomeScreen.kt, ShopScreen.kt

  • CartScreen
    • Compose로 "비어있는 장바구니+주문" 화면 정석 구현.
    • 텍스트 스타일, 색상, 버튼 configuration 모두 시안과 잘 맞춤
  • HomeScreen
    • 상단 날짜, 타이틀, Hero 이미지, 패딩/스페이싱 배치 모두 깔끔
    • 오늘 날짜 dynamic 포맷까지 → 실질적인 “오늘날짜” 대응 완료
  • ShopScreen
    • Material3 TabRow("전체", "Tops...", "Shoes")로 탭 구현
    • Tab별 분리, 클릭시 상태 전환, 나머지 영역 비워둠(동적 컨텐츠 확장 예상)
    • PrimaryTabRow 사용 등 최신 Material API 잘 활용

3. 잘한 점/특장점

  • XML(Fragment) ↔ Compose 병행 미션이 많을 때 모범 사례입니다
  • 컴포저블 분리가 우수, 중복 최소/유지보수 최적화
  • 스타일/색상/폰트/공백 등 Figma 클래스 요구 충실 반영
  • 하위 컴포넌트를 편하게 조합/재사용하게 설계(Shop/ProductCard 등)

4. 개선/추천 포인트

  • (Optional) BottomBar/탭 상태를 rememberSaveable로 분리하여 앱 재실행, orientation 변경 등에 더 강건하게
  • Dimen/Color 상수화, 테마화: 여러 곳에서 쓰는 값은 최상단 컬러 파일 따로 분리해도 관리가 더 편해집니다.
  • 탭(Tab) 전환 등은 향후 navigation-compose와 연동시 navigationController currentDestination 변환+selectTab 조합도 고려 가능

5. 마무리/한줄평

Fragment+Compose 병행 상황에서, 기능/구조/스타일 관리까지 실무 수준으로 모두 구현하셨습니다.
추가 기능(상품목록 연동, StateDriven UI, navigation 확장)만 붙이면 바로 실전 프로젝트로 확장 가능한 탄탄한 코드 구조입니다.

질문/심화 피드백 필요하시면 언제든 추가로 말씀해 주세요!

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.

2 participants