SharedPreferences Flutter
SharedPreferences
Section titled “SharedPreferences”SharedPreferences est idéal pour stocker de petites quantités de données simples comme les préférences utilisateur, les tokens d’authentification, ou les configurations d’application.
Installation
Section titled “Installation”dependencies: shared_preferences: ^2.2.2Utilisation
Section titled “Utilisation”import 'package:shared_preferences/shared_preferences.dart';
// Obtenir une instance de SharedPreferencesfinal prefs = await SharedPreferences.getInstance();
// Sauvegarder différents types de donnéesawait prefs.setInt('counter', 10);await prefs.setString('action', 'Start');await prefs.setStringList('items', <String>['Earth', 'Moon', 'Sun']);await prefs.setBool('isDarkMode', true);await prefs.setDouble('rating', 4.5);
// Lire les donnéesfinal int? counter = prefs.getInt('counter');final bool? repeat = prefs.getBool('repeat');final double? decimal = prefs.getDouble('decimal');final String? action = prefs.getString('action');final List<String>? items = prefs.getStringList('items');
// Supprimer des donnéesfinal success = await prefs.remove('counter');
// Nettoyer toutes les donnéesawait prefs.clear();Pattern de Service
Section titled “Pattern de Service”class PreferencesService { static const String _keyCounter = 'counter'; static const String _keyUsername = 'username';
static Future<SharedPreferences> get _prefs async => await SharedPreferences.getInstance();
static Future<int> getCounter() async { final prefs = await _prefs; return prefs.getInt(_keyCounter) ?? 0; }
static Future<void> setCounter(int value) async { final prefs = await _prefs; await prefs.setInt(_keyCounter, value); }
static Future<String?> getUsername() async { final prefs = await _prefs; return prefs.getString(_keyUsername); }
static Future<void> setUsername(String username) async { final prefs = await _prefs; await prefs.setString(_keyUsername, username); }}Bonnes Pratiques
Section titled “Bonnes Pratiques”- Centralisation des clés : Définir toutes les clés comme constantes
- Service abstrait : Créer une couche d’abstraction pour l’accès aux données
- Valeurs par défaut : Toujours fournir des valeurs par défaut
- Gestion d’erreurs : Gérer les cas où les données peuvent être corrompues
- Limitation : Ne pas stocker de gros volumes de données (< 1MB recommandé)
Cas d’Usage Recommandés
Section titled “Cas d’Usage Recommandés”- Préférences utilisateur : thème, langue, notifications
- Paramètres d’application : première ouverture, tutoriel terminé
- Tokens non-sensibles : identifiants de session temporaires
- Configuration : URL d’API, environnement de développement
- État de l’interface : dernière page visitée, préférences d’affichage