개요
@AppStorage는 SwiftUI에서 사용되는 프로퍼티 래퍼의 하나로, 앱의 데이터를 간단하게 UserDefaults(사용자 기본 설정)에 저장하고 불러오는 기능을 제공한다. iOS 14부터 도입된 기능으로, 이전에는 @State와 UserDefaults.standard를 직접 조합하여 사용해야 했던 기능을 간편하게 사용할 수 있게 해준다.
사용 예시
@AppStorage 를 사용하여 저장할 데이터 타입에 맞게 프로퍼티를 선언한다.
예를 들어, 문자열 데이터를 저장하려면 다음와 같이 선언할 수 있다.
@AppStorage("username") var username: String = ""
위 코드에서 "username"은 UserDefaults에서 이 데이터를 식별하기 위한 key로 사용한다.
데이터를 변경하면 자동으로 UserDefaults에 저장되고, 뷰가 업데이트된다.
활용
import SwiftUI
struct ContentView: View {
@AppStorage("username") var username: String = ""
var body: some View {
VStack {
Text("Hello, \(username)!")
Button("Change Username") {
username = "SeoU" // 사용자 이름을 "SeoU"으로 변경하면 UserDefaults에 저장
}
}
}
}
❗️@AppStorage는 UserDefaults를 사용하여 간단한 데이터를 저장하고 불러오는 데 유용한 기능이지만, 복잡한 데이터나 구조체를 저장하기 위해서는 다른 방법을 사용해야 할 수도 있다.
UserDefaults
UserDefaults는 iOS, macOS, watchOS, tvOS 등의 앱에서 간단한 설정값, 사용자 기본 설정, 앱 상태 등을 저장하는 데 사용되는 인터페이스.
앱이 종료되어도 데이터가 유지되기 때문에 간단한 데이터 영속성을 구현하는 데 유용하다.
데이터를 "Key-Value" 형태로 저장하며, 주로 기본 데이터 타입을 저장할 수 있다.
사용자가 설정한 기본 값, 앱의 마지막 상태, 앱 버전 등을 저장하거나 읽어오는 데 사용
주의할 점은, UserDefaults는 작은 데이터나 사용자 설정과 같이 간단한 데이터를 저장하는 데 적합.
대용량의 데이터나 보안을 요구하는 민감한 정보를 저장하는 데에는 적합하지 않다.
https://developer.apple.com/documentation/swiftui/appstorage
'iOS > SwiftUI' 카테고리의 다른 글
[Day 2] 부울, 문자열 결합 (0) | 2023.08.01 |
---|---|
[Day 1] 변수와 상수, 문자열, 숫자 (0) | 2023.07.31 |
[XCODE] MARK 사용하기 (0) | 2023.07.30 |
[SwiftUI] How to add color gradients (0) | 2023.07.28 |
[SwiftUI] Color Extension (0) | 2023.07.28 |