DataStore
| লেটেস্ট আপডেট | স্টেবল রিলিজ | রিলিজ ক্যান্ডিডেট | বিটা রিলিজ | আলফা রিলিজ |
|---|---|---|---|---|
| ১২ অক্টোবর, ২০২৬ | ১.২.১ | 1.3.0-rc01 | - | - |
ডিপেন্ডেন্সি ঘোষণা করা
DataStore-এ ডিপেন্ডেন্সি যোগ করতে, আপনার প্রোজেক্টে Google Maven রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য Google-এর Maven রিপোজিটরি পড়ুন।
DataStore সিরিয়ালাইজেশনের জন্য বিভিন্ন বিকল্প প্রদান করে , এর মধ্যে থেকে একটি বেছে নিন। এছাড়াও, আপনি যেকোনও ইমপ্লিমেন্টেশনে Android-মুক্ত ডিপেন্ডেন্সি যোগ করতে পারেন।
আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় ইমপ্লিমেন্টেশনের জন্য
ডিপেন্ডেন্সি যোগ করুন:
Preferences DataStore
আপনার gradle ফাইলের ডিপেন্ডেন্সি অংশে নিম্নলিখিত লাইন যোগ করুন:
গ্ৰুভি
dependencies { // Preferences DataStore (SharedPreferences like APIs) implementation "androidx.datastore:datastore-preferences:1.2.1" // Alternatively - without an Android dependency. implementation "androidx.datastore:datastore-preferences-core:1.2.1" }
Kotlin
dependencies { // Preferences DataStore (SharedPreferences like APIs) implementation("androidx.datastore:datastore-preferences:1.2.1") // Alternatively - without an Android dependency. implementation("androidx.datastore:datastore-preferences-core:1.2.1") }
ঐচ্ছিক RxJava সাপোর্ট যোগ করতে, নিম্নলিখিত ডিপেন্ডেন্সি যোগ করুন:
গ্ৰুভি
dependencies { // optional - RxJava2 support implementation "androidx.datastore:datastore-preferences-rxjava2:1.2.1" // optional - RxJava3 support implementation "androidx.datastore:datastore-preferences-rxjava3:1.2.1" }
Kotlin
dependencies { // optional - RxJava2 support implementation("androidx.datastore:datastore-preferences-rxjava2:1.2.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-preferences-rxjava3:1.2.1") }
DataStore
আপনার gradle ফাইলের ডিপেন্ডেন্সি অংশে নিম্নলিখিত লাইনগুলি যোগ করুন:
গ্ৰুভি
dependencies { // Typed DataStore for custom data objects (for example, using Proto or JSON). implementation "androidx.datastore:datastore:1.2.1" // Alternatively - without an Android dependency. implementation "androidx.datastore:datastore-core:1.2.1" }
Kotlin
dependencies { // Typed DataStore for custom data objects (for example, using Proto or JSON). implementation("androidx.datastore:datastore:1.2.1") // Alternatively - without an Android dependency. implementation("androidx.datastore:datastore-core:1.2.1") }
RxJava সংক্রান্ত সহায়তার জন্য নিম্নলিখিত ঐচ্ছিক ডিপেন্ডেন্সি যোগ করুন:
গ্ৰুভি
dependencies { // optional - RxJava2 support implementation "androidx.datastore:datastore-rxjava2:1.2.1" // optional - RxJava3 support implementation "androidx.datastore:datastore-rxjava3:1.2.1" }
Kotlin
dependencies { // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.2.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.2.1") }
কন্টেন্ট সিরিয়ালাইজ করতে, Protocol Buffers বা JSON সিরিয়ালাইজেশনের জন্য ডিপেন্ডেন্সি যোগ করুন।
JSON সিরিয়ালাইজেশন
JSON সিরিয়ালাইজেশন ব্যবহার করতে, আপনার Gradle ফাইলে নিম্নলিখিতগুলি যোগ করুন:
গ্ৰুভি
plugins { id("org.jetbrains.kotlin.plugin.serialization") version "2.2.20" } dependencies { implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0" }
Kotlin
plugins { id("org.jetbrains.kotlin.plugin.serialization") version "2.2.20" } dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0") }
Protobuf সিরিয়ালাইজেশন
Protobuf সিরিয়ালাইজেশন ব্যবহার করতে, আপনার Gradle ফাইলে নিম্নলিখিত কোড যোগ করুন:
গ্ৰুভি
plugins { id("com.google.protobuf") version "0.9.5" } dependencies { implementation "com.google.protobuf:protobuf-kotlin-lite:4.32.1" } protobuf { protoc { artifact = "com.google.protobuf:protoc:4.32.1" } generateProtoTasks { all().forEach { task -> task.builtins { create("java") { option("lite") } create("kotlin") } } } }
Kotlin
plugins { id("com.google.protobuf") version "0.9.5" } dependencies { implementation("com.google.protobuf:protobuf-kotlin-lite:4.32.1") } protobuf { protoc { artifact = "com.google.protobuf:protoc:4.32.1" } generateProtoTasks { all().forEach { task -> task.builtins { create("java") { option("lite") } create("kotlin") } } } }
মতামত
আপনার মতামত Jetpack-কে আরও ভালো করে তুলতে সাহায্য করে। আপনি নতুন কোনও সমস্যা খুঁজে পেলে বা এই লাইব্রেরি উন্নত করার জন্য কোনও আইডিয়া থাকলে, আমাদের জানান। নতুন সমস্যা তৈরি করার আগে এই লাইব্রেরিতে আগে থেকে থাকা সমস্যা দেখে নিন। আপনি স্টার বোতামে ক্লিক করে আগে থেকে থাকা কোনও সমস্যার জন্য ভোট দিতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
ভার্সন ১.৩
ভার্সন 1.3.0-rc01
১২ অক্টোবর, ২০২৬
androidx.datastore:datastore-*:1.3.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.3.0-rc01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
EdgeToEdge#enable()(Ibff3e)-এর পরিবর্তেWindowCompat#enableEdgeToEdge(Window)ব্যবহার করুন
সমস্যার সমাধান
androidx.lifecycle:lifecycle-runtimeডিপেনডেন্সি আপডেট করে 2.10.0 করা হয়েছে। AGP ভার্সন 9.5.0-alpha04 বা তার পরবর্তী ভার্সনের সাথে বান্ডেল করা লাইফসাইকেল রানটাইম লিন্ট চেক চালানোর জন্য এই ভার্সনটি প্রয়োজন। (I99bfd, b/556807521)
ভার্সন 1.3.0-alpha11
সেপ্টেম্বর 09, 2026
androidx.datastore:datastore-*:1.3.0-alpha11 রিলিজ করা হয়েছে। 1.3.0-alpha11 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
DataStoreপছন্দ পার্সিং ব্যর্থতার সময়CorruptionExceptionমেসেজে অন্তর্নিহিত ফাইল পাথ অন্তর্ভুক্ত করা হয় না। (Ia9e8f)
ভার্সন 1.3.0-alpha10
২৯ জুলাই, ২০২৬
androidx.datastore:datastore-*:1.3.0-alpha10 রিলিজ করা হয়েছে। 1.3.0-alpha10 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
GeneralSecurityException in AeadSerializer is now wrapped in CorruptionException for better CorruptionHandler integration.(I26e56, b/514941919)
ভার্সন 1.3.0-alpha09
৬ মে, ২০২৬
androidx.datastore:datastore-*:1.3.0-alpha09 রিলিজ করা হয়েছে। 1.3.0-alpha09 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ReThrowCorruptionHandlerসর্বজনীন করুন। (I137bb, b/427722902)- সিস্টেম ট্রেসিংয়ের সাথে ট্রেসিং লাইফসাইকেল সামঞ্জস্যপূর্ণ করুন। (Ib391b)
ভার্সন 1.3.0-alpha08
২২ এপ্রিল, ২০২৬
androidx.datastore:datastore-*:1.3.0-alpha08 রিলিজ করা হয়েছে। 1.3.0-alpha08 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
- ওয়েব প্ল্যাটফর্মের জন্য DataStore-এ অরিজিন প্রাইভেট ফাইল সিস্টেম (OPFS)-এর জন্য সহায়তা যোগ করা হয়েছে। এই ইমপ্লিমেন্টেশন
WebOpfsStorageনিয়ে আসে এবং এতে অ্যাসিঙ্ক্রোনাস ফাইল I/O,BroadcastChannelAPI ব্যবহার করে ক্রস-ট্যাব বিজ্ঞপ্তি এবং এক্সক্লুসিভ রাইট অ্যাক্সেসের জন্য নেটিভWeb Locks API-এর মাধ্যমে ডিস্ট্রিবিউটেড লকিংয়ের জন্য আর্কিটেকচারাল সাপোর্ট অন্তর্ভুক্ত থাকে। Id7f5807 b/316376114
API-তে পরিবর্তন
- ওয়েব এনভায়রনমেন্টে এক্সপ্লিসিট স্টোরেজ টাইপ ম্যানেজমেন্টের জন্য
WebLocalStorageওWebSessionStorageAPI চালু করা হয়েছে। I35fa259b b/316376114
Version 1.3.0-alpha07
১১ মার্চ, ২০২৬
androidx.datastore:datastore-*:1.3.0-alpha07 রিলিজ করা হয়েছে। 1.3.0-alpha07 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
- এনক্রিপশন সংক্রান্ত সহায়তা: নতুন
androidx.datastore:datastore-tinkআর্টিফ্যাক্ট নিয়ে আসা হয়েছে যা Tink লাইব্রেরি ব্যবহার করে আপনার ডেটাস্টোর এনক্রিপ্ট করার জন্য সহায়তা প্রদান করে। এই মডিউলAeadSerializer-এর সাথে পরিচয় করায়, এটি হল একটি নতুন র্যাপার ক্লাস যাSerializer<T>প্রয়োগ করে এবং ডেটা এনক্রিপ্ট ও ডিক্রিপ্ট করার জন্য Tink-এর অ্যাসোসিয়েটেড ডেটা (AEAD) সহ যাচাই করা এনক্রিপশন ব্যবহার করে।AeadSerializerJVM এবং Android টার্গেট প্ল্যাটফর্মে ব্যবহার করার জন্য উপলভ্য। - নতুন
DataStoreBuilder API:DataStoreFactory-এর স্কেলেবল বিকল্প হিসেবেDataStore.Builder<T>চালু করা হয়েছে। এই নতুন API-এর মাধ্যমে, ব্যবহারকারীরা এখনsetCorruptionHandler-এর মাধ্যমে নিজেদের দুর্নীতি সংক্রান্ত যুক্তি প্রদান করতে পারবেন। এছাড়াও,BuilderAPI-এর জন্যCoroutineScope-এর পরিবর্তেCoroutineContextব্যবহার করেDataStore-কে ইনিশিয়ালাইজ করতে হয়। এটি হল স্ট্রাকচার্ড কনকারেন্সি সংক্রান্ত একটি উন্নতি, কারণ এটি কলকারীদের এক্সিকিউশন আচরণ (যেমন, নির্দিষ্ট ডিসপ্যাচার) নির্ধারণ করতে দেয়। এর ফলেDataStore-কে কলকারীর স্কোপের লাইফসাইকেল অনুপযুক্তভাবে ম্যানেজ করতে বা তার দ্বারা আবদ্ধ থাকতে হয় না।মনে রাখবেন: আমরা সব ব্যবহারকারীকে
DataStoreFactoryথেকে নতুনDataStore.BuilderAPI-তে মাইগ্রেট করার সাজেশন দিই।CoroutineScope-এর পরিবর্তেCoroutineContext-এর প্রয়োজন হওয়ার ফলে, API আরও ভালভাবে স্ট্রাকচার করা কনকারেন্সি প্রয়োগ করে। এটি নিশ্চিত করে যে DataStore অপারেশনগুলি স্বল্প-মেয়াদী UI লাইফসাইকেলের (যেমন,viewModelScope) সাথে আবদ্ধ নয়, যা অকাল বাতিলকরণ এবং সম্ভাব্য ডেটা ক্ষতি প্রতিরোধ করে।সতর্কতা: নিশ্চিত করুন যে বিল্ডারকে প্রদান করা
CoroutineContext-এ একটিJobআছে এবং এটি অ্যাপ্লিকেশন-স্কোপড। কন্টেক্সট বাতিল করা হলে,DataStore-এর ইন্টার্নাল অপারেশন সময়ের আগেই বন্ধ হয়ে যাবে।
API-তে পরিবর্তন
DataStoreএনক্রিপশন সংক্রান্ত সহায়তার জন্য নতুনandroidx.datastore:datastore-tinkআর্টিফ্যাক্ট নিয়ে আসা হয়েছে। (Ic106d, b/167697691)Tink ব্যবহার করে ডেটা এনক্রিপ্ট করতে, এইসব ধাপ অনুসরণ করুন:
Tink API ব্যবহার করে 'কী' তৈরি করুন:
val keysetHandle = AndroidKeysetManager.Builder() .withSharedPref(applicationContext, "keyset", "keyset_prefs") .withKeyTemplate(KeyTemplate.createFrom(PredefinedAeadParameters.AES256_GCM)) .withMasterKeyUri("android-keystore://master_key") .build() .keysetHandleআগে থেকে থাকা সিরিয়ালাইজারকে র্যাপ করে এমন একটি
AeadSerializerতৈরি করুন:val aeadSerializer = AeadSerializer( // Use tink APIs to create an Aead object to encrypt/decrypt data. aead = keysetHandle.getPrimitive( RegistryConfiguration.get(), Aead::class.java, ), // AeadSerializer can wrap an existing serializer. wrappedSerializer = ExistingSerializer, // Specify a unique name to prevent a ciphertext swapping attack. associatedData = "settings.json".encodeToByteArray(), )ডেটা স্টোর ইনস্ট্যান্স তৈরি করার সময় আপনার সিরিয়ালাইজারের পরিবর্তে এই
aeadSerializerব্যবহার করুন:val dataStore = dataStore( fileName = "settings.json", serializer = aeadSerializer, scope = scope, )
DataStoreFactory-এর আধুনিক, স্কেলেবেল বিকল্প হিসেবেDataStore.Builder<T>নিয়ে আসা হয়েছে। (I3b110, b/267785821, b/400507108, b/368385681, b/427722902, b/370838564, b/167697691)
ভার্সন 1.3.0-alpha06
২৫ ফেব্রুয়ারি, ২০২৬
androidx.datastore:datastore-*:1.3.0-alpha06 রিলিজ করা হয়েছে। ভার্সন 1.3.0-alpha06-এ এইসব কমিট রয়েছে।
নতুন ফিচার
DataStoreএখন Android টার্গেট প্ল্যাটফর্মেandroidx.tracingসাপোর্ট করে। আপনিDataStoreFactory.createWithTracing()ফাংশনেandroidx.tracing.Tracerইনস্ট্যান্স প্রদান করে ট্রেসিং সহDataStoreতৈরি করতে পারবেন। (I71bc2, b/427722902)
ভার্সন 1.3.0-alpha05
২৮ জানুয়ারি, ২০২৬
androidx.datastore:datastore-*:1.3.0-alpha05 রিলিজ করা হয়েছে। 1.3.0-alpha05 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
- বেসলাইন প্রোফাইল ডেটাস্টোরে যোগ করা হয়েছে। (3916245,b/469127532).
localStorage-এর মাধ্যমে DataStore-এ WASM/JS সাপোর্ট প্রয়োগ করুন। এটি ক্রস-ট্যাব ইভেন্ট বিজ্ঞপ্তি ও সিঙ্ক করার সুবিধা চালু করার মাধ্যমে বর্তমানsessionStorageপ্রয়োগের থেকে আলাদা সুবিধা প্রদান করে। (I67246, b/441511612)
ভার্সন 1.3.0-alpha04
১৪ জানুয়ারি, ২০২৬
androidx.datastore:datastore-*:1.3.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.3.0-alpha04-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- পছন্দ
DataStore-এর ডেটা আপডেট করার জন্য ব্যবহার করা যেতে পারে এমন একটি ইউটিলিটি কপি ফাংশন যোগ করা হয়েছে। (I70a18, b/467120382)
সমস্যার সমাধান
- ওয়েবের জন্য Base64 এনকোডিংয়ের মাধ্যমে UTF-8 স্ট্রিং হ্যান্ডেল করার সুবিধা পরিবর্তন করে স্টোরেজের সময় বাইনারি ডেটা ভুল ফর্ম্যাটে থাকার সমস্যা সমাধান করা হয়েছে। (Ie3178, b/473790107)
ভার্সন 1.3.0-alpha03
১৭ ডিসেম্বর, ২০২৫
androidx.datastore:datastore-*:1.3.0-alpha03 রিলিজ করা হয়েছে। 1.3.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- অস্থায়ী ডেটাস্টোর ফাইলের নাম পরিবর্তন করার সময় হওয়া সমস্যা সমাধান করা হয়েছে। (I94f89, b/203087070)
- একই সাথে রিড/রাইট করার সময় আপডেট ড্রপ হওয়া আটকানোর জন্য সমস্যার সমাধান করা হয়েছে।
DataStore.data-এ নতুন কালেক্টর এবং একই সাথেupdateDataকলের মধ্যে রেস কন্ডিশন হতে পারে, যার ফলে কালেক্টর নতুন ভ্যালু মিস করতে পারে। (I6a427, b/431787506)
ভার্সন 1.3.0-alpha02
৩ ডিসেম্বর, ২০২৫
androidx.datastore:datastore-*:1.3.0-alpha02 রিলিজ করা হয়েছে। 1.3.0-alpha02 ভার্সনে এইসব কমিট আছে।
সমস্যার সমাধান
androidx.datastore-এ js() টার্গেট যোগ করুন। (I1f62b, b/441511612)GuavaDataStoreআপডেটে FIFO অর্ডারিং প্রয়োগ করুন। (I6fd00,b/451491257)
ভার্সন 1.3.0-alpha01
১৯ নভেম্বর, ২০২৫
androidx.datastore:datastore-*:1.3.0-alpha01 রিলিজ করা হয়েছে। 1.3.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
sessionStorageAPI ব্যবহার করেDataStore-এ KMP ওয়েব সাপোর্ট যোগ করা হয়েছে। এই ফিচারDataStore-কে একটি ব্রাউজার ট্যাবের মধ্যে সাময়িকভাবে ডেটা সেভ করে রাখতে দেয়। (I60fad, b/316376114)
ভার্সন ১.২
ভার্সন 1.2.1
১১ মার্চ, ২০২৬
androidx.datastore:datastore-*:1.2.1 রিলিজ করা হয়েছে। 1.2.1 ভার্সনে এইসব কমিট রয়েছে।
কোনও পরিবর্তন করা হয়নি
- এই রিলিজে ইনফ্রাস্ট্রাকচার সংক্রান্ত ছোটখাটো সমস্যার সমাধান করা হয়েছে এবং এতে ভার্সন 1.2.0 থেকে কোনও DataStore API বা আচরণগত পরিবর্তন অন্তর্ভুক্ত নেই।
ভার্সন ১.২.০
১৯ নভেম্বর, ২০২৫
androidx.datastore:datastore-*:1.2.0 রিলিজ করা হয়েছে। ভার্সন ১.২.০-এ এইসব কমিট রয়েছে।
1.1.0 রিলিজের পর থেকে হওয়া বড় পরিবর্তন
Java/Guava সহায়তা:
GuavaDataStore-এর মাধ্যমে Java ও GuavaListenableFutureব্যবহারকারীদের জন্য API-কে আরও সহজ করে তুলতে নতুনdatastore-guavaমডিউল যোগ করা হয়েছে।GuavaDataStore-এর মধ্যে মাল্টিপ্রসেস সাপোর্ট যোগ করা হয়েছে।GuavaDataStore.from-এর জন্য একটি ওভারলোড যোগ করা হয়েছে যা JavaExecutor(CoroutineContext-এর পরিবর্তে) গ্রহণ করে এবংandroidx.core.util.Functionব্যবহার করে।
ডাইরেক্ট বুট সাপোর্ট:
- সরাসরি বুট মোডে DataStore ব্যবহার করা এখন কাজ করে।
DataStoreFactory-এcreateInDeviceProtectedStorage()এবংDataStoreDelegate-এdeviceProtectedDataStore()-এর মতো নতুন API, ডিভাইস সুরক্ষিত স্টোরেজের মধ্যে DataStore তৈরি করার অনুমতি দেয়।
স্টোরেজ ও API সংক্রান্ত পরিবর্তন:
PreferencesFileSerializerযোগ করা হয়েছে যাFileStorage-এর সাথে ব্যবহার করার জন্যandroidx.datastore.core.Serializerপ্রয়োগ করে।- সাধারণ কোড ব্যবহারের জন্য
ReplaceFileCorruptionHandler-এর ডিফল্ট কনস্ট্রাক্টর সংজ্ঞায়িত করা হয়েছে।
সমস্যার সমাধান:
- R8-এর মাধ্যমে অপ্টিমাইজ করা অ্যাপে
DataStoreব্যবহার করার সময়java.lang.UnsatisfiedLinkErrorসংক্রান্ত সমস্যার সমাধান করা হয়েছে, তবে স্ট্যান্ডার্ড ProGuard ফাইল ব্যবহার করা হয়নি। - নির্দিষ্ট IO ডিসপ্যাচারের পরিবর্তে কলিং থ্রেডে (যেমন, প্রধান থ্রেড)
GuavaDataStoreঅপারেশন ভুলভাবে রান করার সমস্যা সমাধান করা হয়েছে। - রেস কন্ডিশনের ক্ষেত্রে ডেটা রিড করার জন্য দ্বিতীয়বার চেষ্টা করার সুবিধা যোগ করে স্টার্ট-আপে
OkioStorage-এFileNotFoundExceptionসংক্রান্ত সমস্যার সমাধান করা হয়েছে।
ভার্সন 1.2.0-rc01
৫ নভেম্বর, ২০২৫
androidx.datastore:datastore-*:1.2.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.2.0-rc01-এ এইসব কমিট রয়েছে।
Version 1.2.0-beta01
২২ অক্টোবর, ২০২৫
androidx.datastore:datastore-*:1.2.0-beta01 রিলিজ করা হয়েছে। 1.2.0-beta01 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
CorruptionHandlerসর্বজনীন করুন। (I9ac35, b/452406457)GuavaDataStore-এandroidx.core.util.Functionব্যবহার করুন। (I71eae, b/448563999)GuavaDataStore.from-এর জন্য একটি ওভারলোড যোগ করুন যাCoroutineContext-এর পরিবর্তে একটি Executor নেয়। (I989fa, b/448563183)
সমস্যার সমাধান
- R8-এর মাধ্যমে অপ্টিমাইজ করা হয়েছে এমন অ্যাপে
DataStoreব্যবহার করার সময়java.lang.UnsatisfiedLinkErrorসংক্রান্ত সমস্যা সমাধান করুন, তবেgetDefaultProguardFile('android-proguard-optimize.txt')ব্যবহার করা হচ্ছে না। (I27d0d, b/434696293) - নির্দিষ্ট IO ডিসপ্যাচারের পরিবর্তে কলিং থ্রেডে (যেমন, মূল থ্রেড)
GuavaDataStoreঅপারেশন ভুলভাবে রান করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Ic91ea,b/441801112)
ভার্সন 1.2.0-alpha02
৭ মে, ২০২৫
androidx.datastore:datastore-*:1.2.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.2.0-alpha02-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
GuavaDataStore-এ মাল্টিপ্রসেস সংক্রান্ত সহায়তা যোগ করা হয়েছে। (e0d608a).DataStoreথেকেGuavaDataStoreতৈরি করার জন্য একটি হেল্পার পদ্ধতি যোগ করা হয়েছে। (9af26f4)- Kotlin 2.0-এর সাথে রিলিজ করা প্রোজেক্ট ব্যবহার করার জন্য KGP 2.0.0 বা এর পরের যেকোনও ভার্সন প্রয়োজন। (Idb6b5)
- সরাসরি বুট করার সময় ব্যবহার করার জন্য DataStore শুরু করতে, আগে থেকে থাকা
datastoreওভারলোডের পরিবর্তে একটি ডেলিগেট পদ্ধতি ব্যবহার করুন। (If71b9)
Version 1.2.0-alpha01
২৬ মার্চ, ২০২৫
androidx.datastore:datastore-*:1.2.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.2.0-alpha01-এ এইসব কমিট রয়েছে।
নতুন ফিচার
GuavaDataStore-এর মাধ্যমে Java ও GuavaListenableFutureব্যবহারকারীদের জন্য API-কে আরও সহজলভ্য করতেdatastore-guavaমডিউল যোগ করা হয়েছে। (Iadd5e0)DirectBootমোড চলাকালীনDataStoreব্যবহার করার সুবিধা এখন উপলভ্য। সরাসরি বুট মোডে ব্যবহার করার জন্য ডেটাস্টোর তৈরি করতে হলে, এটি অবশ্যই ডিভাইস সুরক্ষিত স্টোরেজের মধ্যে তৈরি করতে হবে। এটি নিম্নলিখিত নতুনDataStoreAPI-এর মাধ্যমে করা যেতে পারে:DataStoreFactory-এcreateInDeviceProtectedStorage()এবংDataStoreDelegate-এdeviceProtectedDataStore()। (Ib90e56)
API-তে পরিবর্তন
PreferencesFileSerializerযোগ করা হয়েছে যাFileStorage-এর সাথে ব্যবহার করার জন্যandroidx.datastore.core.Serializerইন্টারফেস প্রয়োগ করে। (I4c71f3)
সমস্যার সমাধান
- রেস কন্ডিশনের ক্ষেত্রে ডেটা রিড করার জন্য দ্বিতীয়বার চেষ্টা করার সুবিধা যোগ করে স্টার্ট-আপে
OkioStorage-এFileNotFoundExceptionসংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I43b3fb, b/337870543) - সাধারণ কোড ব্যবহারের জন্য
ReplaceFileCorruptionHandler-এর ডিফল্ট কনস্ট্রাক্টরকে সংজ্ঞায়িত করা হয়েছে। (I795b05, b/358138957)
ভার্সন ১.১
ভার্সন 1.1.7
২০ মে, ২০২৫
androidx.datastore:datastore-*:1.1.7 রিলিজ করা হয়েছে। ভার্সন 1.1.7-এ এইসব কমিট আছে।
সমস্যার সমাধান
datastore-preferences-core-এর Android আর্টিফ্যাক্টে Proguard সংক্রান্ত নিয়ম না থাকার সমস্যা সমাধান করা হয়েছে। (3f3f6e, b/413078297)
ভার্সন ১.১.৬
৭ মে, ২০২৫
androidx.datastore:datastore-*:1.1.6 রিলিজ করা হয়েছে। ভার্সন 1.1.6-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
1.1.5ভার্সনে Gradle মেটাডেটা ভেঙে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। নতুন AGP KMP প্লাগ-ইন DSL-এ একটি সমস্যার কারণে এই সমস্যাটি হয়েছে যা সমস্ত টার্গেট প্ল্যাটফর্মের মেটাডেটা অটোমেটিক অন্তর্ভুক্ত হতে বাধা দেয়। এই সমস্যার কারণে কিছু DataStore Android পদ্ধতি ক্লায়েন্টের বিল্ডে আর দেখা যায় না। এই সমস্যার সমাধান করতে,androidLibrary-এর পরিবর্তেbuild.gradle-এ পুরনোandroidDSL ব্যবহার করতে হবে। (7801abf)
ভার্সন 1.1.5
২৩ এপ্রিল, ২০২৫
androidx.datastore:datastore-*:1.1.5 রিলিজ করা হয়েছে। ভার্সন 1.1.5-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
PreferencesDataStore-এCorruptionExceptionসমস্যা কমানোর জন্য, ডিফল্ট স্টোরেজOkioStorageথেকে পরিবর্তন করেFileStorageকরা হয়েছে।PreferencesFileSerializerচালু করার মাধ্যমে এই পরিবর্তন করা হয়েছে। b/346197747
ভার্সন 1.1.4
২৬ মার্চ, ২০২৫
androidx.datastore:datastore-*:1.1.4 রিলিজ করা হয়েছে। ভার্সন 1.1.4-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
CorruptionExceptionকমিয়ে নির্ভরযোগ্যতা উন্নত করতে ডিফল্ট স্টোরেজOkioStorageথেকেFileStorage-এ পরিবর্তন করুন। (I71181, b/346197747)
ভার্সন 1.1.3
২৬ ফেব্রুয়ারি, ২০২৫
androidx.datastore:datastore-*:1.1.3 রিলিজ করা হয়েছে। 1.1.3 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- অ্যাপ চালু করার সময়
OkioStorage-এ হওয়াFileNotFoundExceptionসংক্রান্ত সমস্যার সমাধান করা হয়েছে। প্রথমবার ফাইলটি পড়ার চেষ্টা ব্যর্থ হলে, দ্বিতীয়বার চেষ্টা করা হবে। প্রথমবার পড়ার সময় অন্য কোনও প্রসেসের মাধ্যমে ফাইলটি তৈরি হওয়ার কারণে রেস কন্ডিশন তৈরি হলে এটি করা হয়। (I43b3f, b/337870543)
ভার্সন 1.1.2
১৫ জানুয়ারি, ২০২৫
androidx.datastore:datastore-*:1.1.2 রিলিজ করা হয়েছে। 1.1.2 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ওয়ার্ম রিড লেটেন্সি (
DataStore.data.first()) ৮ গুণ উন্নত করুন। (22b8a40) - KMP কমন কোড থেকে
ReplaceFileCorruptionHandlerতৈরি করা যেতে পারে। (7632e839)
ভার্সন ১.১.১
১ মে, ২০২৪
androidx.datastore:datastore-*:1.1.1 রিলিজ করা হয়েছে। ভার্সন 1.1.1-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- একাধিক
DataStoreইনস্ট্যান্স ফাইল লক ব্যাক-অফ করে বিভিন্ন প্রসেস থেকে লেখার চেষ্টা করলে, "রিসোর্স ডেডলক হবে" ত্রুটির ক্ষেত্রে Linux-এ ভুল অ্যালার্ম কমানো হয়েছে।
ভার্সন 1.1.0
১৭ এপ্রিল, ২০২৪
androidx.datastore:datastore-*:1.1.0 রিলিজ করা হয়েছে। 1.1.0 ভার্সনে এইসব কমিট রয়েছে।
1.0.0 রিলিজের পর থেকে হওয়া বড় পরিবর্তন
আরও তথ্যের জন্য 1.1.0-এর আলফা ও বিটা ভার্সনের রিলিজ নোট পর্যালোচনা করুন। 1.1.0-এর কিছু প্রধান আপডেট হল:
- DataStore এখন একাধিক প্রসেসকে একই ফাইল অ্যাক্সেস করার অনুমতি দেয়, সাথে প্রসেস জুড়ে পর্যবেক্ষণ করার সুবিধাও দেয়।
- নতুন স্টোরেজ ইন্টারফেস আপনাকে আপনার ডেটা মডেলগুলি কীভাবে স্টোর বা সিরিয়ালাইজ করতে হয় তা কাস্টমাইজ করতে দেয়।
- আপনি এখন Kotlin Multiplatform প্রোজেক্টে DataStore ব্যবহার করতে পারবেন।
ভার্সন 1.1.0-rc01
৩ এপ্রিল, ২০২৪
androidx.datastore:datastore-*:1.1.0-rc01 রিলিজ করা হয়েছে। 1.1.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- পারফর্ম্যান্স কমে যাওয়ার সমস্যা সমাধান করা হয়েছে, যেখানে নতুন ডেটা পুরনো ডেটার (d64cfb5) মতো হলে
updateDataকল ডিস্ক রাইটে অপ্টিমাইজ করেনি - ইনিশিয়ালাইজেশনের সময়
MultiProcessDataStoreইনভ্যালিডেশন মিস করতে পারে এমন রেস কন্ডিশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে। ((b/326141553),(094c2dd))
ভার্সন 1.1.0-beta02
৬ মার্চ, ২০২৪
androidx.datastore:datastore-*:1.1.0-beta02 রিলিজ করা হয়েছে। 1.1.0-beta02 ভার্সনে এইসব কমিট আছে।
সমস্যার সমাধান
DataStore-এ পারফর্ম্যান্সের উন্নতি শুধুমাত্র আপডেট বিজ্ঞপ্তি সংগ্রহ করে যখন এটি লক্ষ্য করা হয়। (b/267792241)- মনে রাখবেন, আপনি Coroutines টেস্টিং লাইব্রেরি ব্যবহার করলে, এই পরিবর্তন আপনার টেস্টে
UncompletedCoroutinesErrorট্রিগার করতে পারে। এই সমস্যা এড়াতে আপনার টেস্টেDataStoreশুরু করার সময় আপনিTestScope.backgroundScopeপাস করেছেন কিনা তা নিশ্চিত করুন।
- মনে রাখবেন, আপনি Coroutines টেস্টিং লাইব্রেরি ব্যবহার করলে, এই পরিবর্তন আপনার টেস্টে
- একই ইনস্ট্যান্সে নেস্ট করা
updateDataকল করলে ডেডলক হয়ে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (b/241760537) - মাইগ্রেশনের সময়
SharedPreferencesমুছে ফেলতে না পারলে,DataStoreআরIOExceptionsথ্রো করবে না। (b/195553816) - Android নয় এমন JVM এনভায়রনমেন্টে
updateDataচলাকালীন ফাইলের নাম পরিবর্তন না হওয়ার সমস্যা সমাধান করা হয়েছে। (b/203087070) DataStoreইনিশিয়ালাইজেশনের পরেCorruptionExceptionম্যানেজ না হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (b/289582516)
ভার্সন 1.1.0-beta01
১০ জানুয়ারি, ২০২৪
1.1.0-alpha07 থেকে androidx.datastore:datastore-*:1.1.0-beta01-এ কোনও পরিবর্তন করা হয়নি। ভার্সন 1.1.0-beta01-এ এইসব কমিট রয়েছে।
Version 1.1.0-alpha07
২৯ নভেম্বর, ২০২৩
androidx.datastore:datastore-*:1.1.0-alpha07 রিলিজ করা হয়েছে। 1.1.0-alpha07 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
MultiProcessDataStoreFactoryপদ্ধতি আর পরীক্ষামূলক নেই।@ExperimentalMultiProcessDataStoreঅ্যানোটেশন সম্পূর্ণভাবে সরিয়ে দেওয়া হয়েছে। (Ieee54, I8e607)
সমস্যার সমাধান
- 1.1.0-alpha07-এ
@ExperimentalMultiProcessDataStoreঅ্যানোটেশন সরানোর সুবিধা রোল-আউট করুন। (I8e607)
ভার্সন 1.1.0-alpha06
১ নভেম্বর ২০২৩
androidx.datastore:datastore-*:1.1.0-alpha06 রিলিজ করা হয়েছে। ভার্সন 1.1.0-alpha06-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
createMultiProcessCoordinator-এর সাথে সামঞ্জস্যপূর্ণ হতেcreateSingleProcessCoordinatorফ্যাক্টরি পদ্ধতি এখন একটি ফাইল পাথ (String,java.io.Fileএবংokio.Path) গ্রহণ করে। (I211c8, b/305755935)
ভার্সন 1.1.0-alpha05
৬ সেপ্টেম্বর, ২০২৩
androidx.datastore:datastore-*:1.1.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.1.0-alpha05-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Datastore
FileStorageএখন সর্বজনীনভাবে উপলভ্য, তাই ক্লায়েন্ট কাস্টম প্যারামিটার প্রদান করতে পারবে। (Icb985) OkioStorageকনস্ট্রাক্টরকেInterProcessCoordinatorগ্রহণ করার জন্য পরিবর্তন করা হয়েছে যাতে এটিMultiProcessCoordinator-এর সাথে Android-এ ব্যবহার করা যায়। (Iecea3)
সমস্যার সমাধান
MultiProcessCoordinatorএকই ডিরেক্টরিতে একাধিক ফাইল মনিটর করতে না পারার সমস্যা সমাধান করা।- ফাইলের পাথ নরমালাইজ করা না থাকলে, ডুপ্লিকেট ফাইল শনাক্ত করতে না পারার সমস্যা সমাধান করুন।
RxDataStore#isDisposedথেকে পাওয়া ভুল ভ্যালু ঠিক করুন।datstore-preferences-coreআর্টিফ্যাক্টের জন্য অনুপস্থিত প্রোগার্ড কনফিগারেশন ঠিক করুন।
ভার্সন 1.1.0-alpha04
৫ এপ্রিল, ২০২৩
androidx.datastore:datastore-*:1.1.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.1.0-alpha04-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- আপডেট করার পরে
DataStore-এর ডেটা ফ্লো পুরনো ভ্যালু এমিট করতে পারে এমন রেস কন্ডিশন এড়াতে ইন্টার্নাল প্রয়োগ উন্নত করুন।
ভার্সন 1.1.0-alpha03
২৪ মার্চ, ২০২৩
androidx.datastore:datastore-*:1.1.0-alpha03 রিলিজ করা হয়েছে।
সমস্যার সমাধান
- Kotlin Native টার্গেটে (b/274786186, KT-57531) বিল্ড সংক্রান্ত সমস্যার সমাধান করতে Maven আর্টিফ্যাক্ট থেকে নির্ভরতা সংক্রান্ত সীমাবদ্ধতা সরিয়ে দেওয়া হয়েছে।
ভার্সন 1.1.0-alpha02
২২ মার্চ, ২০২৩
androidx.datastore:datastore-*:1.1.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.1.0-alpha02-এ এইসব কমিট রয়েছে।
মনে রাখবেন
মনে রাখবেন, এই ভার্সনে একটি গুরুত্বপূর্ণ ইন্টার্নাল রিফ্যাক্টর অন্তর্ভুক্ত রয়েছে যা সিঙ্গেল প্রসেস ও মাল্টি প্রসেস DataStore ইমপ্লিমেন্টেশনকে মার্জ করে। সম্ভাব্য অবাঞ্ছিত আচরণগত পরিবর্তন (যেমন, আপডেট বিজ্ঞপ্তি পাওয়ার সময়) সম্পর্কে নজর রাখুন। এই ধরনের পরিবর্তন সম্পর্কে অভিযোগ জানাতে আপনি ইস্যু ট্র্যাকার কম্পোনেন্ট ব্যবহার করতে পারেন।
নতুন ফিচার
- আপনি এখন KMM প্রোজেক্টে
DataStoreব্যবহার করতে পারবেন। মনে রাখবেন, DataStore-এর নন-Android টার্গেট এখনও পরীক্ষামূলক পর্যায়ে আছে, তবে আমরা ভার্সন মার্জ করার সিদ্ধান্ত নিয়েছি যাতে ডেভেলপাররা সহজেই সেগুলি ব্যবহার করে দেখতে পারেন। - মাল্টি প্রসেস ফিচার
androidx.datastore.multiprocessথেকেandroidx.datastore.core-এ সরানো হয়েছে। - ফাইল অপারেশনের জন্য
Storageঅবজেক্ট সহ DataStore ইনস্ট্যান্স তৈরি করতেandroidx.datastore.core.MultiProcessDataStoreFactory-এ একটি নতুন ফ্যাক্টরি পদ্ধতি যোগ করুন। - একটি নতুন ইন্টারফেস
InterProcessCoordinatorযোগ করুন যা একাধিক DataStore ইনস্ট্যান্সকে প্রসেস জুড়ে যোগাযোগ করতে সাহায্য করে। মনে রাখবেন,InterProcessCoordinator-এর মাল্টি-প্রসেস ইমপ্লিমেন্টেশন শুধুমাত্র Android-এ উপলভ্য।
API-তে পরিবর্তন
- datastore-core ইন্টারফেসে
InterProcessCoordinatorথেকেStorageConnectionযোগ করুন (I555bb) - Storage ব্যবহার করার জন্য datastore-core
MultiProcessDataStoreFactory-এ API পরিবর্তন করুন। (Iac02f) - datastore-multiprocess-এর পাবলিক API-কে datastore-core-এ সরান (I76d7c)
- datastore-preferences-core (I4b788) থেকে
PreferencesSerializerএক্সপোজ করা হয়েছে @JvmDefaultWithCompatibilityঅ্যানোটেশন যোগ করা হচ্ছে (I8f206)
ভার্সন 1.1.0-alpha01
৯ নভেম্বর, ২০২২
androidx.datastore:datastore-*:1.1.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.1.0-alpha01-এ এইসব কমিট রয়েছে।
নতুন ফিচার
- একাধিক প্রসেস জুড়ে
DataStoreইনস্ট্যান্সের মধ্যে ডেটা সামঞ্জস্য নিশ্চিত করা হয় এমন মাল্টি-প্রসেস ব্যবহারের ক্ষেত্রে সহায়তা করে। এই ধরনেরDataStoreইনস্ট্যান্স তৈরি করতেMultiProcessDataStoreFactory#createযোগ করুন। - নতুন স্টোরেজ ইন্টারফেস যা
Datastore-এর জন্য অন্তর্নিহিত স্টোরেজ মেকানিজমকে সুইচ আউট করার অনুমতি দেয়। java.io এবং okio-এর জন্য ইমপ্লিমেন্টেশন প্রদান করা হয়েছে।DataStoreফ্যাক্টরিতে নতুন পদ্ধতি আছে যা এই Storage অবজেক্ট গ্রহণ করে।
API-তে পরিবর্তন
- Storage ব্যবহার করার জন্য datastore-core
MultiProcessDataStoreFactory-এ API পরিবর্তন করুন। (Iac02f) - datastore-multiprocess-এ থাকা পাবলিক API-কে datastore-core-এ (I76d7c) সরানো
- datastore-preferences-core (I4b788) থেকে
PreferencesSerializerএক্সপোজ করা হয়েছে
ভার্সন 1.0.0
ভার্সন 1.0.0
৪ আগস্ট, ২০২১
androidx.datastore:datastore-*:1.0.0 রিলিজ করা হয়েছে। ভার্সন 1.0.0-এ এইসব কমিট আছে।
1.0.0-এর প্রধান ফিচার
Jetpack DataStore হল একটি ডেটা স্টোরেজ সমাধান যা আপনাকে প্রোটোকল বাফার সহ কী-ভ্যালু পেয়ার বা টাইপ করা অবজেক্ট স্টোর করতে দেয়। DataStore, অ্যাসিঙ্ক্রোনাস, সামঞ্জস্যপূর্ণ এবং ট্রানজ্যাকশনাল উপায়ে ডেটা স্টোর করার জন্য Kotlin coroutines এবং Flow ব্যবহার করে।
ভার্সন 1.0.0-rc02
২১ জুলাই, ২০২১
androidx.datastore:datastore-*:1.0.0-rc02 রিলিজ করা হয়েছে। ভার্সন 1.0.0-rc02-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- স্পষ্ট করে বলুন যে কোনও 'কী' না থাকলে
SharedPreferencesMigrationকাজ করে না। (Icfa32, b/192824325) MIGRATE_ALL_KEYSদিয়ে তৈরি করাSharedPreferencesMigration-এর ক্ষেত্রে অনুরোধ করা 'কী' এখনও না থাকলে, ব্যতিক্রম দেখানোর বাগটি ঠিক করুন। (Ie318a, b/192824325)
ভার্সন 1.0.0-rc01
৩০ জুন, ২০২১
androidx.datastore:datastore-*:1.0.0-rc01 রিলিজ করা হয়েছে। 1.0.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- .java ফাইল অসাবধানতাবশত ফাইনাল jar-এ যোগ হয়ে যাওয়ার সমস্যা সমাধান করে (I65d96, b/188985637)
ভার্সন 1.0.0-beta02
১৬ জুন, ২০২১
androidx.datastore:datastore-*:1.0.0-beta02 রিলিজ করা হয়েছে। ভার্সন 1.0.0-beta02-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
ClassVerificationFailureসংক্রান্ত সমস্যার সমাধান করুন (b/187450483)
ভার্সন 1.0.0-beta01
২১ এপ্রিল, ২০২১
androidx.datastore:datastore-*:1.0.0-beta01 রিলিজ করা হয়েছে। ভার্সন 1.0.0-beta01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- শুধুমাত্র Kotlin পদ্ধতির জন্য JVM ওভারলোড সরান (I2adc7)
সমস্যার সমাধান
- ডেটা স্টোর ডেলিগেটদের কারণে প্রসঙ্গ লিক হয়ে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে (Ie96fc, b/184415662)
Version 1.0.0-alpha08
১০ মার্চ, ২০২১
androidx.datastore:datastore-*:1.0.0-alpha08 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha08-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- আপনি এখন
dataStoreএবংpreferencesDataStoreপ্রপার্টি ডেলিগেটে প্রসঙ্গ-নির্ভর মাইগ্রেশন যোগ করতে পারবেন। (I4ef69, b/173726702) - আপনি যদি আর ডেটা স্টোর ডেলিগেট বা context.createDataStore ব্যবহার না করেন, তাহলে ফাইলের নাম পেতে সাহায্যকারী ফাংশন যোগ করে (I60f9a)
- Serializer writeTo এবং readFrom এখন সাসপেন্ড করা হচ্ছে। আপনি যদি সিরিয়ালাইজার প্রয়োগ করে থাকেন, তাহলে আপনাকে সাসপেন্ড ফাংশন হিসেবে আপনার ফাংশন আপডেট করতে হবে। (I1e58e)
- RxDataStore ব্যবহারকারীদের জন্য প্রপার্টি ডেলিগেট যোগ করা হয়েছে। (Ied768, b/173726702)
সমস্যার সমাধান
- এক্সপেরিমেন্টাল API-এর (I6aa29, b/174531520) সর্বজনীন ব্যবহারের উপর বিধিনিষেধ আরোপ করা
Version 1.0.0-alpha07
২৪ ফেব্রুয়ারি, ২০২১
androidx.datastore:datastore-*:1.0.0-alpha07 রিলিজ করা হয়েছে। 1.0.0-alpha07 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
Context.createDataStoreএক্সটেনশন ফাংশন সরিয়ে দেওয়া হয়েছে এবং তার পরিবর্তে globalDataStore প্রপার্টি ডেলিগেট ব্যবহার করা হয়েছে। আপনার Kotlin ফাইলের টপ লেভেলে globalDataStore একবার কল করুন। যেমন:val Context.myDataStore by dataStore(...)আপনার Kotlin ফাইলের সবচেয়ে উপরের লেভেলে এটি রাখুন যাতে এর শুধুমাত্র একটি ইনস্ট্যান্স থাকে। (I57215, b/173726702)
RxDataStore ফাংশন এখন DataStore-এ এক্সটেনশন ফাংশনের পরিবর্তে RxDataStore ক্লাসে রয়েছে। (Idccdb, b/177691248)
আপনি যদি EncryptedSharedPreferences (বা ডাইরেক্ট বুট SharedPreferences) DataStore-এ মাইগ্রেট করতে চান, তাহলে এখন আপনি নতুন SharedPreferencesMigration কনস্ট্রাক্টরের মাধ্যমে তা করতে পারবেন যা আপনাকে SharedPreferences ইনজেক্ট করার অনুমতি দেয়। (I8e04e, b/177278510)
সমস্যার সমাধান
- একই ফাইলের জন্য একাধিক অ্যাক্টিভ DataStore থাকলে, DataStore এখন একটি ব্যতিক্রম দেখাবে। আপনি যদি নিজের DataStore-কে Singleton হিসেবে ম্যানেজ না করে থাকেন অথবা কোনও ফাইলের জন্য DataStore-এর দুটি ইনস্ট্যান্স একই সাথে অ্যাক্টিভ নেই তা নিশ্চিত না করে থাকেন, তাহলে এখন DataStore-এ রিড বা রাইট করার সময় আপনি ব্যতিক্রম দেখতে পেতে পারেন। আপনার DataStore-কে Singleton হিসেবে ম্যানেজ করে এগুলি ঠিক করা যেতে পারে। (Ib43f4, b/177691248)
- কলার স্কোপ বাতিল করা হলে বাতিল করার আচরণ ঠিক করুন। (I2c7b3)
ভার্সন 1.0.0-alpha06
১৩ জানুয়ারি, ২০২১
androidx.datastore:datastore-*:1.0.0-alpha06 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha06-এ এইসব কমিট রয়েছে।
নতুন ফিচার
- DataStore-এর জন্য RxJava র্যাপার যোগ করা হয়েছে।
datastore-rxjava2/3আর্টিফ্যাক্টে মূল DataStore API-এর (RxDataStore,RxDataStoreBuilderএবংRxDataMigration) র্যাপার থাকে।datastore-preferences-rxjava2/3আর্টিফ্যাক্টে Preferences DataStore তৈরি করার জন্য বিল্ডার থাকে।
API-তে পরিবর্তন
- CorruptionHandler ইন্টারফেস লুকান। এটি সর্বজনীন করার কোনও কারণ ছিল না কারণ DataStore ফ্যাক্টরি শুধুমাত্র ReplaceFileCorruptionHandler গ্রহণ করে। (I0b3b3, b/176032264)
preferencesKey<T>(name: String): Key<T>পদ্ধতি সরিয়ে দেওয়া হয়েছে এবং এর পরিবর্তে প্রতিটি কাজ করে এমন ধরনের জন্য নির্দিষ্ট পদ্ধতি যোগ করা হয়েছে, যেমনpreferencesKey<Int>("int")এখনintPreferencesKey("int")(Ibcfac, b/170311106)
সমস্যার সমাধান
- DataStoreFactory-তে ডকুমেন্টেশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে, যেখানে এই বিষয়টি উল্লেখ করা হয়নি যে ডেটা স্টোর ফাইলটি "datastore/" সাবডিরেক্টরিতে তৈরি করা হয়। (Ica222)
ভার্সন 1.0.0-alpha05
২ ডিসেম্বর, ২০২০
androidx.datastore:datastore-*:1.0.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha05-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ডেটা স্টোর থেকে কনকারেন্ট রাইট সংক্রান্ত আরও ভাল ডকুমেন্টেশন ও ব্যতিক্রম যোগ করুন। (Ia98a2, b/173522155, b/173726702)
- আমরা এখন
Serializer.writeTo()-এ পাস করা OutputStream বন্ধ করার অনুমতি দিই (তবে এটি বাধ্যতামূলক নয়)। (I5c9bf, b/173037611)
ভার্সন 1.0.0-alpha04
১৭ নভেম্বর, ২০২০
androidx.datastore:datastore-*:1.0.0-alpha04 রিলিজ করা হয়েছে। 1.0.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- প্যাকেজিং সংক্রান্ত সমস্যার সমাধান করা হয়েছে যার কারণে প্রেফারেন্স ডেটাস্টোর
1.0.0-alpha03-এ নিম্নলিখিত ক্র্যাশ হয়:java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences- ক্র্যাশ সম্পর্কে প্রথমে এখানে রিপোর্ট করা হয়েছিল: b/173036843
- (I4712d, b/173036843)
Version 1.0.0-alpha03
১১ নভেম্বর ২০২০
androidx.datastore:datastore-*:1.0.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha03-এ এইসব কমিট আছে।
নতুন ফিচার
- প্রেফারেন্সে এখন ডবল ভ্যালু কাজ করে (ফ্লোটের চেয়ে বেশি নির্ভুলতার প্রয়োজন হলে এটি কাজে লাগে) (I5be8f, b/169471808)
API-তে পরিবর্তন
- আরও দ্রুত কম্পাইলেশনের জন্য ডেটাস্টোরের জন্য একটি পিওর কোটলিন ডিপেন্ডেন্সি তৈরি করা হয়েছে।
androidx.datastore:datastore-core-এ শুধুমাত্র কোর kotlin API আছে এবংandroidx.datastore:datastore-এ Android-এর উপর নির্ভর করে এমন API আছে (যার মধ্যেSharedPreferencesMigrationএবংContext.createDataStoreকনস্ট্রাক্টর অন্তর্ভুক্ত।)(I42d75, b/168512698) - আরও দ্রুত kotlin কম্পাইলেশনের জন্য প্রেফারেন্স ডেটা স্টোরের টার্গেট স্প্লিট করা (Ia3c19)
সিরিয়ালাইজারদের এখন ডিফল্ট ভ্যালুর জন্য একটি নতুন প্রপার্টি প্রয়োজন যা ডিস্কে কোনও ডেটা না থাকলে ব্যবহার করা হবে। এর ফলে কাস্টম সিরিয়ালাইজার প্রয়োগ করা সহজ হয়, তাই ব্যবহারকারীদের খালি ইনপুট স্ট্রিম (খালি ইনপুট স্ট্রিম json-এর সাথে পার্স হয় না) নিয়ে বিশেষ কেস তৈরি করতে হয় না।
- এছাড়াও, writeTo()-কে প্রদান করা আউটপুট স্ট্রিম বন্ধ করা হয়নি তা নিশ্চিত করার জন্য এখন একটি চেক আছে এবং এটি বন্ধ করা হলে, এটি ব্যতিক্রম (I16e29) থ্রো করে
SharedPreferencesView ইন্টার্নালের জন্য কনস্ট্রাক্টর তৈরি করা হচ্ছে। টেস্ট করার জন্য এটি প্রথমে সর্বজনীন করা হয়েছিল। পরিবর্তে, টেস্টের জন্য SharedPreferencesMigration তৈরি করে তার সাথে তুলনা করে টেস্ট করা উচিত। (I93891)
সমস্যার সমাধান
DataStoreFactoryওPreferenceDataStoreFactory-এরproduceFileপ্যারামিটার এখন তালিকার শেষ প্যারামিটার, তাই এটি আপনাকে কোটলিন ট্রেলিং ল্যাম্বডা সিনট্যাক্স ব্যবহার করতে দেয়। (Ibe7f1, b/169425442)- kotlin-এর জন্য নতুন এক্সপ্লিসিট API সংক্রান্ত প্রয়োজনীয়তা (I5ae1e) মেনে চলা
পরিচিত সমস্যা
java.lang.NoClassDefFoundError-এর সাথে Preference Datastore ক্র্যাশ করে। (b/173036843)
ভার্সন 1.0.0-alpha02
১৪ অক্টোবর, ২০২০
androidx.datastore:datastore-core:1.0.0-alpha02 ও androidx.datastore:datastore-preferences:1.0.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha02-এ এইসব কমিট আছে।
সমস্যার সমাধান
- datastore-core-এ মিউটেশনের বিরুদ্ধে একটি সুরক্ষা যোগ করা হয়েছে। Mutation breaks datastore usage for people using datastore with non-proto/non-preferences types (I6aa84)
- বর্তমান অবস্থা সহজে ডিবাগ করার জন্য Preferences.kt-তে
toStringপদ্ধতি যোগ করা হয়েছে (I96006) DataStore.Preferences(I1134d)-এর অপব্যবহার থেকে রক্ষা করার জন্য ব্যতিক্রম যোগ করা হয়েছে- অ্যাপ চালু করার সময় ক্র্যাশ হওয়ার কারণ হিসেবে কাজ করা একটি সমস্যার সমাধান করা হয়েছে (I69237, b/168580258)
Version 1.0.0-alpha01
২ সেপ্টেম্বর, ২০২০
androidx.datastore:datastore-core:1.0.0-alpha01 ও androidx.datastore:datastore-preferences:1.0.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha01-এ এইসব কমিট আছে।
নতুন ফিচার
Jetpack DataStore হল একটি নতুন এবং উন্নত ডেটা স্টোরেজ সমাধান যার লক্ষ্য SharedPreferences প্রতিস্থাপন করা। Kotlin কোরুটিন ও Flow-এর উপর ভিত্তি করে তৈরি, DataStore দুটি আলাদা আলাদা প্রয়োগ প্রদান করে:
- Proto DataStore, যা আপনাকে টাইপ করা অবজেক্ট স্টোর করতে দেয় (প্রোটোকল বাফার দ্বারা ব্যাক-আপ করা)
- Preferences DataStore, যা কী-ভ্যালু পেয়ার স্টোর করে
ডেটা অ্যাসিঙ্ক্রোনাস, ধারাবাহিকভাবে এবং ট্রানজ্যাকশনাল পদ্ধতিতে স্টোর করা হয়, এর ফলে SharedPreferences-এর বেশিরভাগ ত্রুটি দূর করা যায়।