Sobes.tech
Junior

Qu'est-ce que SharedPreferences et comment l'utiliser?

sobes.tech IA

Réponse de l'IA

SharedPreferences est un mécanisme simple pour stocker de petites quantités de données sous forme de paires clé-valeur. Idéal pour sauvegarder les paramètres utilisateur ou de petites drapeaux.

Utilisation :

  1. Ajouter la dépendance : Dans le fichier pubspec.yaml, ajoutez :

    dependencies:
      flutter:
        sdk: flutter
      shared_preferences: ^2.2.0 # Utilisez la version actuelle
    

    et exécutez flutter pub get.

  2. Importer :

    import 'package:shared_preferences/shared_preferences.dart';
    
  3. Obtenir une instance :

    // Opération asynchrone
    SharedPreferences prefs = await SharedPreferences.getInstance();
    
  4. Enregistrer des données :

    // Enregistrer une chaîne
    prefs.setString('username', 'Alice');
    // Enregistrer un nombre (int)
    prefs.setInt('age', 30);
    // Enregistrer un nombre (double)
    prefs.setDouble('salary', 50000.50);
    // Enregistrer une valeur booléenne
    prefs.setBool('darkMode', true);
    // Enregistrer une liste de chaînes
    prefs.setStringList('items', ['item1', 'item2']);
    

    Toutes les méthodes d'enregistrement retournent Future<bool>, indiquant le succès de l'opération.

  5. Lire des données :

    // Lire une chaîne
    String? username = prefs.getString('username'); // Retourne null si la clé n'existe pas
    // Lire un nombre (int)
    int? age = prefs.getInt('age');
    // Lire un nombre (double)
    double? salary = prefs.getDouble('salary');
    // Lire une valeur booléenne
    bool? darkMode = prefs.getBool('darkMode');
    // Lire une liste de chaînes
    List<String>? items = prefs.getStringList('items');
    
  6. Supprimer des données :

    // Supprimer par clé
    prefs.remove('username'); // Retourne Future<bool>
    // Supprimer toutes les données
    prefs.clear(); // Retourne Future<bool>
    

Restrictions :

  • Ne convient pas pour stocker de grandes quantités de données ou des structures complexes.
  • Les données sont stockées en clair (même au niveau de l'application), pas adapté pour des informations sensibles.
  • Fonctionne avec des types de données de base. Pour des objets, une sérialisation/désérialisation est requise (par exemple, avec json).