[swift] SwiftyUserDefaults의 기능

SwiftyUserDefaults는 Swift 언어로 작성된 라이브러리로, UserDefaults를 더욱 간편하게 사용할 수 있게 해줍니다. 이 라이브러리를 사용하면 UserDefaults를 좀 더 직관적이고 타입 안전한 방식으로 사용할 수 있으며, 다양한 타입에 대한 지원도 제공합니다.

기능 목록

  1. 타입 안전한 UserDefaults 속성 사용
  2. 기본 타입, 커스텀 타입 등 다양한 타입 지원
  3. 키 존재 여부 확인
  4. 기본값 설정 및 제거
  5. 여러 설정값 동시에 저장 및 로드
  6. 배열, 딕셔너리 등 컬렉션 타입 저장 및 로드
  7. 저장된 값의 삭제 및 초기화

타입 안전한 UserDefaults 속성 사용

SwiftyUserDefaults를 사용하면 UserDefaults에 저장된 값을 타입에 맞게 직접 접근할 수 있습니다. 예를 들어, UserDefaults에 “username”이라는 키로 저장된 값을 String 타입으로 가져오고 싶다면 아래와 같이 코드를 작성할 수 있습니다.

let username: String? = Defaults[.username]

다양한 타입 지원

SwiftyUserDefaults는 Bool, Int, Double, String과 같은 기본 타입뿐만 아니라, 커스텀 타입에 대해서도 지원합니다. 커스텀 타입을 UserDefaults에 저장하고 싶다면 해당 타입이 Codable 프로토콜을 준수하도록 구현해주어야 합니다.

struct User: Codable {
    let name: String
    let age: Int
}

let user = User(name: "John", age: 30)
Defaults[.currentUser] = user

키 존재 여부 확인

UserDefaults에 특정 키가 이미 저장되어 있는지 여부를 확인할 수 있습니다. 다음 코드는 “isLoggedIn”이라는 키가 UserDefaults에 저장되어 있는지를 확인하는 예시입니다.

if Defaults.hasKey(.isLoggedIn) {
    // isLoggedIn 키가 이미 저장되어 있음
} else {
    // isLoggedIn 키가 아직 저장되지 않음
}

기본값 설정 및 제거

UserDefaults에 특정 키에 대한 기본값을 설정하거나, 기본값을 제거할 수 있습니다. 아래는 “themeColor” 키의 기본값을 UIColor.white로 설정하고, 이를 제거하는 코드입니다.

Defaults[.themeColor].setDefaultValue(.white)
Defaults[.themeColor].removeDefaultValue()

여러 설정값 동시에 저장 및 로드

SwiftyUserDefaults를 사용하면 여러 설정값을 동시에 저장하고 로드하는 것이 가능합니다. 아래는 여러 설정값을 한 번에 저장하고 로드하는 예시입니다.

Defaults.batchUpdate {
    $0[.isLoggedIn] = true
    $0[.username] = "John"
    $0[.age] = 30
}

배열, 딕셔너리 등 컬렉션 타입 저장 및 로드

SwiftyUserDefaults는 배열, 딕셔너리 등의 컬렉션 타입에 대한 저장 및 로드도 지원합니다. 예를 들어, 배열을 UserDefaults에 저장하고 싶다면 아래와 같이 코드를 작성할 수 있습니다.

let fruits = ["apple", "banana", "orange"]
Defaults[.favoriteFruits] = fruits

저장된 값의 삭제 및 초기화

UserDefaults에 저장된 값들을 삭제하거나 초기화하는 것 역시 SwiftyUserDefaults로 가능합니다. 아래는 “isLoggedIn”과 “username” 키에 저장된 값을 삭제하고 초기화하는 코드입니다.

Defaults[.isLoggedIn] = nil
Defaults[.username].reset()

참고 자료