[swift] SwiftyUserDefaults로 전체 앱 설정 관리하기

앱 개발 중에는 사용자 설정 및 환경 변수를 관리해야 할 때가 많습니다. 이러한 설정을 간단하게 관리하기 위해 SwiftyUserDefaults 라이브러리를 사용할 수 있습니다. 이 라이브러리는 Swift 언어를 사용하는 앱에서 UserDefaults를 보다 쉽고 간편하게 다룰 수 있게 해줍니다.

SwiftyUserDefaults 설치하기

SwiftyUserDefaults를 사용하기 위해서는 프로젝트의 Podfile에 다음과 같이 라이브러리를 추가해야 합니다.

pod 'SwiftyUserDefaults'

그런 다음 터미널을 열고 프로젝트 디렉토리로 이동한 후, pod install 명령어를 실행하여 라이브러리를 설치합니다.

SwiftyUserDefaults 사용하기

  1. SwiftyUserDefaults를 사용하기 위해 먼저 import SwiftyUserDefaults 구문을 추가해야 합니다.
import SwiftyUserDefaults
  1. 이제 UserDefaults에 저장할 각 항목의 타입을 정의합니다. 예를 들어, 앱 내에서 사용자 이름과 알림 설정 여부를 관리하기 위해 다음과 같이 정의할 수 있습니다.
extension DefaultsKeys {
    static let userName = DefaultsKey<String?>("userName")
    static let isNotificationEnabled = DefaultsKey<Bool>("isNotificationEnabled")
}
  1. 설정의 값을 저장하거나 가져오려면 다음과 같이 코드를 작성합니다.
//값 저장하기
Defaults[.userName] = "John Doe"
Defaults[.isNotificationEnabled] = true

//값 가져오기
let userName = Defaults[.userName]
let isNotificationEnabled = Defaults[.isNotificationEnabled]
  1. 기본값을 설정하려면 .defaultValue 속성을 사용하면 됩니다.
Defaults[.userName].defaultValue = "Guest"
Defaults[.isNotificationEnabled].defaultValue = false
  1. 설정 값이 변경될 때마다 알림을 받으려면 SwiftyEvents 라이브러리를 사용할 수 있습니다. 이 라이브러리를 사용하면 값이 변경될 때 자동으로 콜백 함수를 실행할 수 있습니다.
import SwiftyEvents

extension DefaultsAdapter: EventSource {
    public typealias Value = DefaultsAdapter
}

let defaultsChanged = Event<DefaultsAdapter>()
let defaults = DefaultsAdapter()

defaults.changed.addListener(defaultsChanged) { _ in
    // 설정 값이 변경될 때 실행할 코드 작성
}

위의 코드에서 defaultsAdapterUserDefaultsAdapter 인스턴스입니다. 설정 값이 변경될 때마다 defaultsChanged 이벤트에 대한 콜백 함수가 실행됩니다.

결론

SwiftyUserDefaults를 사용하면 앱 내에서 설정 값을 쉽게 관리할 수 있습니다. 사용자 이름, 알림 설정 등과 같은 간단한 설정부터 복잡한 설정까지 모두 SwiftyUserDefaults를 사용하여 효율적으로 관리할 수 있습니다. 이러한 라이브러리를 사용하면 앱 개발 과정에서 생산성을 향상시킬 수 있습니다.