Usando SharedPreferences no Flutter
Conteudo
O que é SharedPreferences?
SharedPreferences é usado para armazenar pares de valor-chave de dados no Android e no iOS.
SharedPreferences em flutter usa NSUserDefault no iOS e SharedPreferences no Android, fornecendo um armazenamento persistente para dados simples.
Por que usar SharedPreferences no Flutter?
Suponha que você queira salvar um pequeno valor (provavelmente um sinalizador) que deseja consultar mais tarde, quando um usuário iniciar o aplicativo. Então a preferência compartilhada entra em ação.
Não usamos o SQLite para salvar valores pequenos porque você precisará escrever códigos longos e classes de suporte.
A Preferência Compartilhada permite que você leia e escreva facilmente o par chave-valor em algumas linhas. Mas lembre-se sempre, a preferência compartilhada não é uma solução para você manter dados relacionais complexos.
Como usar SharedPreferences no Flutter?
Antes de usar o SharedPreferences, você deve saber que o Flutter SDK não oferece suporte ao SharedPreferences, mas, felizmente, o plug-in shared_preferences pode ser usado para manter os dados de valor-chave no disco.
Implementação
Etapa 1: adicionar as dependências
Adicione dependências ao arquivo pubspec.yaml.
dependencies: flutter: sdk: flutter shared_preferences: ^2.1.0
Etapa 2: Importar shared_preferences.dart
import 'package:shared_preferences/shared_preferences.dart';
Etapa 3: salvar dados
Só podemos adicionar int, String, double e bool usando SharedPreferences.
Existem métodos setter na classe SharedPreferences que usam dois parâmetros, chave e valor.
As chaves são apenas valores de string
Salvando o valor da string
addStringToSF() async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setString('stringValue', "abc"); }
Salvando valor int
addIntToSF() async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setInt('intValue', 123); }
Salvando valor double
addDoubleToSF() async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setDouble('doubleValue', 115.0); }
Salvando valor boolean
addBoolToSF() async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setBool('boolValue', true); }
Etapa 4: Leia os dados
Quando estamos lendo os dados do armazenamento por meio de SharedPreferences, precisamos apenas passar a chave.
getStringValuesSF() async { SharedPreferences prefs = await SharedPreferences.getInstance(); //Return String String stringValue = prefs.getString('stringValue'); return stringValue; } getBoolValuesSF() async { SharedPreferences prefs = await SharedPreferences.getInstance(); //Return bool bool boolValue = prefs.getBool('boolValue'); return boolValue; } getIntValuesSF() async { SharedPreferences prefs = await SharedPreferences.getInstance(); //Return int int intValue = prefs.getInt('intValue'); return intValue; } getDoubleValuesSF() async { SharedPreferences prefs = await SharedPreferences.getInstance(); //Return double double doubleValue = prefs.getDouble('doubleValue'); return doubleValue; }
Se o valor não estiver presente no armazenamento, poderemos obter um valor nulo.
Para lidar com isso, podemos usar
int intValue= await prefs.getInt('intValue') ?? 0;
Etapa 5: remover dados
Para remover os dados do armazenamento, fornecemos a chave no método remove(String key).
removeValues() async { SharedPreferences prefs = await SharedPreferences.getInstance(); //Remove String prefs.remove("stringValue"); //Remove bool prefs.remove("boolValue"); //Remove int prefs.remove("intValue"); //Remove double prefs.remove("doubleValue"); }
Verifique o valor se presente ou não?
SharedPreferences prefs = await SharedPreferences.getInstance(); bool CheckValue = prefs.containsKey('value');
containsKey
retornará true se o armazenamento persistente contiver a chave fornecida e false se não.
Obrigado por ler este artigo ❤