[swift] SwiftyUserDefaults를 사용하여 데이터 저장하기

Swift에서 데이터를 저장하고 검색할 때 유용한 라이브러리인 SwiftyUserDefaults에 대해 알아봅시다.

SwiftyUserDefaults란?

SwiftyUserDefaults는 UserDefaults를 좀 더 쉽고 간결하게 사용할 수 있도록 도와주는 라이브러리입니다. 기존의 UserDefaults보다 간편한 문법과 유형 안전성을 제공하여 개발자들이 데이터를 저장하고 검색하기 쉽게 만들어줍니다.

설치하기

SwiftyUserDefaults를 사용하기 위해 먼저 CocoaPods나 Carthage를 통해 설치해야 합니다.

CocoaPods를 사용하는 경우

Podfile에 다음 내용을 추가하고 pod install 명령어를 실행합니다.

pod 'SwiftyUserDefaults'

Carthage를 사용하는 경우

Cartfile에 다음 내용을 추가하고 carthage update 명령어를 실행합니다.

github "SwiftyUserDefaults/SwiftyUserDefaults"

사용하기

  1. SwiftyUserDefaults를 import합니다.
import SwiftyUserDefaults
  1. 데이터 타입을 확장하여 UserDefaults에서 사용할 수 있는 속성을 추가합니다.

예를 들어, 사용자의 설정을 저장하고 검색하는 코드를 작성해보겠습니다.

extension DefaultsKeys {
    var isNotificationsEnabled: DefaultsKey<Bool> { .init("isNotificationsEnabled", defaultValue: true) }
    var selectedTheme: DefaultsKey<String> { .init("selectedTheme", defaultValue: "Light") }
}

struct UserSettings {
    var isNotificationsEnabled: Bool {
        get { Defaults[.isNotificationsEnabled] }
        set { Defaults[.isNotificationsEnabled] = newValue }
    }
    
    var selectedTheme: String {
        get { Defaults[.selectedTheme] }
        set { Defaults[.selectedTheme] = newValue }
    }
}
  1. 앱 내에서 UserData라는 구조체를 만들어 사용자 설정을 관리합니다.
struct UserData {
    static var settings = UserSettings()
}
  1. 저장된 데이터에 접근하고 수정합니다.
UserData.settings.isNotificationsEnabled = false
let isNotificationsEnabled = UserData.settings.isNotificationsEnabled
print(isNotificationsEnabled) // false

UserData.settings.selectedTheme = "Dark"
let selectedTheme = UserData.settings.selectedTheme
print(selectedTheme) // Dark

결론

SwiftyUserDefaults는 Swift에서 데이터를 저장하고 검색하는 작업을 간편하게 만들어주는 라이브러리입니다. 기존의 UserDefaults보다 훨씬 간결한 문법을 제공하여 개발자가 코드를 작성하는 데 시간을 절약할 수 있습니다. 이 라이브러리를 사용하여 앱에서 데이터를 저장하고 불러오는 작업을 더 효율적으로 처리해보세요!

References