[swift] SwiftyUserDefaults를 사용하여 사용자의 앱 사용 기록을 저장하는 방법은 어떻게 되나요?

SwiftyUserDefaults란?

SwiftyUserDefaults는 UserDefaults를 사용하기 쉽게 만들어주는 라이브러리입니다. UserDefaults는 간단한 데이터를 사용자 디폴트로 저장할 수 있는 기능을 제공하는 iOS의 내장 데이터 저장소입니다.

설치

SwiftyUserDefaults를 사용하기 위해 CocoaPods를 이용하여 프로젝트에 라이브러리를 추가할 수 있습니다. Podfile에 다음을 추가합니다.

pod 'SwiftyUserDefaults'

그리고 pod install 명령어를 실행하여 SwiftyUserDefaults를 설치합니다.

사용법

  1. 사용자의 앱 사용 기록을 저장할 구조체를 선언합니다.
import SwiftyUserDefaults

struct AppUsageInfo {
    let lastLoggedInDate: Date
    let totalLaunchCount: Int
}

extension AppUsageInfo: DefaultsSerializable { }
  1. UserDefaults를 사용하여 데이터를 저장하고 불러올 수 있도록 확장합니다.
extension DefaultsKeys {
    static let appUsageInfo = DefaultsKey<AppUsageInfo>("appUsageInfo")
}

extension DefaultsKeys where KeyType == AppUsageInfo {
    static let lastLoggedInDate = Key("lastLoggedInDate", defaultValue: Date())
    static let totalLaunchCount = Key("totalLaunchCount", defaultValue: 0)
}

extension SwiftyUserDefaults.UserDefaultsAdapter: UserDefaultsSettable { }

extension UserDefaults {
    static var appUsageInfo: KeyedUserDefaultsContainer<AppUsageInfo> {
        return .init(UserDefaults.standard, key: "appUsageInfo")
    }
}
  1. 데이터를 저장하고 불러올 수 있습니다.
// 데이터 저장
let appUsageInfo = AppUsageInfo(lastLoggedInDate: Date(), totalLaunchCount: 10)
UserDefaults.appUsageInfo[.lastLoggedInDate] = appUsageInfo.lastLoggedInDate
UserDefaults.appUsageInfo[.totalLaunchCount] = appUsageInfo.totalLaunchCount

// 데이터 불러오기
let lastLoggedInDate = UserDefaults.appUsageInfo[.lastLoggedInDate]
let totalLaunchCount = UserDefaults.appUsageInfo[.totalLaunchCount]

이렇게 SwiftyUserDefaults를 사용하여 사용자의 앱 사용 기록을 간편하게 저장하고 불러올 수 있습니다.

더 많은 정보와 사용 예시는 SwiftyUserDefaults GitHub 페이지에서 확인할 수 있습니다.