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
Kanban
1. Kanban là gì? Kanban là một phương pháp quản lý công việc trực quan, giúp bạn theo dõi tiến độ từng nhiệm vụ. Kanban bắt nguồn từ Nhật Bản, ban đầu được Toyota dùng để quản lý dây chuyền sản xuất, nhưng ngày nay được áp dụng rộng rãi trong các lĩnh vực như […]
Scum
1. Scrum là gì? Scrum là một khung làm việc (framework) giúp các nhóm làm việc cùng nhau để phát triển sản phẩm một cách linh hoạt và hiệu quả. Nó thuộc phương pháp Agile – đề cao sự thích nghi, cộng tác và cải tiến liên tục trong quá trình làm việc. 2. Các […]
So sánh Realm, Hive, Sqflite, và Drift
So sánh Tiêu chí Realm Hive Sqflite Drift Mức độ phổ biến Tăng nhanh (Meta hỗ trợ) Rất phổ biến Rất phổ biến Trung bình (cộng đồng ổn định) Dễ sử dụng, dễ tích hợp Trung bình (cần setup Realm SDK) ★ Rất dễ (NoSQL, không cần SQL) Trung bình (phải viết SQL tay) Trung […]
Testing
I. Testing là gì? Testing (kiểm thử phần mềm) là quá trình đánh giá một hệ thống phần mềm để xác định xem sản phẩm có đáp ứng các yêu cầu được đặt ra hay không, và nhằm phát hiện lỗi nếu có. Testing là một phần quan trọng trong vòng đời phát triển phần […]
Application security
Ứng dụng bảo mật là gì? Application Security (Bảo mật ứng dụng) là quá trình bảo vệ ứng dụng khỏi các lỗ hổng và tấn công từ các mối đe dọa bên ngoài. Quá trình này bao gồm các biện pháp bảo vệ trong suốt vòng đời phát triển phần mềm (SDLC): từ thiết kế, […]
MVC/MVP
1. Giới thiệu chung Trong phát triển phần mềm, việc tổ chức mã theo mô hình kiến trúc rõ ràng là rất quan trọng để dễ dàng bảo trì, mở rộng và kiểm thử. Hai mô hình phổ biến trong phát triển ứng dụng là: MVC (Model – View – Controller) MVP (Model – View […]