Sobes.tech
Junior

¿En qué consiste la característica del uso de SharedPreferences en Flutter?

sobes.tech AI

Respuesta de la IA

SharedPreferences proporciona una API sencilla para almacenar pequeños volúmenes de datos (tipos primitivos: int, double, bool, String, List<String>) en forma de pares clave-valor. Los datos se almacenan de forma asíncrona. Esto es adecuado para guardar configuraciones de usuario, banderas de estado y otra información no crítica.

Características:

  • Facilidad de uso: La API es ligera e intuitiva.
  • Operaciones asíncronas: Todas las operaciones de lectura y escritura son asíncronas, lo que evita bloquear el hilo de la interfaz de usuario.
  • Conjunto limitado de tipos: Solo soporta tipos primitivos y listas de cadenas.
  • No apto para grandes volúmenes o datos complejos: No es eficiente para almacenar estructuras de datos grandes o muchas entradas.
  • Dependencia de la plataforma: La implementación se basa en mecanismos nativos de almacenamiento de datos (por ejemplo, NSUserDefaults en iOS, SharedPreferences en Android).
  • Almacenamiento inseguro para información confidencial: Los datos se almacenan en texto abierto, no adecuados para contraseñas u otra información sensible.
  • Requiere await para acceder: La obtención de la instancia de SharedPreferences y la realización de operaciones de lectura/escritura requieren usar await.

Ejemplo de uso:

// Obtener la instancia de SharedPreferences
final prefs = await SharedPreferences.getInstance();

// Guardar datos
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);

// Leer datos
final counter = prefs.getInt('counter') ?? 0; // Uso de ?? para valor predeterminado
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];

// Eliminar datos
await prefs.remove('username');
await prefs.clear(); // Elimina todos los datos