Junior
Flutter'da SharedPreferences'dan foydalanishning xususiyati nima?
sobes.tech AI
AIdan javob
SharedPreferences oddiy API ni taqdim etadi kichik hajmdagi ma'lumotlarni (asosiy turlar: int, double, bool, String, List<String>) kalit-qiymat juftlari shaklida saqlash uchun. Ma'lumotlar asinxron tarzda saqlanadi. Bu foydalanuvchi sozlamalari, holat flaglari va boshqa muhim bo'lmagan ma'lumotlarni saqlash uchun mos keladi.
Xususiyatlar:
- Foydalanish osonligi: API yengil va intuitiv.
- Asinxron operatsiyalar: Barcha o'qish va yozish operatsiyalari asinxron bo'lib, UI oqimini bloklamaydi.
- Cheklangan turdagi to'plam: Faqat asosiy turlar va satrlar ro'yxatini qo'llab-quvvatlaydi.
- Katta hajmli yoki murakkab ma'lumotlar uchun mos emas: Katta ma'lumot tuzilmalarini yoki ko'p yozuvlarni saqlash uchun samarali emas.
- Platformaga bog'liqlik: Implementatsiya tabiiy saqlash mexanizmlariga asoslangan (masalan, iOS'da
NSUserDefaults, Android'daSharedPreferences). - Maxfiy ma'lumotlar uchun xavfsiz emas: Ma'lumotlar ochiq matn shaklida saqlanadi, parol yoki boshqa sezgir ma'lumotlar uchun mos emas.
- Kirish uchun
awaittalab qilinadi:SharedPreferencesinstansiyasini olish va o'qish/yozish operatsiyalarini bajarish uchunawaitishlatiladi.
Misol:
// SharedPreferences instansiyasini olish
final prefs = await SharedPreferences.getInstance();
// Ma'lumotlarni saqlash
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);
// Ma'lumotlarni o'qish
final counter = prefs.getInt('counter') ?? 0; // Standart qiymat uchun ?? ishlatiladi
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];
// Ma'lumotlarni o'chirish
await prefs.remove('username');
await prefs.clear(); // Barcha ma'lumotlarni o'chiradi