드디어 UI 완성 이제 지도 커스텀을 하자.
<aside> ✏️ 2022.09.15
오늘은 설정 UI를 완성하고 .. 지도에서 추가할 수 있는 기능들을 고민하다가 .. 코드 정리를 좀 했다 ..
설정 UI에 MVVM을 적용했고 .. URLSession도 Extension으로 관리해서 중복되는 코드를 정리했다
</aside>
사실 이 화면에서 MVVM로 나누는 것이 .. 의미가 있나 .. ? MVVM이 기억이 가물가물 .. 하기도 했고 프로젝트에 적용해보고 싶었기에 .. 도전 .. 해보았다.
가보자고?
MVVM이 적용된 부분만 보자면,
설정 UI의 경우 상단의 커스텀 네비게이션 바와 그 아래로 테이블 뷰가 위치된 화면이다.
설정 테이블 뷰에 들어가는 내용을 모델로 관리하고 뷰 모델을 중간 매개체로 두어서 관리를 했다.
Model
struct Setting {
let title: String
let subTitle: String?
let description: String?
}
ViewModel
주의할 것은 ViewModel은 UIKit를 상속받지 않는다. 모델을 참조해서 뷰에게 변경 사항을 전달하는 역할을 하기 때문이다.