Swift

[SwiftUI] AppStorage란?

쨈미니 2023. 7. 28. 02:26

 개요

@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

 

AppStorage | Apple Developer Documentation

A property wrapper type that reflects a value from and invalidates a view on a change in value in that user default.

developer.apple.com