shared_preferences_typed 1.1.0 copy "shared_preferences_typed: ^1.1.0" to clipboard
shared_preferences_typed: ^1.1.0 copied to clipboard

A wrapper around shared_preferences to provide type safety.

Typed Shared Preferences #

pub package

A type-safe wrapper around shared_preferences, inspired by ts-localstorage.

Why? #

  • Dart compiler now prevents you from writing a bool to an int key
  • You can organize everything related to [SharedPreferences] in one file, not just the string keys
  • You don't need to call SharedPreferences.getInstance() anywhere anymore

Usage #

  • You create a PrefKey or a PrefKeyNullable, pass a string as a key and a default value that's returned when the value doesn't exist in the SharedPreferences.
  • In case of PrefKeyNullable, the default value is still required to guarantee type safety, but it's not actually used anywhere

Check test/shared_preferences_typed_test.dart for a more detailed example, here are the most common use cases:

Basic example (non-nullable) #

/// Description
const key = PrefKey("some_key", true);

final valueBefore = await key.read(); // -> true (default value)
await key.write(false); // -> Value is now false

Basic example (nullable) #

/// Description
const key = PrefKeyNullable("some_key", true);

final valueBefore = await key.read(); // -> null
await key.write(false); // -> Value is now false

Existing SharedPreferences instance (non-nullable) #

final prefs = await SharedPreferences.instance();

/// Description
const key = PrefKey("some_key", true);

final valueBefore = await key.readSync(prefs); // -> true (default value)
await key.write(false); // -> Value is now false

Existing SharedPreferences instance (nullable) #

final prefs = await SharedPreferences.instance();

/// Description
const key = PrefKeyNullable("some_key", true);

final valueBefore = await key.readSync(prefs); // -> null
await key.writeSync(false, prefs); // -> Value is now false

Additional information #

  • Using an existing SharedPreferences instance has no performance gain if you don't also use it elsewhere. However, the sync methods have benefits when you really can't have await somewhere.
1
likes
120
pub points
24%
popularity

Publisher

unverified uploader

A wrapper around shared_preferences to provide type safety.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-2-Clause (LICENSE)

Dependencies

flutter, shared_preferences

More

Packages that depend on shared_preferences_typed