Volver a la página principal
viernes 22 noviembre 2024
22

Cómo usar shared_preferences en Flutter para almacenar datos localmente

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.

¿Qué es 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).

Ventajas de shared_preferences:

  • Fácil de usar y configurar.
  • Persistencia automática de los datos.
  • Adecuado para información simple como configuraciones, estados o tokens.

Cómo configurar shared_preferences en Flutter

Pasos iniciales:

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();

Operaciones comunes con 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();

Ejemplos prácticos

Guardar un valor

void guardarPreferencia() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  await prefs.setString('nombre', 'Juan');
  print('Preferencia guardada');
}

Leer un valor

void leerPreferencia() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  String? nombre = prefs.getString('nombre');
  print('El nombre guardado es: $nombre');
}

Eliminar un valor

void eliminarPreferencia() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  await prefs.remove('nombre');
  print('Preferencia eliminada');
}

Verificar si existe una clave

void verificarClave() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  bool existe = prefs.containsKey('nombre');
  print('¿Existe la clave "nombre"? $existe');
}

Cuándo usar shared_preferences

  • Almacenar configuraciones de la aplicación (modo oscuro, idioma).
  • Guardar estados simples (sesión activa, últimas preferencias).
  • Evitar el uso de almacenamiento más pesado para datos pequeños.

Recursos adicionales

Etiquetas:
dart flutter
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer