SwiftUI AppStorage
What is AppStorage ?
@AppStorage has property wrappers designed to store data persistently. it has for user preferences are shared across the app.
Example
import SwiftUI
struct ContentView: View {
// Define a property using @AppStorage
@AppStorage("username") var username: String = "iPhone15"
var body: some View {
VStack {
Text("ios developer, \(username)!")
Button("Change Username") {
// Update the value stored in UserDefaults
username = "iPhone16"
}
}
}
}
What is SceneStorage ?
SceneStorage is a property wrapper type designed to persist data for individual scenes. It has multi-window or multi-tab app.
Example:-
struct SceneStorageExampleView: View {
领英推荐
@SceneStorage("scrollPosition") private var scrollPosition: Double = 0.0
var body: some View {
ScrollViewReader { proxy in
ScrollView {
VStack {
ForEach(0..<100, id: \.self) { index in
Text("Item \(index)")
.padding()
.id(index)
}
}
.onAppear {
proxy.scrollTo(Int(scrollPosition), anchor: .top)
}
.onDisappear {
scrollPosition = proxy.frame(in: .global).midY
}
}
}
}