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