Shared Preferences - Data Persistence Flutter
Local Storage with Shared Preferences in Flutter| Learn how to store and retrieve persistent data in Flutter using Shared Preferences on rrtutors.com.
In 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(),
);
}
}
|