Shared Preferences là gì?

Shared Preferences là nơi bạn có thể lưu trữ các thông tin dưới dạng key-value được xây dựng sẵn trong hệ điều hành Android hoặc NUserDefault trong iOS

Flutter shared_preferences plugin

shared_preferences là thư cho phép lưu trữ và lấy dữ liệu từ hệ điều hành một cách nhanh chóng mà không cần nhiều bước thiết đặt trung gian.

  • Ứng dụng: sử dụng để lưu các thiết đặt ứng dụng, cài đặt của người dùng,…
  • Nhược điểm: chỉ lưu trữ được những kiểu dữ liệu đơng giản như chuỗi kí tự, số và kiểu logic. Ngoài ra không nên sử dụng để lưu các dữ liệu nhạy cảm mà thay vào đó nên sử dụng thư viện flutter_secure_storage.

Sử dụng thư viện

Thêm shared_preferences vào pubspecs.yaml

dependencies:
  cached_network_image: ^3.1.0
  cupertino_icons: ^1.0.3
  flutter:
    sdk: flutter
  flutter_slidable: ^0.6.0
  flutter_svg: ^0.22.0
  shared_preferences: ^2.0.8

Thêm thư viện vào file

import 'package:shared_preferences/shared_preferences.dard
...

...

Lấy SharedPreferences instance

lấy và phân tích SharedPreferences của app từ disk

final _prefs = SharedPreferences.getInstance()

Xóa tất cả dữ liệu trong bộ nhớ và trả về true

clear()  Future<bool>
get(String key)  Object?
// 

// Fetches the latest values from the host platform. [...]
remove(String key)  Future<bool>
// Removes an entry from persistent storage.

Lấy giá trị của key. Lưu ý phương thức này trả về Object mà không phải kiểu cụ thể

get(String key)  Object?

Trả về true nếu tồn tại key trong user preferences

containsKey(String key)  bool

Các phương thức sau sẽ lấy giá trị qua key và trả về dữ liệu với kiểu tương ứng, nếu giá trị trả về không phải kiểu trả về của phương thức sẽ báo lỗi

getBool(String key)  bool?
getDouble(String key)  double?
getInt(String key)  int?
getKeys()  Set<String>
getString(String key)  String?
getStringList(String key)  List<String>?

Các phương thức sau sẽ gắn giá trị qua key tương ứng và trả về dữ liệu với kiểu tương ứng và trả về chúng

setBool(String key, bool value)  Future<bool>
setDouble(String key, double value)  Future<bool>
setInt(String key, int value)  Future<bool>
setString(String key, String value)  Future<bool>
setStringList(String key, List<String> value)  Future<bool>

Trả về tất cả key

getKeys()  Set<String>

Xóa một entry trong bộ nhớ

remove(String key)  Future<bool>

Lấy dữ liệu mới nhất từ bộ nhớ

reload()  Future<void>