From 9a938b68c2e2d264d2561bbf0daa3d5db26d5a70 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Fri, 23 Jan 2026 14:05:35 -0600 Subject: [PATCH] updated UserDefaults demo to not use AppVersionKey Signed-off-by: Matt Bruce --- .../Services/AppStorageCatalog.swift | 1 + .../UserDefaults/AppVersionKey.swift | 2 +- .../UserDefaultsDemoValueKey.swift | 20 +++++++++++++++++++ .../Views/UserDefaultsDemo.swift | 6 +++--- 4 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 SecureStorageSample/StorageKeys/UserDefaults/UserDefaultsDemoValueKey.swift diff --git a/SecureStorageSample/Services/AppStorageCatalog.swift b/SecureStorageSample/Services/AppStorageCatalog.swift index 392ce2c..07b1791 100644 --- a/SecureStorageSample/Services/AppStorageCatalog.swift +++ b/SecureStorageSample/Services/AppStorageCatalog.swift @@ -10,6 +10,7 @@ struct AppStorageCatalog: StorageKeyCatalog { // Order here is purely for readability in audit reports. [ .key(.appVersion), + .key(.userDefaultsDemoValue), .key(.userPreferences), .key(.credentials), .key(.lastLocation), diff --git a/SecureStorageSample/StorageKeys/UserDefaults/AppVersionKey.swift b/SecureStorageSample/StorageKeys/UserDefaults/AppVersionKey.swift index f8ec567..1cc79ea 100644 --- a/SecureStorageSample/StorageKeys/UserDefaults/AppVersionKey.swift +++ b/SecureStorageSample/StorageKeys/UserDefaults/AppVersionKey.swift @@ -1,7 +1,7 @@ import Foundation import LocalData -/// UserDefaults key used in the demo and as a lightweight migration flag. +/// UserDefaults key used as a lightweight migration flag. extension StorageKey where Value == String { /// Stores the app version in standard UserDefaults. /// - Domain: UserDefaults (standard) diff --git a/SecureStorageSample/StorageKeys/UserDefaults/UserDefaultsDemoValueKey.swift b/SecureStorageSample/StorageKeys/UserDefaults/UserDefaultsDemoValueKey.swift new file mode 100644 index 0000000..3d910b8 --- /dev/null +++ b/SecureStorageSample/StorageKeys/UserDefaults/UserDefaultsDemoValueKey.swift @@ -0,0 +1,20 @@ +import Foundation +import LocalData + +/// UserDefaults key used exclusively by the UserDefaults demo screen. +extension StorageKey where Value == String { + /// Stores a demo value in standard UserDefaults. + /// - Domain: UserDefaults (standard) + /// - Security: None + /// - Sync: Automatic for small data + nonisolated static let userDefaultsDemoValue = StorageKey( + name: "user_defaults_demo_value", + domain: .userDefaults(suite: nil), + security: .none, + serializer: .json, + owner: "SampleApp", + description: "Stores a demo value for the UserDefaults screen.", + availability: .all, + syncPolicy: .automaticSmall + ) +} diff --git a/SecureStorageSample/Views/UserDefaultsDemo.swift b/SecureStorageSample/Views/UserDefaultsDemo.swift index 5cff22e..857d580 100644 --- a/SecureStorageSample/Views/UserDefaultsDemo.swift +++ b/SecureStorageSample/Views/UserDefaultsDemo.swift @@ -142,7 +142,7 @@ struct UserDefaultsDemo: View { isLoading = true Task { do { - let key = StorageKey.appVersion + let key = StorageKey.userDefaultsDemoValue try await StorageRouter.shared.set(inputText, for: key) statusMessage = "✓ Saved successfully" } catch { @@ -157,7 +157,7 @@ struct UserDefaultsDemo: View { isLoading = true Task { do { - let key = StorageKey.appVersion + let key = StorageKey.userDefaultsDemoValue let value = try await StorageRouter.shared.get(key) storedValue = value inputText = value // Sync to field @@ -177,7 +177,7 @@ struct UserDefaultsDemo: View { isLoading = true Task { do { - let key = StorageKey.appVersion + let key = StorageKey.userDefaultsDemoValue try await StorageRouter.shared.remove(key) storedValue = "" statusMessage = "✓ Removed successfully"