7주차 과제#6
Conversation
kyooonnnggg
left a comment
There was a problem hiding this comment.
구현해야 하는 섹션별로 스크롤, 카드, 섹션 컴포넌트를 분리해주셨더라고요.
분리를 자세히 한 만큼 파일별 코드의 역할이 명확하고 간결해서 보기에 정말 편했습니다.
저는 섹션별로 구분하고 타이틀 정도만 분리했는데 더 해보아야겠단 생각이 들었어요.
하단 탭바에 대해서 따로 파일 분리를 하고 그 파일을 루트뷰에 불러오시는 방법도 함께 제안드리고 싶습니당.
7주차 과제 고생하셨어요 !! 👍🏾
There was a problem hiding this comment.
저같경 . . tabItem을 반복하고 싶지 않아서 tabContent라는 함수를 따로 만들어주었습니다.
기능은 동일하지만 깔끔하게 적어보고 싶어서 넣었는데용 참고해보셔도 조을 것 같습니다 ㅎㅎ
TabView {
tabContent(SubscriptionView(), icon: "Subscribe", title: "구독")
tabContent(PurchaseView(), icon: "Category", title: "개별 구매")
tabContent(WebtoonView(), icon: "Wallet", title: "웹툰")
tabContent(SearchView(), icon: "Search", title: "찾기")
tabContent(LibraryView(), icon: "Folder", title: "보관함")
}
private func tabContent<Content: View>(
_ content: Content,
icon: String,
title: String
) -> some View {
content
.toolbarBackground(Color("appBlack"), for: .tabBar)
.toolbarBackground(.visible, for: .tabBar)
.tabItem {
Image(icon)
.renderingMode(.template)
Text(title)
}
}
}
There was a problem hiding this comment.
와 저랑 생각한게 완전히 똑같아요. (신기) 컴포넌트 빼기 장인으로 인정드립니다 ^^
There was a problem hiding this comment.
Model에 대한 파일 분리를 각각 하신 이유가 있는지 궁금합니다!!
There was a problem hiding this comment.
아!!!!!!!!!!!! 패딩 여기서 넣을걸... 훨씬 깔끔하네요........
저는 각 컴포넌트에 넣어줘서 코드가 더 복잡해진 것 같아요 완전 광명 찾음
| .tint(.watchaWhite) | ||
| .toolbarBackground(Color.black, for: .tabBar) | ||
| .toolbarBackground(.visible, for: .tabBar) | ||
| .toolbarColorScheme(.dark, for: .tabBar) |
There was a problem hiding this comment.
.background(Color("appBlack").ignoresSafeArea())
저도 앱 진입점에서 탭바 백그라운드 색상이 떴던 문제가 있었는데 요거 넣으니까 해결 됐던 거 같아여 시도해보시길
There was a problem hiding this comment.
Watgorithm으로 네이밍 제안드립니다. . . 어때욤 . . .
ser0kim
left a comment
There was a problem hiding this comment.
꼼꼼하게 구현해주신 거 같아서 코드리뷰하면서 많이 배웠습니다! 파일 분리를 어떻게 해야할지 감이 안와서 잘 못했는데, 참고해서 해보겠습니다~!! 졸프랑 병행하시는 와중에도 고생 많으셨어요!
There was a problem hiding this comment.
이런식으로 컴포넌트로 빼셨군요..! 참고해서 저도 빼보겠습니다 !! mainTitle, subTitle, showMoreButton 조합으로 다양한 헤더 케이스를 하나의 컴포넌트에서 처리할 수 있게 설계한 점이 인상적이었습니다. 재사용성이 높아 보여요!
| import SwiftUI | ||
|
|
||
| struct WelcomeView: View { | ||
| var onMainTapped: () -> Void = {} |
| } | ||
|
|
||
| var body: some View { | ||
| HStack() { |
There was a problem hiding this comment.
HStack은 기본 이니셜라이저를 사용할 경우 괄호를 생략해도 동일하게 동작해서 괄호 삭제해도 괜찮을 것 같습니다 😊
| Spacer() | ||
|
|
||
| if showMoreButton { | ||
| Button(action: {}) { |
There was a problem hiding this comment.
현재 버튼 액션이 비어 있는 부분이 많은데 이어지는 액션이 없어서 그런거지요??
🔗 7주차 과제
📄 작업 내용
✅ 기본과제
✅ 심화과제
💻 주요 코드 설명 및 Trouble Shooting 🚀
탭바
RootViewInfo.plist에서 Liquid Glass를 사용하지 않도록 설정하였습니다selectedTab을 state로 선언하였습니다가로 스크롤 뷰 구현
ForEach를 통해서 데이터를 출력하도록 구현하였습니다웰컴 뷰에서 메인 뷰로 이동
onMainTapped를 앱 진입접에서 받도록 구현하였습니다showMain상태를 선언해서 루트 뷰를 보여줄지, 웰컴 뷰를 보여줄지 정하도록 하였습니다onMainTapped함수에showMain을 true로 바꾸도록 설정하여 버튼 클릭시 루트뷰로 이동하도록 구현하였습니다👀 To Reviewers