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:
- Importar: Importamos la librería
shared_preferences. - Obtener una instancia: Obtenemos una instancia de
SharedPreferencesutilizandoSharedPreferences.getInstance(). - Guardar datos: Utilizamos el método
setStringpara guardar un valor de tipoStringcon una clave específica. - Cargar datos: Utilizamos el método
getStringpara recuperar un valor de tipoStringa partir de una clave. - 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
asyncyawait. - 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,booly listas deString. - 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
removepara eliminar un valor específico. - Limpiar todos los datos: Utiliza el método
clearpara eliminar todos los datos almacenados.
Comentarios
Publicar un comentario