[swift] SwiftyUserDefaults를 사용하여 테마 설정을 관리하는 방법은 어떻게 되나요?

SwiftyUserDefaults는 UserDefaults를 더 쉽게 사용할 수 있게 도와주는 라이브러리입니다. 이 라이브러리를 사용하면 기본 UserDefaults보다 간결하고 직관적인 코드를 작성할 수 있습니다. 여기에서는 SwiftyUserDefaults를 활용하여 테마 설정을 관리하는 방법에 대해 알아보겠습니다.

먼저, 프로젝트에 SwiftyUserDefaults를 설치해야 합니다. CocoaPods를 사용한다면 Podfile에 다음과 같이 추가하고, pod install 명령어를 실행하여 설치합니다.

pod 'SwiftyUserDefaults'

설치가 완료되었다면, 먼저 UserDefaults에 저장될 테마 설정을 모델로 만들어야 합니다. 예를 들어, 다음과 같이 Theme 모델을 만들어 보겠습니다.

import SwiftyUserDefaults

enum Theme: String, Codable, DefaultsSerializable {
    case light
    case dark
    case system
}

이후, UserDefaults에 테마 설정 값을 저장하고 가져오기 위한 키(Key)를 지정해줍니다. 예를 들어, 다음과 같이 키를 설정할 수 있습니다.

extension DefaultsKeys {
    static let theme = DefaultsKey<Theme?>("theme")
}

이제 설정 화면에서 테마를 변경할 때마다 UserDefaults의 테마 설정 값을 업데이트해야 합니다. 예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

Defaults.theme = .dark // 테마를 다크로 변경

let currentTheme = Defaults.theme ?? .system // 현재 테마 가져오기 (기본값은 시스템 테마)

마지막으로, 앱이 시작될 때 UserDefaults에서 설정된 테마 값을 가져와서 적용해야 합니다. 예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

let savedTheme = Defaults.theme ?? .system // UserDefaults에서 저장된 테마 값 가져오기 (기본값은 시스템 테마)

switch savedTheme {
case .light:
    // 밝은 테마를 적용하는 로직을 작성
case .dark:
    // 어두운 테마를 적용하는 로직을 작성
case .system:
    // 시스템 테마를 적용하는 로직을 작성
}

위와 같이 SwiftyUserDefaults를 사용하여 테마 설정을 관리하면 더욱 간결하고 편리하게 코드를 작성할 수 있습니다. SwiftyUserDefaults를 사용하면 UserDefaults를 다루는 작업을 단순화할 수 있으므로 개발 생산성을 향상시킬 수 있는 장점이 있습니다.

참고 자료: