Junior
V čem spočívá vlastnost použití SharedPreferences ve Flutteru?
sobes.tech AI
Odpověď od AI
SharedPreferences poskytuje jednoduché API pro ukládání malých objemů dat (primitivní typy: int, double, bool, String, List<String>) ve formě párů klíč-hodnota. Data jsou ukládána asynchronně. To je vhodné pro ukládání uživatelských nastavení, stavových vlajek a dalších nedůležitých informací.
Vlastnosti:
- Jednoduché použití: API je lehké a intuitivní.
- Asynchronní operace: Všechny operace čtení a zápisu jsou asynchronní, což zabraňuje blokování UI vlákna.
- Omezená sada typů: Podporuje pouze primitivní typy a seznamy řetězců.
- Nevhodné pro velké objemy nebo složitá data: Neefektivní pro ukládání velkých datových struktur nebo velkého množství záznamů.
- Závislost na platformě: Implementace je založena na nativních mechanismech ukládání dat (například
NSUserDefaultsna iOS,SharedPreferencesna Androidu). - Nezabezpečené ukládání citlivých informací: Data jsou uložena v otevřeném textu, nevhodná pro hesla nebo jiné citlivé informace.
- Pro přístup je potřeba
await: Získání instanceSharedPreferencesa provádění operací čtení/zápisu vyžadují použitíawait.
Příklad použití:
// Získání instance SharedPreferences
final prefs = await SharedPreferences.getInstance();
// Ukládání dat
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);
// Čtení dat
final counter = prefs.getInt('counter') ?? 0; // Použití ?? pro výchozí hodnotu
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];
// Odstranění dat
await prefs.remove('username');
await prefs.clear(); // Odstraní všechna data