Sobes.tech
Junior

O que são SharedPreferences e como usá-los?

sobes.tech IA

Resposta da IA

SharedPreferences é um mecanismo simples para guardar pequenos volumes de dados em pares chave-valor. Ideal para guardar configurações do utilizador ou pequenas flags.

Utilização:

  1. Adicionar dependência: No ficheiro pubspec.yaml, adicionamos:

    dependencies:
      flutter:
        sdk: flutter
      shared_preferences: ^2.2.0 # Use a versão atual
    

    e executamos flutter pub get.

  2. Importar:

    import 'package:shared_preferences/shared_preferences.dart';
    
  3. Obter instância:

    // Operação assíncrona
    SharedPreferences prefs = await SharedPreferences.getInstance();
    
  4. Guardar dados:

    // Guardar string
    prefs.setString('username', 'Alice');
    // Guardar número (int)
    prefs.setInt('age', 30);
    // Guardar número (double)
    prefs.setDouble('salary', 50000.50);
    // Guardar valor booleano
    prefs.setBool('darkMode', true);
    // Guardar lista de strings
    prefs.setStringList('items', ['item1', 'item2']);
    

    Todos os métodos de gravação retornam Future<bool>, indicando o sucesso da operação.

  5. Ler dados:

    // Ler string
    String? username = prefs.getString('username'); // Retorna null se a chave não existir
    // Ler número (int)
    int? age = prefs.getInt('age');
    // Ler número (double)
    double? salary = prefs.getDouble('salary');
    // Ler valor booleano
    bool? darkMode = prefs.getBool('darkMode');
    // Ler lista de strings
    List<String>? items = prefs.getStringList('items');
    
  6. Remover dados:

    // Remover por chave
    prefs.remove('username'); // Retorna Future<bool>
    // Remover todos os dados
    prefs.clear(); // Retorna Future<bool>
    

Restrições:

  • Não adequado para armazenar grandes volumes de dados ou estruturas complexas.
  • Os dados são armazenados em formato aberto (embora ao nível da aplicação), não adequado para informações sensíveis.
  • Funciona com tipos de dados básicos. Para objetos, é necessária serialização/deserialização (por exemplo, usando json).