-
[뉴스어플 정리] 3. 뷰모델 만들기iOS/뉴스어플(RxSwift) 2021. 5. 24. 21:12
지금까지 API에서 데이터를 가져와 모델을 만들었다.

뷰는 커스텀 테이블뷰셀과 테이블뷰를 이용해서 위와 같이 배치한다.
왼쪽에 이미지, 굵은글씨로 뉴스타이틀, 얇은글씨로 서브타이틀로 구성했다. 서브타이틀에는 모델의 description이 들어간다.
모델과, 뷰를 만들었고 이제 뷰모델을 만든다.
import Foundation import UIKit class NewsTableViewCellViewModel { var newsTitle: String? var subTitle: String? var urlToNews: String? var urlToImage: String? var newsImage: UIImage? = nil init(newsTitle: String?, subTitle: String?, urlToNews: String?, urlToImage: String?) { self.newsTitle = newsTitle self.subTitle = subTitle self.urlToNews = urlToNews self.urlToImage = urlToImage } }뷰의 뉴스타이틀과 서브타이틀에 들어갈 newsTitle, subTitle 프로퍼티를 만든다.
urlToNews은 셀을 터치했을때 뉴스링크로 들어가기 위해서 필요하다.
urlToImage는 뉴스이미지를 가져오기 위해서 필요하다.
뷰모델 프로퍼티를 초기화하기위한 init 함수를 만든다.
이미지를 매번 다운로드하면 속도가 느리기 때문에 저장해둘 newImage 프로퍼티를 만든다.
이런걸 이미지캐싱이라고 부르던데 이미지캐싱은 따로 공부해둬야겠다.
이 뷰모델을 만들고나서 중요했던 개념이 있다.
뉴스데이터를 받아서 만들었던 Observable<[Article]>을 가공해서
Observable<[ViewModel]>로 만드는 것이다.
이 부분은 이 다음글에서 이어서 정리하려고 한다.
'iOS > 뉴스어플(RxSwift)' 카테고리의 다른 글
[뉴스어플 정리] 5. 뷰모델을 테이블뷰에 붙이기 (0) 2021.05.24 [뉴스어플 정리] 4. 뉴스데이터를 뷰모델로 가공하기 (0) 2021.05.24 [뉴스어플 정리] 2. 뉴스데이터 가져오기 (0) 2021.05.24 [뉴스어플 정리] 1. NewsAPI 사용하기, 모델만들기 (0) 2021.05.24 뉴스어플 (0) 2021.05.24