DataStore কি?

 

DataStore কি?

DataStore হলো SharedPreferences-এর একটি আধুনিক বিকল্প, যা Android Jetpack লাইব্রেরির অংশ। এটি ডেটা সংরক্ষণ করতে কী-মান (key-value) পেয়ার ব্যবহার করে, কিন্তু SharedPreferences-এর তুলনায় অনেক বেশি দক্ষ, নিরাপদ এবং আধুনিক।


কেন DataStore ব্যবহার করবেন?

SharedPreferences-এর সীমাবদ্ধতা:

  • এটি সিঙ্গেল থ্রেডে (Single Thread) ব্লকিং করে কাজ করে, যার ফলে অ্যাপ ল্যাগ করতে পারে।
  • ডেটা অ্যাসিনক্রোনাসলি (Asynchronously) সংরক্ষণ করা যায় না।
  • বড় বা জটিল ডেটার জন্য কার্যকর নয়।

DataStore-এর সুবিধা:
অ্যাসিনক্রোনাস (Asynchronous)—ব্যাকগ্রাউন্ডে কাজ করে, অ্যাপকে স্লো করে না।
টাইপ-সেফ (Type-safe)—ডেটা টাইপ মেনে চলে, কোনো ভুল ডেটা সংরক্ষণ হয় না।
ক্যাশিং সুবিধা—ডেটা দ্রুত অ্যাক্সেস করা যায়।
প্রশস্তযোগ্য (Scalable)—বড় এবং জটিল ডেটার জন্য উপযুক্ত।


DataStore-এর ধরন

DataStore দুই ধরনের:

  1. Preferences DataStore – কী-মান (key-value) আকারে ডেটা সংরক্ষণ করে।
  2. Proto DataStoreProtocol Buffers (protobuf) ব্যবহার করে স্ট্রাকচার্ড ডেটা সংরক্ষণ করে।

Preferences DataStore ব্যবহার করা (ধাপে ধাপে)

1. নির্ভরতা (Dependency) যোগ করুন

আপনার build.gradle (Module: app) ফাইলে যুক্ত করুন:

dependencies {
    implementation "androidx.datastore:datastore-preferences:1.0.0"
}

2. DataStore তৈরি করুন

val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "user_prefs")

3. ডেটা সংরক্ষণ করা (Save Data)

suspend fun saveUsername(username: String, context: Context) {
    val USERNAME_KEY = stringPreferencesKey("username")
    context.dataStore.edit { preferences ->
        preferences[USERNAME_KEY] = username
    }
}

4. ডেটা পড়া (Read Data)

val usernameFlow: Flow<String> = context.dataStore.data
    .map { preferences ->
        preferences[USERNAME_KEY] ?: "ডিফল্ট নাম"
    }

Proto DataStore ব্যবহার করা

Proto DataStore ব্যবহারের জন্য আপনাকে Proto Buffers সেটআপ করতে হবে, যা টাইপ-সেফ ডেটা সংরক্ষণের জন্য আরও ভালো।


কখন কোনটা ব্যবহার করবেন?

🔹 যদি সাধারণ কী-মান (key-value) ডেটা সংরক্ষণ করতে চানPreferences DataStore ব্যবহার করুন।
🔹 যদি কমপ্লেক্স স্ট্রাকচার (Object, List) সংরক্ষণ করতে চানProto DataStore ব্যবহার করুন।


উপসংহার

DataStore হল SharedPreferences-এর চেয়ে আধুনিক, দ্রুত, নিরাপদ ও স্কেলযোগ্য সমাধান, যা অ্যাসিনক্রোনাস ভাবে কাজ করে এবং বড় ডেটা সংরক্ষণ ও পরিচালনার জন্য উপযোগী। 🚀

আপনি কি কোনো নির্দিষ্ট জায়গায় গভীরভাবে জানতে চান? 😊

Comments

Popular posts from this blog

AI (Artificial Intelligence) সহজভাবে বোঝার জন্য একদম মস্তিষ্ক-বান্ধব ব্যাখ্যা 🧠🤖

🧠 Regex কী?

Kotlin-এ ভেরিয়েবল ঘোষণা করার দুই উপায়