El paquete shared_preferences permite guardar datos pequeños de manera persistente en Flutter, como preferencias del usuario o configuraciones de la aplicación. Es ideal para almacenar pares clave-valor de tipos básicos como cadenas, números o booleanos.
shared_preferences y para qué sirve?
shared_preferences proporciona una solución sencilla para guardar información de forma local y acceder a ella incluso después de cerrar y reabrir la aplicación. Utiliza almacenamiento persistente nativo (UserDefaults en iOS y SharedPreferences en Android).
shared_preferences:
shared_preferences en Flutter
1. Añadir la dependencia al proyecto:
En el archivo pubspec.yaml, agrega:
dependencies:
shared_preferences: ^2.0.0
2. Importar el paquete:
En tu archivo Dart:
import 'package:shared_preferences/shared_preferences.dart';
3. Inicializar SharedPreferences:
Crea una instancia de SharedPreferences para leer y escribir datos:
SharedPreferences prefs = await SharedPreferences.getInstance();
shared_preferences
| Operación | Método | Ejemplo de uso |
|---|---|---|
| Guardar un valor |
setString, setInt, setBool
|
prefs.setString('clave', 'valor');
|
| Leer un valor |
getString, getInt, getBool
|
prefs.getString('clave');
|
| Eliminar un valor |
remove
|
prefs.remove('clave');
|
| Comprobar una clave |
containsKey
|
prefs.containsKey('clave');
|
| Limpiar todo |
clear
|
prefs.clear();
|
void guardarPreferencia() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString('nombre', 'Juan');
print('Preferencia guardada');
}
void leerPreferencia() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String? nombre = prefs.getString('nombre');
print('El nombre guardado es: $nombre');
}
void eliminarPreferencia() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.remove('nombre');
print('Preferencia eliminada');
}
void verificarClave() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
bool existe = prefs.containsKey('nombre');
print('¿Existe la clave "nombre"? $existe');
}
shared_preferences
Jorge García
Fullstack developer