DataStore

ذخیره داده ها به صورت ناهمزمان، پیوسته و به صورت تراکنشی، غلبه بر برخی از معایب SharedPreferences
آخرین به روز رسانی انتشار پایدار کاندید را آزاد کنید نسخه بتا انتشار آلفا
1 مه 2024 1.1.1 - - -

اعلام وابستگی ها

برای افزودن وابستگی به DataStore، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر ، مخزن Maven Google را بخوانید.

دو پیاده سازی DataStore وجود دارد: Preferences و Proto . یکی یا دیگری را انتخاب کنید. همچنین می‌توانید وابستگی‌های بدون اندروید را به هر دو پیاده‌سازی اضافه کنید.

وابستگی های پیاده سازی مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:

Preferences DataStore

Groovy

    // Preferences DataStore (SharedPreferences like APIs)
    dependencies {
        implementation "androidx.datastore:datastore-preferences:1.1.1"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.1"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.1"
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-preferences-core:1.1.1"
    }
    

Kotlin

    // Preferences DataStore (SharedPreferences like APIs)
    dependencies {
        implementation("androidx.datastore:datastore-preferences:1.1.1")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.1")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.1")
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-preferences-core:1.1.1")
    }
    

Proto DataStore

Groovy

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation "androidx.datastore:datastore:1.1.1"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-rxjava2:1.1.1"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-rxjava3:1.1.1"
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-core:1.1.1"
    }
    

Kotlin

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation("androidx.datastore:datastore:1.1.1")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-rxjava2:1.1.1")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-rxjava3:1.1.1")
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-core:1.1.1")
    }
    

بازخورد

بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد کتابخانه جدید، به مسائل موجود در این کتابخانه نگاهی بیندازید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.

یک شماره جدید ایجاد کنید

برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.

نسخه 1.1

نسخه 1.1.1

1 مه 2024

androidx.datastore:datastore-*:1.1.1 منتشر شد. نسخه 1.1.1 حاوی این commit ها است.

رفع اشکال

  • هشدار نادرست لینوکس کاهش یافته در مورد خطای "بن بست منابع رخ می دهد" در یک مورد گوشه ای چندین نمونه DataStore سعی می کنند با پشتیبان گیری از قفل فایل، از فرآیندهای مختلف بنویسند.

نسخه 1.1.0

17 آوریل 2024

androidx.datastore:datastore-*:1.1.0 منتشر شد. نسخه 1.1.0 حاوی این تعهدات است.

تغییرات عمده از زمان انتشار 1.0.0

لطفاً یادداشت‌های انتشار نسخه‌های آلفا و بتا 1.1.0 را برای اطلاعات بیشتر مرور کنید. برخی از به روز رسانی های اصلی 1.1.0 عبارتند از:

  • DataStore اکنون از چندین فرآیند برای دسترسی به یک فایل با پشتیبانی از قابلیت مشاهده در بین فرآیندها پشتیبانی می کند.
  • رابط Storage جدید به شما امکان می دهد نحوه ذخیره یا سریال سازی مدل های داده خود را سفارشی کنید.
  • اکنون می توانید از DataStore در پروژه های چند پلتفرمی Kotlin استفاده کنید.

نسخه 1.1.0-rc01

3 آوریل 2024

androidx.datastore:datastore-*:1.1.0-rc01 منتشر شد. نسخه 1.1.0-rc01 حاوی این commit ها است.

رفع اشکال

  • در صورتی که داده‌های جدید با داده‌های قدیمی یکسان باشد، کاهش عملکرد را در مواردی که تماس‌های updateData در نوشتن دیسک بهینه نمی‌شدند برطرف شد ( d64cfb5 )
  • یک وضعیت مسابقه که در آن MultiProcess DataStore ممکن است در حین مقداردهی اولیه نامعتبر شود، رفع شد. (( b/326141553 ),( 094c2dd ))

نسخه 1.1.0-beta02

6 مارس 2024

androidx.datastore:datastore-*:1.1.0-beta02 منتشر شد. نسخه 1.1.0-beta02 حاوی این تعهدات است.

رفع اشکال

  • بهبود عملکرد در DataStore فقط هنگامی که مشاهده می شود اعلان های به روز رسانی را جمع آوری می کند. ( b/267792241 )
    • توجه داشته باشید که اگر از کتابخانه تست Coroutines استفاده می‌کنید، ممکن است این تغییر باعث ایجاد UncompletedCoroutinesError در تست‌های شما شود. برای جلوگیری از این مشکل، هنگام تنظیم اولیه DataStore ، مطمئن شوید که TestScope.backgroundScope را پاس کرده اید.
  • مشکل تماس‌های updateData تودرتو در همان نمونه‌ای که به بن‌بست می‌رسید، برطرف شد. ( b/241760537 )
  • اگر DataStore ساخته شده در حین مهاجرت نتواند SharedPreferences حذف کند، دیگر IOExceptions پرتاب نمی کند. ( b/195553816 )
  • مشکل تغییر نام فایل در حین updateData در محیط های غیر اندروید JVM برطرف شد. ( b/203087070 )
  • مشکل عدم رسیدگی به CorruptionException پس از مقداردهی اولیه DataStore برطرف شد. ( b/289582516 )

نسخه 1.1.0-beta01

10 ژانویه 2024

androidx.datastore:datastore-*:1.1.0-beta01 بدون تغییر از 1.1.0-alpha07 منتشر شد. نسخه 1.1.0-beta01 حاوی این تعهدات است.

نسخه 1.1.0-alpha07

29 نوامبر 2023

androidx.datastore:datastore-*:1.1.0-alpha07 منتشر شد. نسخه 1.1.0-alpha07 حاوی این commit ها است.

تغییرات API

  • روش های MultiProcessDataStoreFactory دیگر آزمایشی نیستند. حاشیه نویسی @ExperimentalMultiProcessDataStore به طور کامل حذف شده است. ( Ieee54 , I8e607 )

رفع اشکال

  • حذف حاشیه نویسی @ExperimentalMultiProcessDataStore را در 1.1.0-alpha07 قرار دهید. ( I8e607 )

نسخه 1.1.0-alpha06

1 نوامبر 2023

androidx.datastore:datastore-*:1.1.0-alpha06 منتشر شد. نسخه 1.1.0-alpha06 حاوی این commit ها است.

تغییرات API

  • متد کارخانه createSingleProcessCoordinator اکنون یک مسیر فایل ( String ، java.io.File و okio.Path ) را دریافت می کند تا با createMultiProcessCoordinator سازگار باشد. ( I211c8 , b/305755935 )

نسخه 1.1.0-alpha05

6 سپتامبر 2023

androidx.datastore:datastore-*:1.1.0-alpha05 منتشر شد. نسخه 1.1.0-alpha05 حاوی این commit ها است.

تغییرات API

  • Datastore FileStorage اکنون به صورت عمومی در دسترس است، بنابراین مشتریان می توانند پارامترهای سفارشی را ارائه دهند. ( ICB985 )
  • سازنده OkioStorage را برای پذیرش InterProcessCoordinator تغییر داد تا بتوان از آن در Android با MultiProcessCoordinator استفاده کرد. ( Iecea3 )

رفع اشکال

  • رفع MultiProcessCoordinator قادر به نظارت بر چندین فایل در یک فهرست نیست.
  • در صورت عادی نبودن مسیرهای فایل، رفع عدم امکان شناسایی فایل های تکراری.
  • مقادیر اشتباه برگشتی از RxDataStore#isDisposed را برطرف کنید.
  • تنظیمات پیش‌فرض گمشده را برای datstore-preferences-core برطرف کنید.

نسخه 1.1.0-alpha04

5 آوریل 2023

androidx.datastore:datastore-*:1.1.0-alpha04 منتشر شد. نسخه 1.1.0-alpha04 حاوی این commit ها است.

رفع اشکال

  • برای جلوگیری از شرایط مسابقه ای که در آن جریان داده های DataStore ممکن است پس از به روز رسانی مقدار قدیمی تری منتشر کند، پیاده سازی داخلی را بهبود دهید.

نسخه 1.1.0-alpha03

24 مارس 2023

androidx.datastore:datastore-*:1.1.0-alpha03 منتشر شد.

رفع اشکال

  • محدودیت‌های وابستگی را از مصنوعات Maven حذف کرد تا مشکل ساخت را در Kotlin Native Targets حل کند ( b/274786186 ، KT-57531 ).

نسخه 1.1.0-alpha02

22 مارس 2023

androidx.datastore:datastore-*:1.1.0-alpha02 منتشر شد. نسخه 1.1.0-alpha02 حاوی این commit ها است.

توجه داشته باشید

توجه داشته باشید که این نسخه شامل یک Refactor داخلی مهم است که پیاده‌سازی‌ها را برای پیاده‌سازی DataStore تک فرآیندی و چند فرآیندی ادغام می‌کند. لطفاً مراقب تغییرات رفتاری ناخواسته احتمالی (مثلاً زمان‌بندی اعلان‌های به‌روزرسانی) باشید. می‌توانید از مؤلفه ردیاب مشکل برای گزارش چنین تغییراتی استفاده کنید.

ویژگی های جدید

  • اکنون می توانید DataStore در پروژه های KMM استفاده کنید. توجه داشته باشید که اهداف غیر اندرویدی DataStore هنوز آزمایشی هستند، اما ما تصمیم گرفتیم نسخه‌ها را ادغام کنیم تا توسعه‌دهندگان بتوانند آن‌ها را آسان‌تر امتحان کنند.
  • ویژگی‌های چند فرآیندی از androidx.datastore.multiprocess به androidx.datastore.core منتقل می‌شوند.
  • یک روش کارخانه جدید در androidx.datastore.core.MultiProcessDataStoreFactory اضافه کنید تا نمونه های DataStore با اشیاء Storage برای عملیات فایل ایجاد کنید.
  • یک InterProcessCoordinator جدید اضافه کنید که به چندین نمونه DataStore کمک می کند تا در بین فرآیندها ارتباط برقرار کنند. توجه داشته باشید که اجرای Multi-Process InterProcessCoordinator فقط در اندروید موجود است.

تغییرات API

  • افزودن InterProcessCoordinator به StorageConnection در رابط datastore-core ( I555bb )
  • API ها را در datastore-core MultiProcessDataStoreFactory برای استفاده از Storage تغییر دهید. ( Iac02f )
  • انتقال APIهای عمومی در datastore-multiprocess به datastore-core ( I76d7c )
  • Exposed PreferencesSerializer از datastore-preferences-core ( I4b788 )
  • افزودن حاشیه نویسی @JvmDefaultWithCompatibility ( I8f206 )

نسخه 1.1.0-alpha01

9 نوامبر 2022

androidx.datastore:datastore-*:1.1.0-alpha01 منتشر شد. نسخه 1.1.0-alpha01 حاوی این commit ها است.

ویژگی های جدید

  • از موارد استفاده چند فرآیندی پشتیبانی کنید که در آن سازگاری داده ها در بین نمونه های DataStore در سراسر فرآیندها تضمین شده است. برای ایجاد چنین نمونه هایی DataStore MultiProcessDataStoreFactory#create اضافه کنید.
  • رابط فضای ذخیره سازی جدید که اجازه می دهد مکانیسم ذخیره سازی اساسی برای Datastore خاموش شود. پیاده سازی برای java.io و okio ارائه شده است. کارخانه های DataStore روش های جدیدی دارند که این شی Storage را می پذیرند.

تغییرات API

  • API ها را در datastore-core MultiProcessDataStoreFactory برای استفاده از Storage تغییر دهید. ( Iac02f )
  • انتقال APIهای عمومی در datastore-multiprocess به datastore-core ( I76d7c )
  • Exposed PreferencesSerializer از datastore-preferences-core ( I4b788 )

نسخه 1.0.0

نسخه 1.0.0

4 آگوست 2021

androidx.datastore:datastore-*:1.0.0 منتشر شد. نسخه 1.0.0 حاوی این commit ها است.

ویژگی های اصلی 1.0.0

Jetpack DataStore یک راه حل ذخیره سازی داده است که به شما امکان می دهد جفت های کلید-مقدار یا اشیاء تایپ شده را با بافرهای پروتکل ذخیره کنید. DataStore از کوروتین های Kotlin و Flow برای ذخیره داده ها به صورت ناهمزمان، پیوسته و تراکنش استفاده می کند.

نسخه 1.0.0-rc02

21 جولای 2021

androidx.datastore:datastore-*:1.0.0-rc02 منتشر شد. نسخه 1.0.0-rc02 حاوی این commit ها است.

رفع اشکال

  • روشن کنید که SharedPreferencesMigration در صورت نبود کلید اجرا نمی شود. ( Icfa32 , b/192824325 )
  • رفع اشکال که در آن SharedPreferencesMigration ساخته شده با MIGRATE_ALL_KEYS در صورتی که کلید درخواستی هنوز وجود نداشته باشد، یک استثنا ایجاد می کند. ( Ie318a , b/192824325 )

نسخه 1.0.0-rc01

30 ژوئن 2021

androidx.datastore:datastore-*:1.0.0-rc01 منتشر شد. نسخه 1.0.0-rc01 حاوی این commit ها است.

رفع اشکال

  • رفع اشکالی که فایل java. به طور ناخواسته به jar نهایی اضافه شده است ( I65d96 , b/188985637 )

نسخه 1.0.0-beta02

16 ژوئن 2021

androidx.datastore:datastore-*:1.0.0-beta02 منتشر شد. نسخه 1.0.0-beta02 حاوی این تعهدات است.

رفع اشکال

نسخه 1.0.0-beta01

21 آوریل 2021

androidx.datastore:datastore-*:1.0.0-beta01 منتشر شد. نسخه 1.0.0-beta01 حاوی این تعهدات است.

تغییرات API

  • حذف اضافه بارهای JVM برای روش های فقط کاتلین ( I2adc7 )

رفع اشکال

  • رفع اشکالی که در آن نمایندگان داده‌های ذخیره‌سازی می‌توانند منجر به نشت زمینه‌ها شوند ( Ie96fc , b/184415662 )

نسخه 1.0.0-alpha08

10 مارس 2021

androidx.datastore:datastore-*:1.0.0-alpha08 منتشر شد. نسخه 1.0.0-alpha08 حاوی این commit ها است.

تغییرات API

  • اکنون می‌توانید یک انتقال که بستگی به زمینه دارد را به dataStore و preferencesDataStore نمایندگی خود اضافه کنید. ( I4ef69 , b/173726702 )
  • اگر دیگر از datastore delegate یا context.createDataStore ( I60f9a ) استفاده نمی کنید، توابع کمکی را برای دریافت نام فایل اضافه می کند.
  • Serializer writeTo و readFrom اکنون در حالت تعلیق هستند. اگر سریال‌ساز را پیاده‌سازی کرده‌اید، باید توابع خود را به‌روزرسانی کنید تا توابع تعلیق شوند. ( I1e58e )
  • نمایندگان دارایی برای کاربران RxDataStore اضافه شده است. ( Ied768 , b/173726702 )

رفع اشکال

  • اعمال محدودیت در استفاده عمومی از APIهای آزمایشی ( I6aa29 , b/174531520 )

نسخه 1.0.0-alpha07

24 فوریه 2021

androidx.datastore:datastore-*:1.0.0-alpha07 منتشر شد. نسخه 1.0.0-alpha07 حاوی این commit ها است.

تغییرات API

  • تابع پسوند Context.createDataStore حذف شده است و با نماینده ویژگی globalDataStore جایگزین شده است. یک بار با globalDataStore در بالاترین سطح فایل kotlin خود تماس بگیرید. به عنوان مثال:

    val Context.myDataStore by dataStore(...)
    

    این را در سطح بالای فایل کاتلین خود قرار دهید تا فقط یک نمونه از آن وجود داشته باشد. ( 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

13 ژانویه 2021

androidx.datastore:datastore-*:1.0.0-alpha06 منتشر شد. نسخه 1.0.0-alpha06 حاوی این commit ها است.

ویژگی های جدید

  • بسته‌بندی‌های RxJava برای DataStore اضافه شد. آرتیفکت‌های datastore-rxjava2/3 حاوی بسته‌بندی‌هایی برای APIهای اصلی DataStore ( 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 در زیر شاخه "datastore/" ایجاد شده است. ( ICA222 )

نسخه 1.0.0-alpha05

2 دسامبر 2020

androidx.datastore:datastore-*:1.0.0-alpha05 منتشر شد. نسخه 1.0.0-alpha05 حاوی این commit ها است.

رفع اشکال

  • اسناد و استثنائات بهتری را در مورد نوشتن همزمان از دیتا استورها اضافه کنید. ( Ia98a2 , b/173522155 , b/173726702 )
  • اکنون اجازه می دهیم (اما نیازی نیست) OutputStream ارسال شده به Serializer.writeTo() بسته شود. ( I5c9bf , b/173037611 )

نسخه 1.0.0-alpha04

17 نوامبر 2020

androidx.datastore:datastore-*:1.0.0-alpha04 منتشر شد. نسخه 1.0.0-alpha04 حاوی این commit ها است.

رفع اشکال

  • رفع مشکل بسته‌بندی که باعث خرابی زیر در Preference Datastore 1.0.0-alpha03 می‌شود: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences

نسخه 1.0.0-alpha03

11 نوامبر 2020

androidx.datastore:datastore-*:1.0.0-alpha03 منتشر شد. نسخه 1.0.0-alpha03 حاوی این commit ها است.

ویژگی های جدید

  • Preferences اکنون از مقادیر دوگانه پشتیبانی می کند (که اگر به دقت بیشتری نسبت به شناورها نیاز دارید مفید است) ( I5be8f ، b/169471808 )

تغییرات API

  • یک وابستگی کاتلین خالص برای datastore ایجاد کرد تا امکان کامپایل سریع‌تر را فراهم کند. androidx.datastore:datastore-core حاوی هسته Kotlin فقط APIها و androidx.datastore:datastore شامل APIهایی است که به اندروید وابسته هستند (از جمله SharedPreferencesMigration و سازنده Context.createDataStore .) ( I42d75 , b/1698 )
  • تقسیم اهداف برای ذخیره داده های ترجیحی برای کامپایل سریعتر کاتلین ( Ia3c19 )
  • سریال‌سازها اکنون به یک ویژگی جدید برای مقدار پیش‌فرض نیاز دارند که اگر داده‌ای روی دیسک وجود نداشته باشد، استفاده می‌شود. این امر اجرای سریال‌سازهای سفارشی را آسان‌تر می‌کند تا کاربران مجبور نباشند جریان‌های ورودی را با حروف خاص خالی کنند (جریان‌های ورودی خالی با json تجزیه نمی‌شوند).

    • همچنین اکنون یک بررسی وجود دارد تا تأیید کند که جریان خروجی ارائه شده به writeTo() بسته نیست، و اگر بسته باشد، استثناها را ایجاد می کند ( I16e29 )
  • ساخت سازنده برای SharedPreferencesView داخلی. در ابتدا عمومی بود تا امکان آزمایش فراهم شود. در عوض، تست ها باید یک SharedPreferencesMigration بسازند و در مقابل آن تست کنند. ( I93891 )

رفع اشکال

  • پارامتر produceFile در DataStoreFactory و PreferenceDataStoreFactory اکنون آخرین پارامتر در لیست است، بنابراین به شما امکان می دهد از دستور لامبدای انتهایی kotlin استفاده کنید. ( Ibe7f1 , b/169425442 )
  • پیروی از الزامات جدید API صریح برای kotlin ( I5ae1e )

مسائل شناخته شده

  • Preference Datastore با java.lang.NoClassDefFoundError خراب می شود. ( b/173036843 )

نسخه 1.0.0-alpha02

14 اکتبر 2020

androidx.datastore:datastore-core:1.0.0-alpha02 و androidx.datastore:datastore-preferences:1.0.0-alpha02 منتشر شد. نسخه 1.0.0-alpha02 حاوی این commit ها است.

رفع اشکال

  • یک محافظ در برابر جهش در datastore-core اضافه شده است. جهش استفاده از دیتا استور را برای افرادی که از دیتا استور با انواع غیرپرتو/غیر ترجیحی استفاده می‌کنند، قطع می‌کند ( I6aa84 )
  • یک متد toString به Preferences.kt اضافه کرد تا اشکال زدایی وضعیت فعلی را آسان کند ( I96006 )
  • یک استثنا برای محافظت در برابر سوء استفاده از DataStore.Preferences اضافه شد ( I1134d )
  • رفع اشکالی که باعث از کار افتادن برنامه در هنگام راه اندازی می شد ( I69237 , b/168580258 )

نسخه 1.0.0-alpha01

2 سپتامبر 2020

androidx.datastore:datastore-core:1.0.0-alpha01 و androidx.datastore:datastore-preferences:1.0.0-alpha01 منتشر شد. نسخه 1.0.0-alpha01 حاوی این commit ها است.

ویژگی های جدید

Jetpack DataStore یک راه حل جدید و بهبود یافته ذخیره سازی داده است که هدف آن جایگزینی SharedPreferences است. DataStore که بر اساس Kotlin coroutines و Flow ساخته شده است، دو پیاده سازی متفاوت را ارائه می دهد:

  • Proto DataStore، که به شما امکان می دهد اشیاء تایپ شده را ذخیره کنید (با پشتیبانی بافرهای پروتکل )
  • Preferences DataStore، که جفت های کلید-مقدار را ذخیره می کند

داده ها به صورت ناهمزمان، پیوسته و به صورت تراکنشی ذخیره می شوند و بر اکثر اشکالات SharedPreferences غلبه می کنند.