Junior
Qual é a característica do uso de SharedPreferences no Flutter?
sobes.tech IA
Resposta da IA
SharedPreferences fornece uma API simples para armazenar pequenos volumes de dados (tipos primitivos: int, double, bool, String, List<String>) em forma de pares chave-valor. Os dados são armazenados de forma assíncrona. Isto é adequado para guardar configurações de utilizador, flags de estado e outras informações não críticas.
Características:
- Facilidade de utilização: A API é leve e intuitiva.
- Operações assíncronas: Todas as operações de leitura e escrita são assíncronas, evitando bloquear o thread da interface de utilizador.
- Conjunto limitado de tipos: Apenas suporta tipos primitivos e listas de strings.
- Não adequado para grandes volumes ou dados complexos: Não é eficiente para armazenar estruturas de dados grandes ou muitas entradas.
- Dependência da plataforma: A implementação baseia-se em mecanismos nativos de armazenamento de dados (por exemplo,
NSUserDefaultsno iOS,SharedPreferencesno Android). - Armazenamento inseguro para informações confidenciais: Os dados são armazenados em texto aberto, não sendo adequados para passwords ou outras informações sensíveis.
- Requer
awaitpara acesso: A obtenção da instância deSharedPreferencese a realização de operações de leitura/escrita requerem o uso deawait.
Exemplo de uso:
// Obter a instância de SharedPreferences
final prefs = await SharedPreferences.getInstance();
// Guardar dados
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);
// Ler dados
final counter = prefs.getInt('counter') ?? 0; // Uso de ?? para valor padrão
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];
// Remover dados
await prefs.remove('username');
await prefs.clear(); // Remove todos os dados