SharedPreferences - persistencia.

¿Qué son los SharedPreferences?

SharedPreferences es un plugin de Flutter que nos permite almacenar de manera sencilla datos simples como cadenas de texto, números, booleanos, etc. Es ideal para guardar preferencias de usuario, datos de configuración o cualquier otra información que no requiera una base de datos completa.

¿Requiere permisos?

No, SharedPreferences no requiere permisos adicionales. Es una forma segura y sencilla de almacenar datos a nivel de aplicación.

Ejemplo completo:

Dart
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

class MyHomePage extends StatefulWidget    {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  TextEditingController _textController = TextEditingController();   
  String _savedText = '';

  Future<void> _saveData() async {
    // Obtener una instancia de SharedPreferences
    SharedPreferences prefs = await SharedPreferences.getInstance();
    // Guardar el texto en SharedPreferences
    await prefs.setString('my_key', _textController.text);
    setState(() {
      // Limpiar el campo de texto
      _textController.clear();
    });
  }

  Future<void> _loadData() async {
    // Obtener una instancia de SharedPreferences
    SharedPreferences prefs = await SharedPreferences.getInstance();
    // Cargar el texto de SharedPreferences
    setState(() {
      _savedText = prefs.getString('my_key') ?? '';
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Ejemplo SharedPreferences'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            TextField(
              controller: _textController,
              decoration:    InputDecoration(hintText: 'Ingrese un texto'),
            ),
            ElevatedButton(
              onPressed: _saveData,
              child: Text('Guardar'),
            ),
            Text('Texto guardado: $_savedText'),
          ],
        ),
      ),
    );
  }
}

Explicación:

  1. Importar: Importamos la librería shared_preferences.
  2. Obtener una instancia: Obtenemos una instancia de SharedPreferences utilizando SharedPreferences.getInstance().
  3. Guardar datos: Utilizamos el método setString para guardar un valor de tipo String con una clave específica.
  4. Cargar datos: Utilizamos el método getString para recuperar un valor de tipo String a partir de una clave.
  5. Interfaz de usuario: Creamos una interfaz sencilla con un campo de texto y dos botones para guardar y cargar datos.

Puntos clave:

  • Asincronía: Las operaciones de SharedPreferences son asíncronas, por lo que se utilizan async y await.
  • Claves: Cada valor se almacena con una clave única para identificarlo.
  • Tipos de datos: SharedPreferences permite almacenar diferentes tipos de datos como String, int, double, bool y listas de String.
  • Sencillez: Es una forma muy sencilla de almacenar datos de forma persistente.

Consideraciones adicionales:

  • Seguridad: Si vas a almacenar datos sensibles, considera encriptarlos antes de guardarlos.
  • Limpieza: Es recomendable limpiar los datos de SharedPreferences cuando ya no sean necesarios para evitar acumular datos innecesarios.

¿Qué más puedes hacer con SharedPreferences?

  • Guardar múltiples valores: Puedes guardar diferentes tipos de datos utilizando diferentes claves.
  • Eliminar valores: Utiliza el método remove para eliminar un valor específico.
  • Limpiar todos los datos: Utiliza el método clear para eliminar todos los datos almacenados.


Comentarios

Entradas más populares de este blog

Paquete http en Flutter

Image

Menú lateral Drawer.