Shared preferences plugin

pub package

Wraps platform-specific persistent storage for simple data (NSUserDefaults on iOS and macOS, SharedPreferences on Android, etc.). Data may be persisted to disk asynchronously, and there is no guarantee that writes will be persisted to disk after returning, so this plugin must not be used for storing critical data.

Please set your constraint to shared_preferences: '>=0.5.y+x <2.0.0'

Backward compatible 1.0.0 version is coming

The plugin has reached a stable API, we guarantee that version 1.0.0 will be backward compatible with 0.5.y+z. Please use shared_preferences: '>=0.5.y+x <2.0.0' as your dependency constraint to allow a smoother ecosystem migration. For more details see:


To use this plugin, add shared_preferences as a dependency in your pubspec.yaml file.


import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() {
    home: Scaffold(
      body: Center(
      child: RaisedButton(
        onPressed: _incrementCounter,
        child: Text('Increment Counter'),

_incrementCounter() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  int counter = (prefs.getInt('counter') ?? 0) + 1;
  print('Pressed $counter times.');
  await prefs.setInt('counter', counter);


You can populate SharedPreferences with initial values in your tests by running this code:

SharedPreferences.setMockInitialValues (Map<String, dynamic> values);