Sobes.tech
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'da SharedPreferences).
  • Maxfiy ma'lumotlar uchun xavfsiz emas: Ma'lumotlar ochiq matn shaklida saqlanadi, parol yoki boshqa sezgir ma'lumotlar uchun mos emas.
  • Kirish uchun await talab qilinadi: SharedPreferences instansiyasini olish va o'qish/yozish operatsiyalarini bajarish uchun await ishlatiladi.

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