DataStore কি?
DataStore কি?
DataStore হলো SharedPreferences-এর একটি আধুনিক বিকল্প, যা Android Jetpack লাইব্রেরির অংশ। এটি ডেটা সংরক্ষণ করতে কী-মান (key-value) পেয়ার ব্যবহার করে, কিন্তু SharedPreferences-এর তুলনায় অনেক বেশি দক্ষ, নিরাপদ এবং আধুনিক।
কেন DataStore ব্যবহার করবেন?
☑ SharedPreferences-এর সীমাবদ্ধতা:
- এটি সিঙ্গেল থ্রেডে (Single Thread) ব্লকিং করে কাজ করে, যার ফলে অ্যাপ ল্যাগ করতে পারে।
- ডেটা অ্যাসিনক্রোনাসলি (Asynchronously) সংরক্ষণ করা যায় না।
- বড় বা জটিল ডেটার জন্য কার্যকর নয়।
☑ DataStore-এর সুবিধা:
✅ অ্যাসিনক্রোনাস (Asynchronous)—ব্যাকগ্রাউন্ডে কাজ করে, অ্যাপকে স্লো করে না।
✅ টাইপ-সেফ (Type-safe)—ডেটা টাইপ মেনে চলে, কোনো ভুল ডেটা সংরক্ষণ হয় না।
✅ ক্যাশিং সুবিধা—ডেটা দ্রুত অ্যাক্সেস করা যায়।
✅ প্রশস্তযোগ্য (Scalable)—বড় এবং জটিল ডেটার জন্য উপযুক্ত।
DataStore-এর ধরন
DataStore দুই ধরনের:
- Preferences DataStore – কী-মান (key-value) আকারে ডেটা সংরক্ষণ করে।
- Proto DataStore – Protocol 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
Post a Comment