DataStore: Giải pháp lưu trữ tối ưu cho Android

DataStore là một API hiện đại thay thế SharedPreferences, được thiết kế để lưu trữ dữ liệu cục bộ trong Android với hiệu suất cao.

Tại sao nên dùng DataStore?

  • Thân thiện khi giao tiếp với UI: Chạy trên background thread, không gây lag như SharedPreferences.
  • Data Safe: Với Proto DataStore, dữ liệu được kiểm tra kiểu ngay từ lúc biên dịch.
  • Hỗ trợ Flowable: Cung cấp luồng dữ liệu đồng bộ, luôn cập nhật dữ liệu mới nhất.
  • Hiệu suất cao: Tận dụng Kotlin Coroutines, xử lý nhanh và mượt mà.
  • Khả năng mở rộng: Hỗ trợ dữ liệu phức tạp với cấu trúc Protobuf.

Các loại DataStore

  • Preferences DataStore: Lưu trữ key-value đơn giản, giống SharedPreferences.
  • Proto DataStore: Lưu trữ dữ liệu phức tạp với schema định nghĩa qua file .proto.

Example

val Context.dataStore by preferencesDataStore(name = "settings")

// Lưu dữ liệu
suspend fun saveSetting(context: Context, isDarkMode: Boolean) {
    val DARK_MODE_KEY = booleanPreferencesKey("dark_mode")
    context.dataStore.edit { it[DARK_MODE_KEY] = isDarkMode }
}

// Đọc dữ liệu
fun getDarkModeSetting(context: Context): Flow<Boolean> {
    return context.dataStore.data.map { it[booleanPreferencesKey("dark_mode")] ?: false }
}

Khi nào nên sử dụng?

  • Preferences DataStore: Khi lưu trữ dữ liệu nhỏ, đơn giản (cài đặt app).
  • Proto DataStore: Khi cần lưu dữ liệu phức tạp hoặc yêu cầu data safe.

Hãy cùng thử nghiệm DataStore để nâng cấp hiệu suất và khả năng lưu trữ cho ứng dụng Android của bạn nhé.

Loading

Là một người thích chia sẻ, tôi tạo ra blog này để mọi người - đặc biệt là các bạn mới vào nghề biết thêm được những kiến thức hữu ích. Rất mong nó sẽ có ích với bạn.
Back To Top