Junior
რა არის Flutter-ში SharedPreferences-ის გამოყენების თავისებურება?
sobes.tech AI
პასუხი AI-სგან
SharedPreferences მარტივი API-ს უზრუნველყოფს მცირე მოცულობის მონაცემების შენახვისთვის (პრიმიტიული ტიპები: int, double, bool, String, List<String>) key-value წყვილებად. მონაცემები ინახება ასინქრონულად. ეს შესაფერისია მომხმარებლის პარამეტრებისთვის, მდგომარეობის ნიშნებისთვის და სხვა კრიტიკულად არასაჭირო ინფორმაციისთვის.
სწრაფი თვისებები:
- გამოყენების სიმარტივე: 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(); // ყველა მონაცემის წაშლა