ডেটাস্টোর
| সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | রিলিজ প্রার্থী | বিটা রিলিজ | আলফা রিলিজ |
|---|---|---|---|---|
| ১১ মার্চ, ২০২৬ | ১.২.১ | - | - | ১.৩.০-আলফা০৭ |
নির্ভরতা ঘোষণা করুন
DataStore-এর উপর নির্ভরতা যোগ করতে হলে, আপনাকে আপনার প্রজেক্টে গুগল মেভেন রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য গুগলের মেভেন রিপোজিটরি পড়ুন।
DataStore সিরিয়ালাইজেশনের জন্য বিভিন্ন বিকল্প প্রদান করে, যেকোনো একটি বেছে নিন। আপনি যেকোনো ইমপ্লিমেন্টেশনে অ্যান্ড্রয়েড-ফ্রি ডিপেন্ডেন্সিও যোগ করতে পারেন।
আপনার অ্যাপ বা মডিউলের build.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" }
কোটলিন
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" }
কোটলিন
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") }
ডেটাস্টোর
আপনার গ্রেডল ফাইলের ডিপেন্ডেন্সি অংশে নিম্নলিখিত লাইনগুলো যোগ করুন:
গ্রুভি
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" }
কোটলিন
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" }
কোটলিন
dependencies { // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.2.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.2.1") }
কন্টেন্ট সিরিয়ালাইজ করতে, প্রোটোকল বাফার্স অথবা 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" }
কোটলিন
plugins { id("org.jetbrains.kotlin.plugin.serialization") version "2.2.20" } dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0") }
প্রোটোবাফ সিরিয়ালাইজেশন
প্রোটোবাফ সিরিয়ালাইজেশন ব্যবহার করতে, আপনার গ্রেডল ফাইলে নিম্নলিখিতটি যোগ করুন:
গ্রুভি
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") } } } }
কোটলিন
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") } } } }
প্রতিক্রিয়া
আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করে। আপনি যদি নতুন কোনো সমস্যা খুঁজে পান অথবা এই লাইব্রেরিটি উন্নত করার জন্য কোনো ধারণা থাকে, তবে আমাদের জানান। নতুন কোনো সমস্যা তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরির বিদ্যমান সমস্যাগুলো দেখে নিন। আপনি তারকা বোতামে ক্লিক করে কোনো বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
সংস্করণ ১.৩
সংস্করণ 1.3.0-alpha07
১১ মার্চ, ২০২৬
androidx.datastore:datastore-*:1.3.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha07-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
নতুন বৈশিষ্ট্য
- এনক্রিপশন সাপোর্ট: নতুন
androidx.datastore:datastore-tinkআর্টিফ্যাক্টটি চালু করা হয়েছে, যা Tink লাইব্রেরি ব্যবহার করে আপনার ডেটাস্টোর এনক্রিপ্ট করার সুবিধা প্রদান করে। এই মডিউলটিAeadSerializerচালু করেছে, যা একটি নতুন র্যাপার ক্লাস। এটিSerializer<T>ইমপ্লিমেন্ট করে এবং ডেটা এনক্রিপ্ট ও ডিক্রিপ্ট করার জন্য Tink-এর Authenticated Encryption with Associated Data (AEAD) ব্যবহার করে।AeadSerializerJVM এবং Android টার্গেট প্ল্যাটফর্মে ব্যবহারের জন্য উপলব্ধ। - নতুন
DataStoreবিল্ডার এপিআই:DataStoreFactoryএর স্কেলেবল বিকল্প হিসেবেDataStore.Builder<T>চালু করা হয়েছে। এই নতুন এপিআই-এর মাধ্যমে, ব্যবহারকারীরা এখনsetCorruptionHandlerব্যবহার করে তাদের নিজস্ব করাপশন লজিক প্রদান করতে পারবেন। এছাড়াও,Builderএপিআই অনুযায়ী একটিDataStoreCoroutineScopeএর পরিবর্তেCoroutineContextব্যবহার করে ইনিশিয়ালাইজ করতে হয়, যা স্ট্রাকচার্ড কনকারেন্সির জন্য একটি উন্নতি। কারণ এটি কলারদেরকে তাদের এক্সিকিউশন আচরণ (যেমন নির্দিষ্ট ডিসপ্যাচার) নির্ধারণ করার সুযোগ দেয়, এবং এর ফলেDataStoreকলারের স্কোপের লাইফসাইকেল দ্বারা অযাচিতভাবে পরিচালিত বা আবদ্ধ হতে হয় না।দ্রষ্টব্য: আমরা সকল ব্যবহারকারীকে
DataStoreFactoryথেকে নতুনDataStore.BuilderAPI-তে স্থানান্তরিত হওয়ার পরামর্শ দিচ্ছি।CoroutineScopeএর পরিবর্তেCoroutineContextব্যবহারের মাধ্যমে, এই API আরও সুসংগঠিত কনকারেন্সি নিশ্চিত করে। এটি নিশ্চিত করে যে DataStore অপারেশনগুলো স্বল্পস্থায়ী UI লাইফসাইকেলের (যেমন,viewModelScope) সাথে আবদ্ধ থাকবে না, ফলে অকাল বাতিলকরণ এবং সম্ভাব্য ডেটা ক্ষতি প্রতিরোধ করা যায়।সতর্কীকরণ: নিশ্চিত করুন যে বিল্ডারকে দেওয়া
CoroutineContextটিতে একটিJobআছে এবং এটি অ্যাপ্লিকেশন-স্কোপড। যদি কনটেক্সটটি বাতিল করা হয়, তাহলেDataStoreএর অভ্যন্তরীণ কার্যক্রম অকালে বন্ধ হয়ে যাবে।
এপিআই পরিবর্তন
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এখন অ্যান্ড্রয়েড টার্গেট প্ল্যাটফর্মে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-এ এই কমিটগুলো রয়েছে।
এপিআই পরিবর্তন
- প্রেফারেন্সেস
DataStoreডেটা আপডেট করার জন্য একটি ইউটিলিটি কপি ফাংশন যোগ করা হয়েছে। ( I70a18 , b/467120382 )
বাগ সংশোধন
- ওয়েবের জন্য UTF-8 স্ট্রিং হ্যান্ডলিং-এর পরিবর্তে Base64 এনকোডিং ব্যবহার করে সংরক্ষণের সময় বাইনারি ডেটা বিকৃত হওয়ার সমস্যাটির সমাধান করা হয়েছে। ( Ie3178 , b/473790107 )
সংস্করণ 1.3.0-alpha03
১৭ ডিসেম্বর, ২০২৫
androidx.datastore:datastore-*:1.3.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha03-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
- টেম্প ডেটাস্টোর ফাইলের নাম পরিবর্তনে ব্যর্থতার সমস্যা সমাধান করা হয়েছে। ( I94f89 , b/203087070 )
- একই সাথে রিড/রাইট করার সময় আপডেট বাদ পড়া রোধ করার সমস্যাটি সমাধান করা হয়েছে।
DataStore.dataতে একটি নতুন কালেক্টর এবং একই সাথে চলা একটিupdateDataকলের মধ্যে একটি রেস কন্ডিশন (race condition) ঘটতে পারত, যার ফলে কালেক্টরটি নতুন মানটি সংগ্রহ করতে পারত না। ( 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 )
সংস্করণ ১.২
সংস্করণ ১.২.১
১১ মার্চ, ২০২৬
androidx.datastore:datastore-*:1.2.1 প্রকাশিত হয়েছে। সংস্করণ 1.2.1-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
সংস্করণ ১.২.০
১৯ নভেম্বর, ২০২৫
androidx.datastore:datastore-*:1.2.0 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
১.১.০ রিলিজের পর থেকে বড় পরিবর্তনসমূহ
জাভা/গুয়াভা সমর্থন:
-
GuavaDataStoreএর মাধ্যমে জাভা এবং GuavaListenableFutureব্যবহারকারীদের জন্য উপযোগী এপিআই উন্মুক্ত করতে নতুনdatastore-guavaমডিউলটি যোগ করা হয়েছে। -
GuavaDataStoreএর মধ্যে মাল্টিপ্রসেস সমর্থন যোগ করা হয়েছে। -
GuavaDataStore.fromএর জন্য একটি ওভারলোড যোগ করা হয়েছে যা (CoroutineContextএর পরিবর্তে) একটি JavaExecutorগ্রহণ করে এবংandroidx.core.util.Functionব্যবহার করে।
সরাসরি বুট সমর্থন:
- ডিরেক্ট বুট মোডে ডেটাস্টোর ব্যবহার এখন সমর্থিত।
DataStoreFactoryএরcreateInDeviceProtectedStorage()এবংDataStoreDelegateএরdeviceProtectedDataStore()এর মতো নতুন API-গুলো ডিভাইস প্রোটেক্টেড স্টোরেজের মধ্যে ডেটাস্টোর তৈরি করার সুযোগ দেয়।
স্টোরেজ এবং এপিআই পরিবর্তন:
-
FileStorageসাথে ব্যবহারের জন্যandroidx.datastore.core.Serializerইমপ্লিমেন্টকারীPreferencesFileSerializerযোগ করা হয়েছে। - সাধারণ কোড ব্যবহারের জন্য
ReplaceFileCorruptionHandlerএর ডিফল্ট কনস্ট্রাক্টর সংজ্ঞায়িত করা হয়েছে।
ত্রুটি সংশোধন:
- R8 দিয়ে অপ্টিমাইজ করা কিন্তু স্ট্যান্ডার্ড ProGuard ফাইল ব্যবহার না করা কোনো অ্যাপে
DataStoreব্যবহার করার সময় উদ্ভূতjava.lang.UnsatisfiedLinkErrorসমাধান করা হয়েছে। - এমন একটি সমস্যার সমাধান করা হয়েছে যেখানে
GuavaDataStoreঅপারেশনগুলি নির্দিষ্ট IO ডিসপ্যাচারের পরিবর্তে ভুলবশত কলিং থ্রেডে (যেমন, প্রধান থ্রেড) চলতে পারতো। - রেস কন্ডিশনের ক্ষেত্রে ডেটা পড়ার জন্য দ্বিতীয়বার চেষ্টা করার সুযোগ যোগ করে
OkioStorageচালু হওয়ার সময়কার একটিFileNotFoundExceptionসমস্যার সমাধান করা হয়েছে।
সংস্করণ 1.2.0-rc01
০৫ নভেম্বর, ২০২৫
androidx.datastore:datastore-*:1.2.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
সংস্করণ 1.2.0-beta01
২২ অক্টোবর, ২০২৫
androidx.datastore:datastore-*:1.2.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-beta01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
CorruptionHandlerসর্বজনীন করুন। ( I9ac35 , b/452406457 ) -
GuavaDataStoreএandroidx.core.util.Functionব্যবহার করুন। ( I71eae , b/448563999 ) -
GuavaDataStore.fromএর জন্য এমন একটি ওভারলোড যোগ করুন যাCoroutineContextএর পরিবর্তে একটি Executor গ্রহণ করে। ( I989fa , b/448563183 )
বাগ সংশোধন
- R8 দিয়ে অপ্টিমাইজ করা কোনো অ্যাপে, যা
getDefaultProguardFile('android-proguard-optimize.txt')ব্যবহার করছে না, সেখানেDataStoreব্যবহার করার সময়java.lang.UnsatisfiedLinkErrorসমাধান করা হয়েছে। ( I27d0d , b/434696293 ) - সেই সমস্যাটি সমাধান করা হয়েছে যেখানে
GuavaDataStoreঅপারেশনগুলি নির্দিষ্ট IO ডিসপ্যাচারের পরিবর্তে ভুলবশত কলিং থ্রেডে (যেমন, প্রধান থ্রেড) চলতে পারতো। ( Ic91ea , b/441801112 )
সংস্করণ 1.2.0-alpha02
৭ মে, ২০২৫
androidx.datastore:datastore-*:1.2.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha02-এ এই কমিটগুলো রয়েছে।
এপিআই পরিবর্তন
-
GuavaDataStoreএ মাল্টিপ্রসেস সমর্থন যোগ করা হয়েছে। ( e0d608a )। -
DataStoreথেকেGuavaDataStoreতৈরি করার জন্য একটি সহায়ক পদ্ধতি যোগ করা হয়েছে। ( 9af26f4 ) - Kotlin 2.0 দিয়ে প্রকাশিত প্রজেক্টগুলো ব্যবহার করার জন্য KGP 2.0.0 বা তার নতুন সংস্করণ প্রয়োজন। ( Idb6b5 )
- ডাইরেক্ট বুটের সময় ব্যবহার করার জন্য একটি ডেটাস্টোর ইনিশিয়ালাইজ করতে বিদ্যমান
datastoreওভারলোডটিকে একটি ডেলিগেট মেথড দিয়ে প্রতিস্থাপন করুন। ( If71b9 )
সংস্করণ 1.2.0-alpha01
২৬ মার্চ, ২০২৫
androidx.datastore:datastore-*:1.2.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
নতুন বৈশিষ্ট্য
-
GuavaDataStoreএর মাধ্যমে Java এবং GuavaListenableFutureব্যবহারকারীদের জন্য সহজবোধ্য API উন্মুক্ত করতেdatastore-guavaমডিউলটি যোগ করা হয়েছে। ( Iadd5e0 ) -
DirectBootমোডেDataStoreব্যবহার এখন সমর্থিত। ডিরেক্টবুট মোডে ব্যবহারের জন্য একটি ডেটাস্টোর তৈরি করতে হলে, সেটি অবশ্যই ডিভাইস প্রোটেক্টেড স্টোরেজের মধ্যে তৈরি করতে হবে। নিম্নলিখিত নতুনDataStoreএপিআইগুলোর মাধ্যমে এটি করা সম্ভব:DataStoreFactoryএরcreateInDeviceProtectedStorage()এবংDataStoreDelegateএরdeviceProtectedDataStore()। ( Ib90e56 )
এপিআই পরিবর্তন
-
FileStorageসাথে ব্যবহারের জন্যandroidx.datastore.core.Serializerইন্টারফেস বাস্তবায়নকারীPreferencesFileSerializerযোগ করা হয়েছে। ( I4c71f3 )
বাগ সংশোধন
- রেস কন্ডিশনের ক্ষেত্রে ডেটা পড়ার জন্য দ্বিতীয়বার চেষ্টা করার সুযোগ যোগ করে
OkioStorageচালু হওয়ার সময়FileNotFoundExceptionসমস্যাটির সমাধান করা হয়েছে। ( I43b3fb , b/337870543 ) - সাধারণ কোড ব্যবহারের জন্য
ReplaceFileCorruptionHandlerএর ডিফল্ট কনস্ট্রাক্টর সংজ্ঞায়িত করা হয়েছে। ( I795b05 , b/358138957 )
সংস্করণ ১.১
সংস্করণ ১.১.৭
২০ মে, ২০২৫
androidx.datastore:datastore-*:1.1.7 প্রকাশিত হয়েছে। সংস্করণ 1.1.7-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
datastore-preferences-coreএর অ্যান্ড্রয়েড আর্টিফ্যাক্টে অনুপস্থিত Proguard নিয়মের সমস্যা সমাধান করা হয়েছে। ( 3f3f6e , b/413078297 )
সংস্করণ ১.১.৬
৭ মে, ২০২৫
androidx.datastore:datastore-*:1.1.6 প্রকাশিত হয়েছে। সংস্করণ 1.1.6-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
- সংস্করণ
1.1.5এ গ্রেডল মেটাডেটা ত্রুটিপূর্ণ থাকার একটি সমস্যার সমাধান করা হয়েছে। এই সমস্যাটি নতুন AGP KMP প্লাগইন DSL-এর একটি বাগের কারণে হয়েছিল, যা সমস্ত টার্গেট প্ল্যাটফর্মের মেটাডেটা স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হতে বাধা দিচ্ছিল। এই বাগের ফলে কিছু DataStore অ্যান্ড্রয়েড মেথড ক্লায়েন্টদের বিল্ডে আর দেখা যাচ্ছিল না। এর সমাধানেandroidLibraryএর পরিবর্তেbuild.gradleএ পুরোনোandroidDSL ব্যবহার করতে হবে। ( 7801abf )
সংস্করণ ১.১.৫
২৩ এপ্রিল, ২০২৫
androidx.datastore:datastore-*:1.1.5 প্রকাশিত হয়েছে। সংস্করণ 1.1.5-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
PreferencesDataStoreএCorruptionExceptionসমস্যা প্রশমিত করার জন্য, ডিফল্ট স্টোরেজOkioStorageথেকেFileStorageএ পরিবর্তন করা হয়েছে। এই পরিবর্তনটি একটিPreferencesFileSerializerপ্রবর্তনের মাধ্যমে বাস্তবায়ন করা হয়েছে। b/346197747
সংস্করণ ১.১.৪
২৬ মার্চ, ২০২৫
androidx.datastore:datastore-*:1.1.4 প্রকাশিত হয়েছে। সংস্করণ 1.1.4-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
CorruptionExceptionহ্রাস করে নির্ভরযোগ্যতা উন্নত করার জন্য ডিফল্ট স্টোরেজOkioStorageথেকেFileStorageএ প্রতিস্থাপন করুন। ( I71181 , b/346197747 )
সংস্করণ ১.১.৩
২৬ ফেব্রুয়ারি, ২০২৫
androidx.datastore:datastore-*:1.1.3 প্রকাশিত হয়েছে। সংস্করণ 1.1.3-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
- অ্যাপ চালুর সময়
OkioStorageএ সম্মুখীন হওয়া একটিFileNotFoundExceptionসমস্যার সমাধান করা হয়েছে। যদি প্রথমবার ফাইল পড়ার চেষ্টা ব্যর্থ হয়, তবে দ্বিতীয়বার চেষ্টা করা হবে, কারণ প্রথমবার পড়ার সময় অন্য কোনো প্রসেস দ্বারা ফাইলটি তৈরি হওয়ার কারণে একটি রেস কন্ডিশন (race condition) ঘটে থাকতে পারে। ( I43b3f , b/337870543 )
সংস্করণ ১.১.২
১৫ জানুয়ারী, ২০২৫
androidx.datastore:datastore-*:1.1.2 প্রকাশিত হয়েছে। সংস্করণ 1.1.2-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
- ওয়ার্ম রিড ল্যাটেন্সি (
DataStore.data.first()) ৮ গুণ উন্নত করুন। ( 22b8a40 ) -
ReplaceFileCorruptionHandlerKMP কমন কোড থেকে তৈরি করা যেতে পারে। ( 7632e839 )
সংস্করণ ১.১.১
১ মে, ২০২৪
androidx.datastore:datastore-*:1.1.1 প্রকাশিত হয়েছে। সংস্করণ 1.1.1-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
- একটি বিশেষ ক্ষেত্রে, যখন একাধিক
DataStoreইনস্ট্যান্স বিভিন্ন প্রসেস থেকে লেখার চেষ্টা করে, তখন ফাইল লকটি ব্যাক অফ করার মাধ্যমে "Resource deadlock would occur" ত্রুটির কারণে সৃষ্ট লিনাক্সের মিথ্যা অ্যালার্ম প্রশমিত করা হয়েছে।
সংস্করণ ১.১.০
১৭ এপ্রিল, ২০২৪
androidx.datastore:datastore-*:1.1.0 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
1.0.0 রিলিজের পর থেকে বড় পরিবর্তনসমূহ
আরও তথ্যের জন্য অনুগ্রহ করে 1.1.0-এর আলফা এবং বিটা সংস্করণের রিলিজ নোটগুলো পর্যালোচনা করুন। 1.1.0-এর কয়েকটি প্রধান আপডেট হলো:
- 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 ) - নন-অ্যান্ড্রয়েড JVM পরিবেশে
updateDataচলাকালীন ফাইলের নাম পরিবর্তন ব্যর্থ হওয়ার সমস্যাটি সমাধান করা হয়েছে। ( b/203087070 ) -
DataStoreইনিশিয়ালাইজেশনের পরেCorruptionExceptionহ্যান্ডেল না হওয়ার সমস্যাটি সমাধান করা হয়েছে। ( b/289582516 )
সংস্করণ 1.1.0-beta01
১০ জানুয়ারী, ২০২৪
androidx.datastore:datastore-*:1.1.0-beta01 1.1.0-alpha07 এর পর থেকে কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 1.1.0-beta01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
সংস্করণ 1.1.0-alpha07
২৯ নভেম্বর, ২০২৩
androidx.datastore:datastore-*:1.1.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha07-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
MultiProcessDataStoreFactoryমেথডগুলো আর পরীক্ষামূলক পর্যায়ে নেই।@ExperimentalMultiProcessDataStoreঅ্যানোটেশনটি সম্পূর্ণরূপে সরিয়ে ফেলা হয়েছে। ( Ieee54 , I8e607 )
বাগ সংশোধন
- 1.1.0-alpha07 ( I8e607 ) সংস্করণে
@ExperimentalMultiProcessDataStoreঅ্যানোটেশনগুলো অপসারণের প্রক্রিয়াটি চালু করা হলো।
সংস্করণ 1.1.0-alpha06
১ নভেম্বর, ২০২৩
androidx.datastore:datastore-*:1.1.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha06-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
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-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
- ডেটাস্টোর
FileStorageএখন সর্বসাধারণের জন্য উপলব্ধ, তাই ক্লায়েন্টরা নিজস্ব প্যারামিটার যোগ করতে পারবে। ( Icb985 ) -
OkioStorageকনস্ট্রাক্টর পরিবর্তন করে এতেInterProcessCoordinatorঅন্তর্ভুক্ত করা হয়েছে, যাতে এটি Android-এMultiProcessCoordinatorসাথে ব্যবহার করা যায়। ( 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 Targets-এর একটি বিল্ড সমস্যা সমাধানের জন্য Maven আর্টিফ্যাক্টগুলো থেকে নির্ভরতার সীমাবদ্ধতা সরানো হয়েছে ( b/274786186 , KT-57531 )।
সংস্করণ 1.1.0-alpha02
২২ মার্চ, ২০২৩
androidx.datastore:datastore-*:1.1.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha02-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
দ্রষ্টব্য
অনুগ্রহ করে মনে রাখবেন যে এই সংস্করণে একটি গুরুত্বপূর্ণ অভ্যন্তরীণ রিফ্যাক্টর অন্তর্ভুক্ত রয়েছে, যা একক প্রসেস এবং বহু প্রসেস ডেটাস্টোর ইমপ্লিমেন্টেশনগুলোকে একত্রিত করে। সম্ভাব্য অনাকাঙ্ক্ষিত আচরণগত পরিবর্তনের (যেমন আপডেট নোটিফিকেশনের সময়) দিকে নজর রাখুন। এই ধরনের পরিবর্তন রিপোর্ট করার জন্য আপনি ইস্যু ট্র্যাকার কম্পোনেন্টটি ব্যবহার করতে পারেন।
নতুন বৈশিষ্ট্য
- এখন আপনি KMM প্রোজেক্টে
DataStoreব্যবহার করতে পারবেন। উল্লেখ্য যে, DataStore-এর নন-অ্যান্ড্রয়েড টার্গেটগুলো এখনও পরীক্ষামূলক পর্যায়ে রয়েছে, কিন্তু ডেভেলপারদের জন্য এগুলো পরীক্ষা করা সহজ করতে আমরা সংস্করণগুলো একীভূত করার সিদ্ধান্ত নিয়েছি। - মাল্টি-প্রসেস ফিচারগুলো
androidx.datastore.multiprocessথেকেandroidx.datastore.coreএ স্থানান্তর করা হয়েছে। - ফাইল অপারেশনের জন্য
Storageঅবজেক্টসহ DataStore ইনস্ট্যান্স তৈরি করতেandroidx.datastore.core.MultiProcessDataStoreFactoryতে একটি নতুন ফ্যাক্টরি মেথড যোগ করুন। -
InterProcessCoordinatorএকটি নতুন ইন্টারফেস যোগ করা হয়েছে, যা একাধিক DataStore ইনস্ট্যান্সকে বিভিন্ন প্রসেসের মধ্যে যোগাযোগ করতে সাহায্য করে। উল্লেখ্য যে,InterProcessCoordinatorএর মাল্টি-প্রসেস ইমপ্লিমেন্টেশন শুধুমাত্র অ্যান্ড্রয়েডে উপলব্ধ।
এপিআই পরিবর্তন
- datastore-core ইন্টারফেসে ( I555bb )
StorageConnectionএInterProcessCoordinatorযোগ করুন - স্টোরেজ ব্যবহার করার জন্য datastore-core-এর
MultiProcessDataStoreFactoryএর API পরিবর্তন করুন। ( Iac02f ) - datastore-multiprocess-এর পাবলিক API-গুলো datastore-core-এ স্থানান্তর করুন ( I76d7c )
- datastore-preferences-core থেকে
PreferencesSerializerউন্মোচিত হয়েছে ( I4b788 ) -
@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ফ্যাক্টরিগুলোতে নতুন মেথড রয়েছে যা এই স্টোরেজ অবজেক্টটি গ্রহণ করে।
এপিআই পরিবর্তন
- স্টোরেজ ব্যবহার করার জন্য datastore-core-এর
MultiProcessDataStoreFactoryএর API পরিবর্তন করুন। ( Iac02f ) - datastore-multiprocess-এর পাবলিক API-গুলো datastore-core-এ স্থানান্তর করুন ( I76d7c )
- datastore-preferences-core থেকে
PreferencesSerializerউন্মোচিত হয়েছে ( I4b788 )
সংস্করণ ১.০.০
সংস্করণ ১.০.০
৪ আগস্ট, ২০২১
androidx.datastore:datastore-*:1.0.0 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
১.০.০ এর প্রধান বৈশিষ্ট্যসমূহ
জেটপ্যাক ডেটাস্টোর হলো একটি ডেটা স্টোরেজ সলিউশন যা আপনাকে প্রোটোকল বাফারের সাহায্যে কী-ভ্যালু পেয়ার বা টাইপড অবজেক্ট সংরক্ষণ করতে দেয়। ডেটাস্টোর অ্যাসিঙ্ক্রোনাসলি, কনসিস্টেন্টলি এবং ট্রানজ্যাকশনালি ডেটা সংরক্ষণের জন্য কোটলিন কোরাউটিন এবং ফ্লো ব্যবহার করে।
সংস্করণ 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 ফাইল যুক্ত হয়ে যাওয়ার বাগটি সংশোধন করা হয়েছে ( 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-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
- শুধুমাত্র কোটলিনের জন্য ব্যবহৃত মেথডগুলোর JVM ওভারলোড অপসারণ করুন ( I2adc7 )
বাগ সংশোধন
- একটি বাগ সংশোধন করা হয়েছে যেখানে ডেটাস্টোর ডেলিগেটগুলির ফলে কনটেক্সট লিক হতে পারতো ( Ie96fc , b/184415662 )
সংস্করণ 1.0.0-alpha08
১০ মার্চ, ২০২১
androidx.datastore:datastore-*:1.0.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha08-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
- এখন আপনি আপনার
dataStoreএবংpreferencesDataStoreপ্রপার্টি ডেলিগেটে কনটেক্সট-নির্ভর মাইগ্রেশন যোগ করতে পারবেন। ( I4ef69 , b/173726702 ) - আপনি যদি আর ডেটাস্টোর ডেলিগেট বা context.createDataStore ব্যবহার না করেন, তাহলে ফাইলের নাম পাওয়ার জন্য সহায়ক ফাংশন যোগ করা হয়েছে ( I60f9a )।
- সিরিয়ালাইজারের writeTo এবং readFrom এখন সাসপেন্ডিং ফাংশন। আপনি যদি একটি সিরিয়ালাইজার ইমপ্লিমেন্ট করে থাকেন, তাহলে আপনার ফাংশনগুলোকে সাসপেন্ড ফাংশনে আপডেট করতে হবে। ( I1e58e )
- RxDataStore ব্যবহারকারীদের জন্য প্রপার্টি ডেলিগেট যোগ করা হয়েছে। ( Ied768 , b/173726702 )
বাগ সংশোধন
- পরীক্ষামূলক এপিআই-এর ( I6aa29 , b/174531520 ) সর্বজনীন ব্যবহারের উপর বিধিনিষেধ প্রয়োগ করুন
সংস্করণ 1.0.0-alpha07
২৪ ফেব্রুয়ারি, ২০২১
androidx.datastore:datastore-*:1.0.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha07-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
Context.createDataStoreএক্সটেনশন ফাংশনটি সরিয়ে দেওয়া হয়েছে এবং এর পরিবর্তে globalDataStore প্রপার্টি ডেলিগেট ব্যবহার করা হচ্ছে। আপনার কোটলিন ফাইলের টপ লেভেলে একবার globalDataStore কল করুন। উদাহরণস্বরূপ:val Context.myDataStore by dataStore(...)এটি আপনার কোটলিন ফাইলের শীর্ষ স্তরে রাখুন যাতে এটির কেবল একটিই ইনস্ট্যান্স থাকে। ( I57215 , b/173726702 )
RxDataStore ফাংশনগুলো এখন DataStore-এর এক্সটেনশন ফাংশনের পরিবর্তে RxDataStore ক্লাসে রয়েছে। ( Idccdb , b/177691248 )
আপনি যদি EncryptedSharedPreferences (বা সরাসরি SharedPreferences বুট) DataStore-এ মাইগ্রেট করতে চান, তাহলে এখন নতুন SharedPreferencesMigration কনস্ট্রাক্টরের মাধ্যমে তা করতে পারবেন, যা আপনাকে SharedPreferences ইনজেক্ট করার সুযোগ দেয়। ( I8e04e , b/177278510 )
বাগ সংশোধন
- একই ফাইলের জন্য একাধিক সক্রিয় DataStore থাকলে এখন থেকে DataStore একটি এক্সেপশন (exception) থ্রো করবে। আপনি যদি আপনার DataStore-কে সিঙ্গেলটন (Singleton) হিসেবে ম্যানেজ না করে থাকেন অথবা একটি ফাইলের জন্য DataStore-এর দুটি ইনস্ট্যান্স যাতে একই সাথে সক্রিয় না থাকে তা নিশ্চিত না করে থাকেন, তাহলে এখন থেকে DataStore-এ রিড বা রাইট করার সময় আপনি এক্সেপশন দেখতে পারেন। আপনার DataStore-কে সিঙ্গেলটন হিসেবে ম্যানেজ করার মাধ্যমে এগুলি সমাধান করা যেতে পারে। ( 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 তৈরি করার জন্য একটি বিল্ডার রয়েছে।
এপিআই পরিবর্তন
- 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-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
- Preference Datastore
1.0.0-alpha03এ নিম্নলিখিত ক্র্যাশটির কারণ হওয়া একটি প্যাকেজিং সমস্যা সমাধান করা হয়েছে:java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences- দুর্ঘটনাটি মূলত এখানে রিপোর্ট করা হয়েছিল: b/173036843
- ( I4712d , b/173036843 )
সংস্করণ 1.0.0-alpha03
১১ নভেম্বর, ২০২০
androidx.datastore:datastore-*:1.0.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha03-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
নতুন বৈশিষ্ট্য
- প্রেফারেন্সেস এখন ডাবল ভ্যালু সাপোর্ট করে (যা ফ্লোটের চেয়ে বেশি নির্ভুলতার প্রয়োজনে উপযোগী) ( I5be8f , b/169471808 )
এপিআই পরিবর্তন
- দ্রুততর কম্পাইলেশনের জন্য ডেটাস্টোরের জন্য একটি বিশুদ্ধ কোটলিন ডিপেন্ডেন্সি তৈরি করা হয়েছে।
androidx.datastore:datastore-coreশুধুমাত্র কোর কোটলিন এপিআইগুলো রয়েছে এবংandroidx.datastore:datastoreঅ্যান্ড্রয়েডের উপর নির্ভরশীল এপিআইগুলো রয়েছে (যার মধ্যেSharedPreferencesMigrationএবংContext.createDataStoreকনস্ট্রাক্টর অন্তর্ভুক্ত)। ( I42d75 , b/168512698 ) - দ্রুততর কোটলিন কম্পাইলেশনের জন্য প্রেফারেন্স ডেটা স্টোরের টার্গেটগুলো আলাদা করা ( Ia3c19 )
ডিস্কে কোনো ডেটা না থাকলে যে ডিফল্ট ভ্যালুটি ব্যবহৃত হবে, তার জন্য সিরিয়ালাইজারগুলোতে এখন একটি নতুন প্রপার্টি প্রয়োজন। এর ফলে কাস্টম সিরিয়ালাইজার ইমপ্লিমেন্ট করা সহজ হয়েছে, এবং ব্যবহারকারীদের খালি ইনপুট স্ট্রিমের জন্য বিশেষ ব্যবস্থা নিতে হচ্ছে না (কারণ খালি ইনপুট স্ট্রিম json দিয়ে পার্স করা যায় না)।
- এছাড়াও, writeTo() ফাংশনে দেওয়া আউটপুট স্ট্রিমটি বন্ধ নয় তা নিশ্চিত করার জন্য এখন একটি চেক রয়েছে, এবং যদি এটি বন্ধ থাকে তবে এটি এক্সেপশন ( I16e29 ) থ্রো করে।
SharedPreferencesView-এর কনস্ট্রাক্টরকে ইন্টারনাল করা হচ্ছে। পরীক্ষার সুবিধার জন্য এটি মূলত পাবলিক ছিল। এর পরিবর্তে, টেস্টগুলোতে একটি SharedPreferencesMigration কনস্ট্রাক্ট করে সেটির সাথে তুলনা করা উচিত। ( I93891 )
বাগ সংশোধন
-
DataStoreFactoryএবংPreferenceDataStoreFactoryএরproduceFileপ্যারামিটারটি এখন তালিকার শেষ প্যারামিটার, ফলে এটি আপনাকে কোটলিনের ট্রেইলিং ল্যাম্বডা সিনট্যাক্স ব্যবহার করার সুযোগ দেয়। ( Ibe7f1 , b/169425442 ) - কোটলিনের জন্য নতুন সুস্পষ্ট API প্রয়োজনীয়তা অনুসরণ করে ( I5ae1e )
পরিচিত সমস্যা
-
java.lang.NoClassDefFoundErrorএর কারণে প্রেফারেন্স ডেটাস্টোর ক্র্যাশ করছে। ( 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-এ মিউটেশনের বিরুদ্ধে একটি সুরক্ষা ব্যবস্থা যোগ করা হয়েছে। যারা নন-প্রোটো/নন-প্রেফারেন্স টাইপের ( I6aa84 ) সাথে ডেটাস্টোর ব্যবহার করেন, তাদের জন্য মিউটেশন ডেটাস্টোরের ব্যবহার ব্যাহত করে।
- বর্তমান অবস্থা সহজে ডিবাগ করার জন্য Preferences.kt-তে একটি
toStringমেথড যোগ করা হয়েছে ( I96006 ) -
DataStore.Preferencesএর অপব্যবহার রোধ করার জন্য একটি ব্যতিক্রম যোগ করা হয়েছে ( I1134d ) - একটি বাগ সংশোধন করা হয়েছে যার কারণে অ্যাপটি চালু হওয়ার সময় ক্র্যাশ করত ( I69237 , b/168580258 )
সংস্করণ 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 coroutines এবং Flow-এর উপর ভিত্তি করে নির্মিত DataStore দুটি ভিন্ন ইমপ্লিমেন্টেশন প্রদান করে:
- প্রোটো ডেটাস্টোর, যা আপনাকে টাইপ করা অবজেক্ট সংরক্ষণ করতে দেয় ( প্রোটোকল বাফার দ্বারা সমর্থিত)।
- প্রেফারেন্সেস ডেটাস্টোর, যা কী-ভ্যালু পেয়ার সংরক্ষণ করে
ডেটা অ্যাসিঙ্ক্রোনাসভাবে, সামঞ্জস্যপূর্ণভাবে এবং ট্রানজ্যাকশনালি সংরক্ষিত হয়, যা SharedPreferences-এর অধিকাংশ অসুবিধা দূর করে।