Shared Preferences - Data Persistence Flutter
Last updated Mar 05, 2020In This post we are going to learn about Shared Preferences in Flutter
What is SharedPreferences?
SharedPreferences is used for storing data key-value pair in the Android and iOS.
SharedPreferences in flutter uses NSUserDefaultson iOS and SharedPreferences on Android, providing a persistent store for simple data
Let's Start
Step 1: Create Flutter Application
Step 2: Add depemndencies
dependencies: shared_preferences: ^0.5.4 |
Step 3 Create dart file and update below code
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class MySharedPref extends StatefulWidget{
@override
State createState() {
// TODO: implement createState
return MySharedPrefState();
}
}
class MySharedPrefState extends State{
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(title: Text("SharedPreference"),backgroundColor: Colors.pink,),
floatingActionButton: FloatingActionButton(
backgroundColor: Colors.pink,
child: Icon(Icons.add),
onPressed: (){
_incrementCounter();
}),
body: Center(
child: FutureBuilder(
future: _getIncrementCounter(),
builder:(BuildContext context, AsyncSnapshot snapshot) {
return Column(
mainAxisSize: MainAxisSize.min,
children: [
Text("The Incremented Value is ",style: TextStyle(color: Colors.pink,fontSize: 20),),
SizedBox(height: 20,),
Text((snapshot.data==null)?"":snapshot.data.toString(),style: TextStyle(color: Colors.pink,fontSize: 20),),
],
);
},
),
),
);
}
_incrementCounter() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
int counter = (prefs.getInt('counter') ?? 0) + 1;
setState(() {
prefs.setInt('counter', counter);
});
}
Future_getIncrementCounter() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
int counter = (prefs.getInt('counter') ?? 0) + 1;
return counter;
}
}
|
Saving String value
addStringValue() async { |
Saving int value
addIntValue() async { |
Saving double value
addDoubleValue() async { |
Saving boolean value
addBoolValue() async { |
Step 4: Update main dart file
void main() => runApp(MyApp());
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
theme: ThemeData(
primaryColor: Colors.pink
),
home: MySharedPref(),
);
}
}
|
Article Contributed By :
|
|
|
|
1469 Views |