Summary - shared_preferences
- Flutter course
- Intermediate
- Lesson 40/99
- 4 min
Combine getInstance and set/get to build a settings screen.
Summary - shared_preferences
In this group, you learned to store key-value data with shared_preferences. You combined async access with getInstance(), writing with setString/setInt, reading with getString/getInt, and default values with ??. You use these steps together in settings screens.
final prefs = await SharedPreferences.getInstance();
await prefs.setString('name', 'Ada');
final name = prefs.getString('name') ?? 'misafir';Practice Settings screen: save and read a name
Get prefs with getInstance, save the name with setString('name', 'Ada'), read it with getString('name') ?? 'misafir', and print it.
Starter code
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// getInstance ile prefs al
// setString ile 'name' = 'Ada' kaydet
// getString ile oku, yoksa 'misafir' ver
// print ile bastır
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(home: Scaffold(body: Center(child: Text('ayarlar')));
}
}Sample solution
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final prefs = await SharedPreferences.getInstance();
await prefs.setString('name', 'Ada');
final name = prefs.getString('name') ?? 'misafir';
print(name);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(home: Scaffold(body: Center(child: Text('ayarlar')));
}
}Expected output
Ada
Questions and answers
Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.
1 What is the correct order in a settings screen?
- getInstance → setString → getString Correct answer
- setString → getString → getInstance
- getInstance → getString → setString
- getString → getInstance → setString
Explanation: First you get prefs with getInstance, then write with setString, and finally read with getString. getInstance is always the first step.
2 Save a name
await prefs.setString(____);
await prefs.setString('name', 'Ada');
Explanation: setString takes two parameters: the key first ('name'), then the value ('Ada'). Swapping them creates the wrong key-value pair.
3 shared_preferences summary
| Term | Meaning |
|---|---|
getInstance |
Provides async access |
setString |
Writes a String |
getString |
Reads a String |
?? |
Provides a default value |