@AppStorageとは?
Swiftで使用していたUserDefaultsをSwiftUIで使用可能にし、かつバインド可能な値にしてくれるプロパティラッパーです。
UserDefaultsに関しては以下記事で説明しています。
@AppStorageの使い方
使い方はとてもシンプルです。以下のように定義し@Stateと同じように使うことが可能です。
@AppStorage("key") var 変数名 = ""
例:TextEditorの内容をAppStorageに覚えさせておくコード

import SwiftUI
struct ContentView: View {
@AppStorage("text") private var notes = ""
var body: some View {
NavigationView {
TextEditor(text: $notes)
.navigationTitle("TextView")
.padding()
}
}
}
保存・読み出しのタイミングは?
- 保存:値に変化があるタイミングで保存してくれる
- 読み出し:onApperの段階ではすでに読み込まれている
対応している型は?
UserDefaultsと同様です。
・boolean、integer、float、double、string、array、dictionary、Data
まとめ
@AppStorageはUserDefaultsをSwiftUIでバインド可能な値として使えるプロパティラッパーです。
環境
・Swift 5.7.2
・Xcode 14.2
・iOS 16.2
おすすめ参考書籍
図とサンプルコードが多くわかりやすく、手を動かしながら学べるのはもちろんですが、状態やデータフローに関する解説や、swiftuiから uikitを使う方法、uikitから swiftuiを使う方法などフレームワークの関連性まで説明していてとても参考になります。
コメント