[swift] SwiftyUserDefaults를 사용하여 사용자 즐겨찾기 관리하기

SwiftyUserDefaults는 Swift에서 UserDefaults를 간편하게 사용할 수 있게 만든 라이브러리입니다. 이를 사용하면 새로운 모델 객체가 필요 없이 속성으로 바로 값을 저장하고 가져올 수 있습니다. 이번 블로그 포스트에서는 SwiftyUserDefaults를 사용하여 사용자의 즐겨찾기를 관리하는 방법을 알아보겠습니다.

1. 라이브러리 설치하기

SwiftyUserDefaults를 사용하기 위해 먼저 라이브러리를 설치해야 합니다. CocoaPods를 사용한다면 Podfile에 다음과 같이 추가하여 설치할 수 있습니다:

pod 'SwiftyUserDefaults'

설치 후 프로젝트를 업데이트하기 위해 터미널에서 pod install을 실행합니다.

2. 사용자 즐겨찾기 모델 생성하기

사용자의 즐겨찾기 정보를 저장하기 위해 UserFavorites라는 모델을 생성합니다. 이 모델에는 즐겨찾기한 항목에 대한 정보를 저장하는 속성들이 포함됩니다. 예를 들어, URL, 제목, 설명 등이 있을 수 있습니다.

import SwiftyUserDefaults

struct UserFavorites {
    @UserDefaultsOptionalKey("favoriteURL")
    static var favoriteURL: URL?
    
    @UserDefaultsOptionalKey("favoriteTitle")
    static var favoriteTitle: String?
    
    @UserDefaultsOptionalKey("favoriteDescription")
    static var favoriteDescription: String?
}

위의 코드에서 @UserDefaultsOptionalKey는 SwiftyUserDefaults 라이브러리에서 제공하는 속성 래퍼(wrapper)입니다. 각 속성은 UserDefaults에 저장될 키(key)를 가지며, @UserDefaultsOptionalKey로 표시된 속성은 값이 없는 경우에도 nil 값을 가질 수 있습니다.

3. 즐겨찾기 추가하기

사용자가 원하는 항목을 즐겨찾기에 추가하려면 다음과 같이 코드를 작성합니다:

UserFavorites.favoriteURL = URL(string: "https://example.com")
UserFavorites.favoriteTitle = "Example Website"
UserFavorites.favoriteDescription = "This is an example website"

위의 코드에서는 UserFavorites 모델의 각 속성에 값을 할당하여 UserDefaults에 저장합니다. 항목을 추가할 때마다 해당 속성에 새로운 값이 저장됩니다.

4. 즐겨찾기 가져오기

UserDefaults에 저장된 즐겨찾기 정보를 가져오기 위해서는 다음과 같이 코드를 작성합니다:

if let favoriteURL = UserFavorites.favoriteURL,
    let favoriteTitle = UserFavorites.favoriteTitle,
    let favoriteDescription = UserFavorites.favoriteDescription {
    // 가져온 값을 사용하여 즐겨찾기 항목을 처리합니다
    print("URL: \(favoriteURL)")
    print("Title: \(favoriteTitle)")
    print("Description: \(favoriteDescription)")
} else {
    print("No favorites found")
}

위의 코드에서는 각 속성이 nil이 아닌지 확인한 후, 값이 존재하는 경우 해당 값을 가져와 즐겨찾기 항목을 처리합니다. 속성 중 하나라도 값이 없는 경우 “No favorites found”를 출력합니다.

결론

SwiftyUserDefaults는 Swift에서 UserDefaults를 사용하기 편하게 만들어주는 유용한 라이브러리입니다. 이를 사용하여 사용자의 즐겨찾기와 같은 간단한 데이터를 저장하고 관리할 수 있습니다. 위의 예제를 참고하여 프로젝트에 적용해보세요.