Skip to content

Conversation

@minnnidev
Copy link
Collaborator

@minnnidev minnnidev commented Dec 6, 2022

🔥 Pull requests

🌴 작업한 브랜치

✅ 작업한 내용

홈 뷰에서 pageViewController을 이용하여 작업해서 뷰컨이 4개가 있어욥
그래서 각 뷰컨에 collectionView를 넣어줬고, 중복된 코드가 많아서 baseHomeViewController를 만들어 주고 거기에 collectionView를 만들어 줬슴다
그리고 각 뷰컨에서는 UICollectionViewDataSource에 해당되는 메소드들을 override 해 줬습니닷

❗️PR Point

전보다 깔끔해지긴 한 것 같아요... 근데... 이렇게 하는 게 맞는지는 모르겟어요,,, 🥲
피드백 대 환 영 ✨
지금 서버 운동 데이터가 없어져서 시간 탭은 볼 수 업쒀요

📸 스크린샷

(스크린샷 첨부해주세용)

closed #30

@minnnidev minnnidev added 🐰 미니 김민 ⚒️ REFACTOR 코드 리팩토링 labels Dec 6, 2022
@minnnidev minnnidev self-assigned this Dec 6, 2022
@meltsplit
Copy link
Contributor

meltsplit commented Dec 8, 2022

Wow! 전보다 중복되는 부분이 훨씬 줄고 간결해졌네욥!?
BaseHomeViewController로 부터 상속받고 collectionView 함수를 override하는게 매우 인상적이네요!

저는 이런 방법을 생각해봤어요! 참고해주세용

Home 폴더에는 두 ViewController만! 있다.

  • HomeViewController
  • HomeChildViewController

HomeChildViewController 에는 ViewType이라는 enum 이 존재하고 생성시 반드시 enum값을 초기화 해주어야한다.

enum ViewType{
case level
case myExercise
case time
case personal
}

이후 분기처리를 해야하는 부분에 switch문을 활용하여 특정 값을 넣어준다.

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
         switch viewType{ 
         case level: return levelData.count
         case time: return timeData.count 
         //이하 생략
}
     }

이후 HomeViewController에 들어갈 childVC를 모두 HomeChildeViewController로 하되 ViewType을 각각 다르게 지정해준다.

이 방법은 ViewController 내의 코드가 길어질 수 있지만 파일을 추가적으로 생성하지 않아도 된다는 장점이 있을 것 같아용!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⚒️ REFACTOR 코드 리팩토링 🐰 미니 김민

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Refactor] 홈 뷰 리팩토링

3 participants