[swift] SwiftyUserDefaults를 사용하여 사용자의 앱 사용 기록을 저장하는 방법은 어떻게 되나요?
SwiftyUserDefaults란?
SwiftyUserDefaults는 UserDefaults를 사용하기 쉽게 만들어주는 라이브러리입니다. UserDefaults는 간단한 데이터를 사용자 디폴트로 저장할 수 있는 기능을 제공하는 iOS의 내장 데이터 저장소입니다.
설치
SwiftyUserDefaults를 사용하기 위해 CocoaPods를 이용하여 프로젝트에 라이브러리를 추가할 수 있습니다. Podfile에 다음을 추가합니다.
pod 'SwiftyUserDefaults'
그리고 pod install
명령어를 실행하여 SwiftyUserDefaults를 설치합니다.
사용법
- 사용자의 앱 사용 기록을 저장할 구조체를 선언합니다.
import SwiftyUserDefaults
struct AppUsageInfo {
let lastLoggedInDate: Date
let totalLaunchCount: Int
}
extension AppUsageInfo: DefaultsSerializable { }
- 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")
}
}
- 데이터를 저장하고 불러올 수 있습니다.
// 데이터 저장
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 페이지에서 확인할 수 있습니다.