1. Shared Preferences là gì?
Shared Preferences là một package trong Flutter giúp lưu trữ dữ liệu đơn giản dưới dạng key-value (khóa-giá trị) trên thiết bị. Dữ liệu được lưu trữ persistent (tồn tại ngay cả khi ứng dụng bị đóng hoặc thiết bị khởi động lại).
Tính năng chính:
✔ Lưu trữ các kiểu dữ liệu cơ bản: int, double, bool, String, List<String>
✔ Dễ sử dụng, không cần cấu hình phức tạp
✔ Phù hợp cho:
-
Lưu cài đặt ứng dụng (theme, ngôn ngữ)
-
Lưu trạng thái đăng nhập (token)
-
Lưu dữ liệu nhỏ, không cần cơ sở dữ liệu
2. Cài đặt Shared Preferences
Thêm package vào pubspec.yaml:

Chạy flutter pub get để cài đặt.
3. Cách sử dụng cơ bản
Khởi tạo Shared Preferences

Lưu dữ liệu

Đọc dữ liệu

Xóa dữ liệu

4. Những lưu ý quan trọng
Dữ liệu chỉ lưu được các kiểu cơ bản, không lưu được đối tượng phức tạp. Muốn lưu Object, cần chuyển thành JSON trước.

Luôn kiểm tra null vì dữ liệu có thể chưa được lưu.

-
Không nên lưu dữ liệu lớn (hình ảnh, file) → Dùng hive hoặc sqflite thay thế.
-
Không dùng cho dữ liệu nhạy cảm (mật khẩu, thông tin thẻ tín dụng) → Dùng flutter_secure_storage.
5. Áp dụng vào trong Project Note-App.
Mục đích:
- Lưu danh sách Note vào Local Storage để khi tắt ứng dụng mở lại vẫn còn danh sách Note
Các bước thức hiện:
Thêm toMap và fromMap để convert dữ liệu trong model Note

Tạo class NoteStorage có chức năng saveNotes vào Storage và loadNotes từ Storage

Thêm loadStorage và saveStorage vào NoteProvider.

Bài viết khác
Json Data
JSON DATA LÀ GÌ? JSON (JavaScript Object Notation) là định dạng dữ liệu phổ biến dùng để trao đổi thông tin giữa client (như app Flutter) và server. JSON đơn giản, dễ đọc và dễ xử lý trong hầu hết các ngôn ngữ lập trình. CẤU TRÚC CƠ BẢN CỦA JSON JSON là tập hợp […]
REST API
REST API Là Gì? REST API (Representational State Transfer Application Programming Interface) là một kiểu thiết kế API dựa trên các nguyên tắc của kiến trúc REST. Nó cho phép các ứng dụng giao tiếp với nhau thông qua giao thức HTTP/HTTPS, thường sử dụng định dạng JSON hoặc XML để trao đổi dữ liệu. […]
Flutter Networking
FLUTTER NETWORKING LÀ GÌ? Flutter Networking là quá trình giao tiếp giữa ứng dụng Flutter và server thông qua mạng Internet. Điều này giúp ứng dụng có thể lấy dữ liệu từ bên ngoài, gửi dữ liệu lên server, hoặc tương tác với các API như đăng nhập, đăng ký, lấy danh sách sản phẩm, […]
Flutter Navigation and Routing
Route là gì? Trong Flutter, Route là một màn hình hoặc trang trong ứng dụng. Khi chúng ta nói về Route, chúng ta đang đề cập đến cách mà ứng dụng di chuyển giữa các màn hình và cách chúng ta xây dựng và quản lý các màn hình này. Có hai loại Route phổ […]
Flutter Form
FLUTTER FORM LÀ GÌ? Form trong Flutter là một widget dùng để thu thập và kiểm tra dữ liệu người dùng nhập vào. Khi ứng dụng yêu cầu nhập nhiều trường (fields) và cần xác minh tính hợp lệ của các giá trị này, việc sử dụng Form kết hợp với TextFormField là giải pháp […]
Flutter State Management
State Management trong Flutter là quá trình quản lý và thay đổi trạng thái của widget. Khi state thay đổi, widget sẽ được cập nhật lại để phản ánh thay đổi đó. Có nhiều phương pháp quản lý state trong Flutter, mỗi phương pháp phù hợp với các loại ứng dụng khác nhau. Các phương […]