Skip to content

Instantly share code, notes, and snippets.

@simonpham
Last active March 28, 2024 11:06
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save simonpham/4aaab5a8ddfcae06fdb0057aeb6230b8 to your computer and use it in GitHub Desktop.
Save simonpham/4aaab5a8ddfcae06fdb0057aeb6230b8 to your computer and use it in GitHub Desktop.
/// Use SharedPreferences in Flutter effortlessly
/// https://medium.com/@simonpham/use-sharedpreferences-in-flutter-effortlessly-835bba8f7418
// utils/shared_prefs.dart
class SharedPrefs {
late final SharedPreferences _sharedPrefs;
static final SharedPrefs _instance = SharedPrefs._internal();
factory SharedPrefs() => _instance;
SharedPrefs._internal();
Future<void> init() async {
_sharedPrefs = await SharedPreferences.getInstance();
}
String get username => _sharedPrefs.getString(keyUsername) ?? "";
set username(String value) {
_sharedPrefs.setString(keyUsername, value);
}
}
// constants/strings.dart
const String keyUsername = "key_username";
// main.dart
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await SharedPrefs().init();
runApp(
MyApp(),
);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Text("Hi ${SharedPrefs().username}"),
),
);
}
}
@Lammpo
Copy link

Lammpo commented Apr 11, 2023

I'm sry I meant '_instance'. Anyway I'm checking your awesome package

@simonpham
Copy link
Author

I'm sry I meant '_instance'. Anyway I'm checking your awesome package

I have updated the code. Apologize for my mistake.

  static final SharedPrefs _instance = SharedPrefs._internal();

@Dhruvmtzinfotech
Copy link

how many years experience in flutter?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment