Junior
Quelle est la particularité de l'utilisation de SharedPreferences dans Flutter?
sobes.tech IA
Réponse de l'IA
SharedPreferences fournit une API simple pour stocker de petites quantités de données (types primitifs : int, double, bool, String, List<String>) sous forme de paires clé-valeur. Les données sont stockées de manière asynchrone. Cela convient pour stocker les paramètres utilisateur, les drapeaux d'état et d'autres informations non critiques.
Caractéristiques :
- Facilité d'utilisation : L'API est légère et intuitive.
- Opérations asynchrones : Toutes les opérations de lecture et d'écriture sont asynchrones, évitant de bloquer le fil d'interface utilisateur.
- Jeu limité de types : Ne supporte que les types primitifs et les listes de chaînes.
- Non adapté pour de grands volumes ou données complexes : Peu efficace pour stocker de grandes structures de données ou un grand nombre d'entrées.
- Dépendance à la plateforme : La mise en œuvre repose sur des mécanismes natifs de stockage (par exemple,
NSUserDefaultssur iOS,SharedPreferencessur Android). - Stockage non sécurisé pour les informations sensibles : Les données sont stockées en clair, non adaptées pour les mots de passe ou autres informations sensibles.
- Nécessite
awaitpour accéder : L'obtention de l'instance deSharedPreferenceset l'exécution des opérations de lecture/écriture nécessitent l'utilisation deawait.
Exemple d'utilisation :
// Obtenir l'instance de SharedPreferences
final prefs = await SharedPreferences.getInstance();
// Enregistrer des données
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);
// Lire des données
final counter = prefs.getInt('counter') ?? 0; // Utilisation de ?? pour une valeur par défaut
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];
// Supprimer des données
await prefs.remove('username');
await prefs.clear(); // Supprime toutes les données