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