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(); // Հեռացնում է բոլոր տվյալները