개발을 하다보면 사용자의 위치나 설정을 다루는 일이 자주 있습니다. 이러한 작업을 간편하게 처리하기 위해 SwiftyUserDefaults라는 라이브러리를 사용해보겠습니다.
SwiftyUserDefaults는 UserDefaults와 비슷한 기능을 제공하지만, 더 간편하고 더 타입 안정성이 높은 방식으로 UserDefaults를 다룰 수 있도록 도와줍니다.
SwiftyUserDefaults 설치하기
SwiftyUserDefaults를 사용하기 위해서는 먼저 Cocoapods를 통해 라이브러리를 설치해야 합니다. Podfile
에 다음과 같이 추가해주세요.
pod 'SwiftyUserDefaults'
그리고 터미널에서 pod install
명령어를 사용하여 라이브러리를 설치합니다.
위치 추적 설정 관리하기
우리는 예제로 사용자의 위치 추적 설정을 저장하고 관리하는 기능을 만들어보겠습니다. 이 기능은 사용자가 위치 추적을 허용하는지 여부를 저장하고, 이를 기반으로 위치 추적 기능을 켜거나 끌 수 있도록 제공할 것입니다.
먼저, SwiftyUserDefaults를 사용하여 위치 추적 설정을 저장하기 위한 Key를 정의합니다.
import SwiftyUserDefaults
extension DefaultsKeys {
static let locationTrackingEnabled = DefaultsKey<Bool>("locationTrackingEnabled")
}
위 코드에서 locationTrackingEnabled
Key를 DefaultsKey<Bool>
타입으로 정의합니다.
그리고 사용자의 위치 추적 설정을 다루기 위한 LocationTrackingManager
클래스를 만들어보겠습니다.
import CoreLocation
import SwiftyUserDefaults
class LocationTrackingManager {
static var isLocationTrackingEnabled: Bool {
get { return Defaults[\.locationTrackingEnabled] }
set { Defaults[\.locationTrackingEnabled] = newValue }
}
static func toggleLocationTracking() {
isLocationTrackingEnabled.toggle()
if isLocationTrackingEnabled {
startLocationTracking()
} else {
stopLocationTracking()
}
}
static func startLocationTracking() {
// 위치 추적 시작 로직 구현
}
static func stopLocationTracking() {
// 위치 추적 중단 로직 구현
}
}
위 코드에서 isLocationTrackingEnabled
를 통해 저장된 위치 추적 설정을 가져오고 설정할 수 있습니다. toggleLocationTracking()
메서드를 호출하면 위치 추적 설정을 토글할 수 있으며, 설정에 따라 startLocationTracking()
또는 stopLocationTracking()
을 호출하여 위치 추적을 시작하거나 중단할 수 있습니다.
위 코드를 사용하여 위치 추적 설정을 다루는 예제를 만들었습니다. SwiftyUserDefaults를 사용하면 UserDefaults를 간결하게 다룰 수 있으며, 타입 안정성을 높여 코드를 안전하게 작성할 수 있습니다.
더 자세한 내용은 SwiftyUserDefaults GitHub 페이지를 참고하세요.