Sobes.tech
Junior

SharedPreferences nədir və necə istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

SharedPreferences — bu kiçik həcmdə məlumatların açar-dəyər cütlüklərində saxlanması üçün sadə mexanizmdir. İstifadəçi parametrlərini və ya kiçik bayraqları saxlamaq üçün idealdır.

İstifadə:

  1. Asılılığı əlavə edin: pubspec.yaml faylında aşağıdakıları əlavə edirik:

    dependencies:
      flutter:
        sdk: flutter
      shared_preferences: ^2.2.0 # Cari versiyanı istifadə edin
    

    flutter pub get əmri ilə yükləyirik.

  2. İxrac edin:

    import 'package:shared_preferences/shared_preferences.dart';
    
  3. Nümunə alın:

    // Asinxron əməliyyat
    SharedPreferences prefs = await SharedPreferences.getInstance();
    
  4. Məlumatları qeyd edin:

    // Sətir qeyd edin
    prefs.setString('username', 'Alice');
    // Rəqəm (int) qeyd edin
    prefs.setInt('age', 30);
    // Rəqəm (double) qeyd edin
    prefs.setDouble('salary', 50000.50);
    // Boolean dəyər qeyd edin
    prefs.setBool('darkMode', true);
    // Sətirlər siyahısı qeyd edin
    prefs.setStringList('items', ['item1', 'item2']);
    

    Bütün qeyd metodları Future<bool> qaytarır və əməliyyatın uğurlu olub-olmadığını göstərir.

  5. Məlumatları oxuyun:

    // Sətir oxuyun
    String? username = prefs.getString('username'); // Əgər açar tapılmazsa null
    // Rəqəm (int) oxuyun
    int? age = prefs.getInt('age');
    // Rəqəm (double) oxuyun
    double? salary = prefs.getDouble('salary');
    // Boolean dəyər oxuyun
    bool? darkMode = prefs.getBool('darkMode');
    // Sətirlər siyahısı oxuyun
    List<String>? items = prefs.getStringList('items');
    
  6. Məlumatları silin:

    // Açar ilə silin
    prefs.remove('username'); // `Future<bool>` qaytarır
    // Bütün məlumatları silin
    prefs.clear(); // `Future<bool>` qaytarır
    

Məhdudiyyətlər:

  • Böyük həcmdə məlumatların və ya mürəkkəb strukturların saxlanması üçün uyğun deyil.
  • Məlumatlar açıq formada saxlanılır (hətta tətbiq səviyyəsində), həssas məlumatlar üçün uyğun deyil.
  • Əsas məlumat tipləri ilə işləyir. Obiektlər üçün serializasiya/deserializasiya tələb olunur (məsələn, json ilə).