* 진행 코드는 https://github.com/jeongju9216/Jetflix에서 볼 수 있고, PR에서 에피소드 단위로 코드를 확인할 수 있습니다.
서론
넷플릭스 클론 코딩 - 3 내용은 Amr 유튜브 채널의 Building Netflix App in Swift 5 and UIKit - (Xcode 13, 2021) 에피소드 7, 8, 9, 10 내용입니다.
에피소드 7, 8, 9, 10에서는 Upcoming 화면과 Search 화면에 CollectionView를 등록하고, 이미지를 보여주는 작업을 했습니다.
이 파트를 보면서 알게된 것은 ViewModel을 View에서 사용하는 Model로 구현하고 있다는건데요.
단어만 보면 틀린건 아닌거 같은데... MVVM에서의 VM 역할과는 거리가 멀다고 생각해서 이또한 수정해서 구현해야겠습니다.
구현 내용
- 홈 TableHeaderView UI 변경
- CollectionView 등록
- 킹피셔로 UIImageView에 URL로 이미지 로드
- SearchController 구현
이번 구현에서는 ViewController에 CollectionView를 구현한게 대부분이었습니다.
URL을 이용한 UIImageView 표시
url을 이용해 이미지를 보여줘야하기 때문에 킹피셔 라이브러리를 이용했습니다.
원래는 제가 만든 JeongImageCache 라이브러리를 사용하려고 했는데요... (https://github.com/jeongju9216/JeongImageCache)
이미지를 제대로 표시되지 않는 현상이 발견되어 킹피셔로 구현하고 리팩토링 과정에서 교체하기로 결정했습니다.
참 아쉬웠네요 ㅠㅠ
TableHeaderView UI 변경
홈 화면의 TableHeaderView의 UI도 변경했습니다.
기존에는 Assets에 이미지를 넣어서 고정 이미지만 표시하였는데요.
API 결과 중 하나를 상단에 보여주는 것으로 변경했습니다.
보너스로 UI도 더 이쁘게 변경했습니다.
왼쪽이 영상의 오리지널이고, 오른쪽이 수정 결과입니다.
리팩토링 계획
- Combine을 이용해 SearchController 타이머 구현
- MVVM ViewModel 구현
다음 파트에서는 Youtube API를 활용해서 기능을 구현하던데 흥미롭더라고요.
다음 파트도 진행 후 포스팅하도록 하겠습니다.
감사합니다.
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.