🏗️ Architecture & Data
Preferences & Secure Storage
IPreferences, SecureStorage, Android Keystore.

IPreferences — Simple Key-Value Storage

csharp
// Write
Preferences.Default.Set("username", "alice");
Preferences.Default.Set("dark_mode", true);
Preferences.Default.Set("font_size", 16);

// Read (with fallback defaults)
var user     = Preferences.Default.Get("username", "Guest");
var darkMode = Preferences.Default.Get("dark_mode", false);

// Remove / clear
Preferences.Default.Remove("username");
Preferences.Default.Clear();

SecureStorage — For Sensitive Values

csharp
// Store a token securely in the Android Keystore
await SecureStorage.Default.SetAsync("auth_token", token);

// Retrieve
var token = await SecureStorage.Default.GetAsync("auth_token");

// Remove
SecureStorage.Default.Remove("auth_token");
🔐
Never store passwords, tokens, or API keys in Preferences — it is unencrypted. Use SecureStorage which wraps the Android Keystore system.

Key Takeaways

Preferences uses Android SharedPreferences under the hood
SecureStorage wraps Android Keystore for encrypted storage
Always provide a default value as the second argument to Get
Use Preferences.Clear() with care — it removes all stored preferences at once
Lesson 18 of 30Architecture & Data
← Previous Next Lesson →