PrfyJson<T> class
An isolate-safe preference object specialized for storing JSON-serializable objects.
This class provides type-safe access to complex objects stored in SharedPreferences by serializing them to JSON. Unlike PrfJson, it doesn't use in-memory caching, making it suitable for use across multiple isolates where cached values might become stale.
Example:
class Settings {
final bool darkMode;
final String locale;
Settings({required this.darkMode, required this.locale});
factory Settings.fromJson(Map<String, dynamic> json) => Settings(
darkMode: json['darkMode'] ?? false,
locale: json['locale'] ?? 'en_US',
);
Map<String, dynamic> toJson() => {
'darkMode': darkMode,
'locale': locale,
};
}
final settingsPreference = PrfyJson<Settings>(
'app_settings',
fromJson: Settings.fromJson,
toJson: (settings) => settings.toJson(),
defaultValue: Settings(darkMode: false, locale: 'en_US'),
);
await settingsPreference.set(Settings(darkMode: true, locale: 'fr_FR'));
final settings = await settingsPreference.get(); // Always reads from disk
- Inheritance
-
- Object
- BasePrfObject<
T> - PrfyJson
- Available extensions
Constructors
Properties
-
adapter
→ PrfAdapter<
T> -
Gets the adapter used to convert between the object and its JSON representation.
no setteroverride
- defaultValue → T?
-
Optional default value to use when no value exists for key.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → String
-
The key used to store this preference in SharedPreferences.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
existsOnPrefs(
) → Future< bool> -
Available on BasePrfObject<
Checks if the key exists in the default PrfService instance.T> , provided by the PrfOperationExtensions extension -
get(
) → Future< T?> -
Available on BasePrfObject<
Gets the value from the default PrfService instance.T> , provided by the PrfOperationExtensions extension -
getOrFallback(
T fallback) → Future< T> -
Available on BasePrfObject<
Gets the value or returns the provided fallback if the value is null.T> , provided by the PrfOperationExtensions extension -
getValue(
SharedPreferencesAsync prefs) → Future< T?> -
Gets the value from SharedPreferences.
inherited
-
isNull(
) → Future< bool> -
Available on BasePrfObject<
Checks if the value is null in the default PrfService instance.T> , provided by the PrfOperationExtensions extension -
isValueNull(
SharedPreferencesAsync prefs) → Future< bool> -
Checks if the stored value is null.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
remove(
) → Future< void> -
Available on BasePrfObject<
Removes the value from the default PrfService instance.T> , provided by the PrfOperationExtensions extension -
removeValue(
SharedPreferencesAsync prefs) → Future< void> -
Removes the value from SharedPreferences.
inherited
-
set(
T value) → Future< void> -
Available on BasePrfObject<
Sets the value using the default PrfService instance.T> , provided by the PrfOperationExtensions extension -
setValue(
SharedPreferencesAsync prefs, T value) → Future< void> -
Stores
value
in SharedPreferences.inherited -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited