Junior
Flutterдеги SharedPreferences колдонуу өзгөчөлүгү эмнеде?
sobes.tech AI
AIден жооп
SharedPreferences кыскача API сунуштайт жана кыска мөөнөттүү маалыматтарды сактоо үчүн (примитивдүү түрлөр: int, double, bool, String, List<String>) ачкыч-маалымат парлары түрүндө. Маалыматтар асинхрондуу сакталат. Бул колдонуучу жөндөөлөрү, абал белгилери жана башка критикалык эмес маалыматтарды сактоо үчүн ылайыктуу.
Өзгөчөлүктөрү:
- Колдонуу жөнөкөйлүгү: API жеңил жана интуитивдүү.
- Асинхрондуу операциялар: Бардык окуу жана жазуу операциялары асинхрондуу, бул UI агымын токтотпойт.
- Чектелген түрлөрдүн тизмеси: Тек гана примитивдүү түрлөрдү жана жолдордун тизмесин колдойт.
- Көп маалымат же татаал структуралар үчүн ылайыктуу эмес: Көп жазууларды же чоң структураларды сактоо үчүн эффективдүү эмес.
- Платформага көз каранды: Нативдүү сактоо механизмдерине негизделген (мисалы, iOSтогу
NSUserDefaults, AndroidтогуSharedPreferences). - Купуя маалымат үчүн коопсуз эмес сактоо: Маалымат ачык түрдө сакталат, паролдор же башка сезимтал маалыматтар үчүн ылайыктуу эмес.
- Кирүү үчүн
awaitкерек:SharedPreferencesобъектисин алуу жана окуу/жазуу операцияларын аткаруу үчүнawaitколдонулат.
Колдонуу мисалы:
// SharedPreferences объектисин алуу
final prefs = await SharedPreferences.getInstance();
// Маалыматтарды жазуу
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);
// Маалыматты окуу
final counter = prefs.getInt('counter') ?? 0; // Дефолт мааниге ?? колдонуу
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];
// Маалыматты өчүрүү
await prefs.remove('username');
await prefs.clear(); // Бардык маалыматтарды өчүрөт