드디어 UI 완성 이제 지도 커스텀을 하자.

<aside> ✏️ 2022.09.15

오늘은 설정 UI를 완성하고 .. 지도에서 추가할 수 있는 기능들을 고민하다가 .. 코드 정리를 좀 했다 ..

설정 UI에 MVVM을 적용했고 .. URLSession도 Extension으로 관리해서 중복되는 코드를 정리했다

</aside>

기능

설정 화면

사실 이 화면에서 MVVM로 나누는 것이 .. 의미가 있나 .. ? MVVM이 기억이 가물가물 .. 하기도 했고 프로젝트에 적용해보고 싶었기에 .. 도전 .. 해보았다.

Untitled

가보자고?

MVVM이 적용된 부분만 보자면,

설정 UI의 경우 상단의 커스텀 네비게이션 바와 그 아래로 테이블 뷰가 위치된 화면이다.

설정 테이블 뷰에 들어가는 내용을 모델로 관리하고 뷰 모델을 중간 매개체로 두어서 관리를 했다.

Model

struct Setting {
    let title: String
    let subTitle: String?
    let description: String?
}

ViewModel

주의할 것은 ViewModel은 UIKit를 상속받지 않는다. 모델을 참조해서 뷰에게 변경 사항을 전달하는 역할을 하기 때문이다.