[swift] SwiftyUserDefaults와 함께하는 위치 추적 설정 관리하기

개발을 하다보면 사용자의 위치나 설정을 다루는 일이 자주 있습니다. 이러한 작업을 간편하게 처리하기 위해 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 페이지를 참고하세요.