iOS 프로젝트/클론

[iOS] 넷플릭스 클론 코딩 3. 이미지 표시

유정주 2023. 5. 15. 00:10
반응형

* 진행 코드는 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 역할과는 거리가 멀다고 생각해서 이또한 수정해서 구현해야겠습니다.

 

구현 내용

  1. 홈 TableHeaderView UI 변경
  2. CollectionView 등록
  3. 킹피셔로 UIImageView에 URL로 이미지 로드
  4. SearchController 구현

이번 구현에서는 ViewController에 CollectionView를 구현한게 대부분이었습니다.

 

URL을 이용한 UIImageView 표시

url을 이용해 이미지를 보여줘야하기 때문에 킹피셔 라이브러리를 이용했습니다.

원래는 제가 만든 JeongImageCache 라이브러리를 사용하려고 했는데요... (https://github.com/jeongju9216/JeongImageCache)

이미지를 제대로 표시되지 않는 현상이 발견되어 킹피셔로 구현하고 리팩토링 과정에서 교체하기로 결정했습니다.

참 아쉬웠네요 ㅠㅠ

 

TableHeaderView UI 변경

홈 화면의 TableHeaderView의 UI도 변경했습니다.

기존에는 Assets에 이미지를 넣어서 고정 이미지만 표시하였는데요.

API 결과 중 하나를 상단에 보여주는 것으로 변경했습니다.

보너스로 UI도 더 이쁘게 변경했습니다.

왼쪽이 영상의 오리지널이고, 오른쪽이 수정 결과입니다.

 

리팩토링 계획

  1. Combine을 이용해 SearchController 타이머 구현
  2. MVVM ViewModel 구현

 

다음 파트에서는 Youtube API를 활용해서 기능을 구현하던데 흥미롭더라고요.

다음 파트도 진행 후 포스팅하도록 하겠습니다.

 

감사합니다.


아직은 초보 개발자입니다.

더 효율적인 코드 훈수 환영합니다!

공감 댓글 부탁드립니다.

 

 

 

반응형