ホーム » Swift » 【SwiftUI】SwiftUIでのUserDefaults:@AppStorageの使い方

【SwiftUI】SwiftUIでのUserDefaults:@AppStorageの使い方

【SwiftUI】SwiftUIでのUserDefaults:@AppStorageの使い方 Swift

@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を使う方法などフレームワークの関連性まで説明していてとても参考になります。

コメント

タイトルとURLをコピーしました