3주차 과제#4
Conversation
| } | ||
|
|
||
| private func setUI() { | ||
| let appearance = UITabBarAppearance() |
There was a problem hiding this comment.
UITabBarAppearance 라는게 있군요!!ㅠㅠ 전 기본 리퀴드 스타일 제거를 못해서 커스텀 탭바를 만들었는데!
가려운곳을 긁어주셨습니다 .. 굿굿👍
There was a problem hiding this comment.
구독 탭 아이콘도 피그마 잘 찾으면 미선택시 회색 아이콘 있습니다..!
지금은 select 상태만 적용되어 다른 탭으로 이동시에도 구독탭이 선택된 것 같아 보이네용
| private let watgorijeumSubLabel = SectionSubLabel(title: "예능부터 드라마까지!") | ||
| private let watgorijeumMoreButton = MoreButton() |
hemssy
left a comment
There was a problem hiding this comment.
3차 세미나 과제 고생하셨습니다👏👏
공통 컴포넌트 분리도 잘하셨고 코드가 전체적으로 일관성있네용
합동세미나 파이팅하세요
|
|
||
| private func setViewControllers() { | ||
| let subscribeVC = SubscribeViewController() | ||
| let purchseVC = PurchaseViewController() |
There was a problem hiding this comment.
여기 변수명 purchseVC -> purchaseVC로 오타수정해주세용
There was a problem hiding this comment.
베이스뷰컨 활용하셨군요!! 👍👍
앞으로 추가 뷰 점점 많아질텐데 이렇게 잘 잡아두면 나중에 편할거에용
| class CommingSoonViewController: BaseUIViewController { | ||
| // MARK: - 프로퍼티 | ||
|
|
||
| private let collectionView = UICollectionView(frame: .zero,collectionViewLayout: UICollectionViewLayout()) |
There was a problem hiding this comment.
지금은 컬뷰를 기본 UICollectionViewLayout으로 잡고나서 setCollectionLayout에서 다시 교체하고 있는데,
처음 만들 때 UICollectionViewFlowLayout를 넣어주는 방법도 괜찮을것같아용
| private let collectionView = UICollectionView(frame: .zero,collectionViewLayout: UICollectionViewLayout()) | ||
| private var itemList = CommingSoonItemModel.dummy() | ||
|
|
||
| final let inset = UIEdgeInsets(top: 0, left: 14, bottom: 0, right: 0) |
There was a problem hiding this comment.
이렇게 외부에서 접근안하는거는 private 붙여서 관리해주면 좋을것같아요!!
| view.addSubviews(headerView, scrollView) | ||
| scrollView.addSubview(contentView) | ||
| addChilds(bannerView, newContentCollectionView, watgorijeumCollectionView, commingSoonCollectionView, watchaPartyCollectionView) | ||
| contentView.addSubviews(bannerView.view, newContentLabel, newContentSubLabel, newContentCollectionView.view, watgorijeumImg, watgorijeumSubLabel, watgorijeumMoreButton, watgorijeumCollectionView.view, commingSoonLabel, commingSoonMoreButton, commingSoonCollectionView.view, watchaPartyLabel, watchaPartyMoreButton, watchaPartyCollectionView.view) |
kwonseokki
left a comment
There was a problem hiding this comment.
안녕하세요 성환님~ 리뷰가 조금 늦어졌는데
전체적으로 컴포넌트도 잘 나누었다고 생각이 들고 코드도 깔끔하게 작성해 주신 것 같아요
별다른 리뷰 사항은 눈에 보이지 않아서 남겨두신 질문에 대한 제 생각을 남겨봤습니다.
-
베이스뷰컨을 만들어서 컬렉션뷰컨에 채택해서 사용하고있었는데, 컬렉션뷰 같은 경우에는 베이스뷰컨을 사용하기보다는 따로 컬렉션뷰에서 사용 할 클래스를 새로 만드는게 좋을까요?
-> 컬렉션뷰에서 필요한 기능들이 공통적으로 베이스뷰컨에 있다면 그대로 사용해도 괜찮다고 생각하나 컬렉션뷰에 강하게 결합된 기능들이 많아진다면 그때가서 분리해도 괜찮다고 생각합니다. -
현재 UIViewControlller익스텐션으로 addchild와 didMove()를 addChilds 메서드를 사용하면 같이 설정되도록 구현해놓았는데, 역할 분리 및 코드 가독성을 위해서 따로 분리하는게 좋을까요?
-> 이것도 같은 맥락으로 addchild, didMove 정도는 공통적으로 자주 사용되는 정도라면 괜찮다고 생각합니다 다만 특정화면 로직이나 기능에대한 결합도가 생길 우려가 있다면 그떄 가서 분리를 고려해도 괜찮을 것 같아요 -
컬렉션뷰나 셀 같은 클래스는 폴더구조를 어떻게 정리하면 좋을까요..!
-> 저는 보통 Feature를 기준으로 폴더 내부에 VC, Component 폴더를 만들어두고(ex. Feature/Component/SomeFeatureCell...) 그안에서 관리합니다 다만 이런 컨벤션적인 부분은 정답이 있다기보다 팀 컨벤션 영향이 큰 부분이라 팀 컨벤션을 따라가거나 다른 레포 구조를 참고해서 일관성있는 방향으로 설정하는게 중요한 것 같습니다.
|
|
||
| // MARK: - 레이아웃 | ||
|
|
||
| private func setUp() { |
There was a problem hiding this comment.
별건 아니지만 setUI 라던지 어떤것을 setup 해주는지 네이밍 해줘도 괜찮을 것 같네요~
🔗 3주차 과제
📄 작업 내용
✅ 기본과제
✅ 심화과제
💻 주요 코드 설명 및 Trouble Shooting 🚀
메인 뷰로 이동하기
WelcomeViewController.swifttoMainButton에MainTabBarController로 이동하는 액션을 추가하였습니다navigation으로 할...까하다가 그건 아닌거같아서 찾아보니 주로 root뷰컨을 변경하는 방법을 사용한다고합니다탭바 구현하기
MainTabBarController.swiftUITabBarController를 이용해서 탭바를 구현하였습니다가로 스크롤 뷰 구현
WatchaPartyCollectionViewCell.swiftself.addSubview를 이용해서 레이아웃을 추가하면 버튼이 가려져서 보이지 않는 문제가 있었습니다 해당 문제를 해결하기 위해서contentView에subView를 추가하도록 하였습니다dataBind메서드를 생성하였습니다WatchaPartyViewController.swiftregister메서드를 사용해서CollectionView에 사용 할 셀을 지정하였습니다UICollectionViewDataSource를 상속해서 데이터를 셀에 주입하였습니다UICollectionViewDelegate는 비어있습니다구독 뷰 구현
SubscribeViewController.swiftSubscribeViewController에 인스턴스를 생성해서contentView에 추가했더니 뷰에 나타나지 않는 문제가 발생했습니다UIViewController를 추가하려면addChild를 써야한다는걸.. 알았습니다..addSubview로 연결하면 생명주기가 상위 뷰컨과 연결되지 않기때문이라 합니다UIViewController+.swiftaddchild와.didMove()를 반복하는 문제를 해결하기 위해서 익스텐션을 추가하였습니다📚 참고자료
👀 To Reviewers
심화과제는 세미나가 끝나고.. 시간이 남는다면 진행해보도록 하겠습니다
헤더는 스티키 헤더를 구현하기전에 임의로 구현한거라 밤티임니다...
UIViewControlller익스텐션으로addchild와didMove()를addChilds메서드를 사용하면 같이 설정되도록 구현해놓았는데, 역할 분리 및 코드 가독성을 위해서 따로 분리하는게 좋을까요?