목차


https://github.com/heerucan/Bookmark/issues/40

1. SettingView

@frozen
enum Setting: CaseIterable {
    case first
    case second
    case third

    var menu: [String] {
        switch self {
        case .first:
            return ["문의하기", "리뷰 남기기"]
        case .second:
            return ["백업하기", "복구하기"]
        case .third:
            return ["책갈피 소개"]
        }
    }
}

@frozen은 더 이상 변경값이 없다는 걸 컴파일러에게 알려줘서 효율 높임

CaseIterable은 열거형을 배열로 쓸 수 있게 해주는 프로토콜


2. SettingViewModel

final class SettingViewModel {
    let settingList = BehaviorRelay(value: Setting.allCases)
}

Relay를 적용해보았다. → Why?