| # Shared preferences plugin | 
 |  | 
 | [](https://pub.dartlang.org/packages/shared_preferences) | 
 |  | 
 | Wraps NSUserDefaults (on iOS) and SharedPreferences (on Android), providing | 
 | a persistent store for simple data. Data is persisted to disk asynchronously. | 
 | Neither platform can guarantee that writes will be persisted to disk after | 
 | returning and this plugin must not be used for storing critical data. | 
 |  | 
 | ## Usage | 
 | To use this plugin, add `shared_preferences` as a [dependency in your pubspec.yaml file](https://flutter.io/platform-plugins/). | 
 |  | 
 | ### Example | 
 |  | 
 | ``` dart | 
 | import 'package:flutter/material.dart'; | 
 | import 'package:shared_preferences/shared_preferences.dart'; | 
 |  | 
 | void main() { | 
 |   runApp(MaterialApp( | 
 |     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); | 
 | } | 
 | ``` | 
 |  | 
 | ### Testing | 
 |  | 
 | You can populate `SharedPreferences` with initial values in your tests by running this code: | 
 |  | 
 | ```dart | 
 | const MethodChannel('plugins.flutter.io/shared_preferences') | 
 |   .setMockMethodCallHandler((MethodCall methodCall) async { | 
 |     if (methodCall.method == 'getAll') { | 
 |       return <String, dynamic>{}; // set initial values here if desired | 
 |     } | 
 |     return null; | 
 |   }); | 
 | ``` |