CodeBlanks Logo Icon CodeBlanks

Summary - shared_preferences

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

main.dart
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

main.dart
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

Question
await prefs.setString(____);
Answer
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

All lessons in Intermediate