| # 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 automatically |
| and asynchronously. |
| |
| ## 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(new MaterialApp( |
| home: new Scaffold( |
| body: new Center( |
| child: new RaisedButton( |
| onPressed: _incrementCounter, |
| child: new Text('Increment Counter'), |
| ), |
| ), |
| ), |
| )); |
| } |
| |
| _incrementCounter() async { |
| SharedPreferences prefs = await SharedPreferences.getInstance(); |
| int counter = (prefs.getInt('counter') ?? 0) + 1; |
| print('Pressed $counter times.'); |
| prefs.setInt('counter', counter); |
| } |
| ``` |
| |
| ### Testing |
| |
| You can populate `SharedPreferences` with initial values in your tests by running this code: |
| |
| ``` |
| 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; |
| }); |
| ``` |