DataStore

تخزين البيانات بشكل غير متزامن ومتسق ومعاملاً، والتغلب على بعض عيوب SharedPreferences
التعديل الأخير الإصدار المستقر إصدار مرشح الإصدار التجريبي إصدار ألفا
20 آذار (مارس) 2024 1.0.0 1.1.0-rc01 - -

إعلان التبعيات

لإضافة تبعية إلى DataStore، يجب إضافة مستودع Google Maven إلى مشروعك. لمزيد من المعلومات، يمكنك الاطّلاع على مستودع Maven من Google.

هناك عمليّتا تنفيذ لـ DataStore: الإعدادات المفضّلة و"النموذج الأوّلي". عليك تحديد أحد الخيارَين. يمكنك أيضًا إضافة اعتماديات خالية من Android إلى أي من عمليات التنفيذ.

أضِف التبعيات اللازمة للتنفيذ الذي تحتاج إليه في ملف build.gradle لتطبيقك أو الوحدة:

Preferences DataStore

Groovy

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

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

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

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

Kotlin

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

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

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

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

Proto DataStore

Groovy

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

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

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

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

Kotlin

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

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

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

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

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء عدد جديد

راجِع مستندات أداة تتبُّع المشاكل للحصول على مزيد من المعلومات.

الإصدار 1.1

الإصدار 1.1.0-beta02

‫6 مارس 2024

تم طرح "androidx.datastore:datastore-*:1.1.0-beta02". يحتوي الإصدار 1.1.0-beta02 على هذه الالتزامات.

إصلاح الأخطاء

  • لا يجمع تحسين الأداء في DataStore إشعارات التحديث إلا عند ملاحظته. (b/267792241)
    • لاحظ أن هذا التغيير قد يؤدي إلى تشغيل UncompletedCoroutinesError في اختباراتك إذا كنت تستخدم مكتبة اختبار الكوروتينات. تأكَّد من اجتياز TestScope.backgroundScope عند إعداد DataStore في اختباراتك لتجنُّب هذه المشكلة.
  • تم إصلاح مشكلة طلبات updateData المتداخلة على الجهاز نفسه التي قد تؤدي إلى الإيقاف المؤقت. (b/241760537)
  • تم جعل DataStore لم يعد يعرض الخطأ IOExceptions في حال تعذُّر حذف SharedPreferences أثناء نقل البيانات. (b/195553816)
  • تم إصلاح المشكلة المتمثلة في تعذُّر إعادة تسمية الملف أثناء updateData في البيئات التي لا تستخدم نظام التشغيل Android 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 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • لم تعُد طرق 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 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تتلقّى الآن الطريقة الأصلية لـ 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 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • أصبح مخزن البيانات FileStorage متاحًا للجميع الآن، لذلك يمكن للعملاء تقديم مَعلمات مخصّصة. (Icb985)
  • تم تغيير الدالة الإنشائية OkioStorage لقبول InterProcessCoordinator بحيث يمكن استخدامها على Android مع MultiProcessCoordinator. (Iecea3)

إصلاح الأخطاء

  • إصلاح مشكلة MultiProcessCoordinator تعذُّر تتبُّع ملفات متعددة في الدليل نفسه
  • إصلاح تعذُّر رصد الملفات المكرّرة في حال عدم تسوية مسارات الملفات
  • أصلِح القيم الخاطئة المعروضة من "RxDataStore#isDisposed".
  • إصلاح إعدادات Proguard غير المتوفّرة لعنصر datstore-preferences-core

الإصدار 1.1.0-alpha04

5 نيسان (أبريل) 2023

تم طرح "androidx.datastore:datastore-*:1.1.0-alpha04". يحتوي الإصدار 1.1.0-alpha04 على هذه الالتزامات.

إصلاح الأخطاء

  • يمكنك تحسين عملية التنفيذ الداخلي لتجنُّب حدوث مشكلة متعلّقة بالسباق، لأنّ تدفق بيانات "DataStore" قد ينبعث من قيمة قديمة بعد إجراء تحديث.

الإصدار 1.1.0-alpha03

24 آذار (مارس) 2023

تم طرح "androidx.datastore:datastore-*:1.1.0-alpha03".

إصلاح الأخطاء

  • تمت إزالة قيود التبعية من عناصر Maven لحل مشكلة إنشاء في أهداف Kotlin الأصلية (b/274786186، KT-57531).

الإصدار 1.1.0-alpha02

22 آذار (مارس) 2023

تم طرح "androidx.datastore:datastore-*:1.1.0-alpha02". يحتوي الإصدار 1.1.0-alpha02 على هذه الالتزامات.

ملاحظة

تجدر الإشارة إلى أنّ هذا الإصدار يتضمّن أداة إعادة هيكلة داخلية مهمة تدمج عمليات التنفيذ لعمليات تنفيذ DataStore على شكل عملية واحدة ومتعدّدة العمليات. يُرجى مراقبة التغييرات المحتملة في السلوك غير المقصودة (مثل توقيت إشعارات التعديل). يمكنك استخدام مكوِّن أداة تتبُّع المشاكل للإبلاغ عن هذه التغييرات.

الميزات الجديدة

  • يمكنك الآن استخدام "DataStore" في مشاريع KMM. تجدر الإشارة إلى أنّ أهداف DataStore التي لا تعمل بنظام التشغيل Android لا تزال في مرحلة تجريبية، ولكننا قرّرنا دمج الإصدارات لتسهيل تجربة المطوّرين عليها.
  • تم نقل الميزات المتعددة العمليات من androidx.datastore.multiprocess إلى androidx.datastore.core.
  • يمكنك إضافة طريقة جديدة على الإعدادات الأصلية في androidx.datastore.core.MultiProcessDataStoreFactory لإنشاء مثيلات DataStore باستخدام عناصر Storage لعمليات تشغيل الملفات.
  • إضافة واجهة InterProcessCoordinator جديدة تساعد مثيلات DataStore المتعددة في التواصل عبر العمليات يُرجى العلم أنّ تنفيذ InterProcessCoordinator في عمليات متعدّدة لا تتوفّر إلا على Android.

تغييرات واجهة برمجة التطبيقات

  • إضافة InterProcessCoordinator إلى StorageConnection في واجهة مخزن البيانات الأساسية (I555bb)
  • عليك تغيير واجهات برمجة التطبيقات في الإصدار MultiProcessDataStoreFactory الأساسي من مخزن البيانات لاستخدام مساحة التخزين. (Iac02f)
  • نقل واجهات برمجة التطبيقات العامة في عمليات تخزين البيانات المتعددة العمليات إلى وحدة تخزين البيانات الأساسية (I76d7c)
  • PreferencesSerializer مكشوف من datastore-preferences-core (I4b788)
  • إضافة تعليق توضيحي @JvmDefaultWithCompatibility (I8f206)

الإصدار 1.1.0-alpha01

9 تشرين الثاني (نوفمبر) 2022

تم طرح "androidx.datastore:datastore-*:1.1.0-alpha01". يحتوي الإصدار 1.1.0-alpha01 على هذه الالتزامات.

الميزات الجديدة

  • إتاحة حالات الاستخدام المتعدّدة العمليات التي يتم فيها ضمان اتساق البيانات في حالات DataStore على مستوى جميع العمليات يمكنك إضافة MultiProcessDataStoreFactory#create لإنشاء مثل هذه الحالات التي يبلغ عددها DataStore.
  • واجهة مساحة تخزين جديدة تسمح بتبديل آلية التخزين الأساسية لـ Datastore. يتم توفير عمليات تنفيذ لـ java.io وokio. لدى DataStore مصانع طرق جديدة تقبل عنصر مساحة التخزين هذا.

تغييرات واجهة برمجة التطبيقات

  • عليك تغيير واجهات برمجة التطبيقات في الإصدار MultiProcessDataStoreFactory الأساسي من مخزن البيانات لاستخدام مساحة التخزين. (Iac02f)
  • نقل واجهات برمجة التطبيقات العامة في عمليات تخزين البيانات المتعددة العمليات إلى وحدة تخزين البيانات الأساسية (I76d7c)
  • PreferencesSerializer مكشوف من datastore-preferences-core (I4b788)

الإصدار 1.0.0

الإصدار 1.0.0

4 آب (أغسطس) 2021

تم طرح "androidx.datastore:datastore-*:1.0.0". يتضمّن الإصدار 1.0.0 هذه الالتزامات.

الميزات الرئيسية للإصدار 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 على هذه الالتزامات.

إصلاح الأخطاء

  • يمكنك توضيح أنّه لا يتم تشغيل "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 على هذه الالتزامات.

إصلاح الأخطاء

  • إصلاح الخطأ الذي كان يؤدي إلى إضافة ملف .java عن غير قصد إلى الوعاء النهائي (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 هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • إزالة عمليات حِمل JVM الزائدة لأساليب لغة kotlin فقط (I2adc7)

إصلاح الأخطاء

  • تم إصلاح خطأ يمكن أن يؤدي فيه المستخدمون المفوَّضون بإدارة متجر البيانات إلى تسريب السياقات (Ie96fc، b/184415662).

الإصدار 1.0.0-alpha08

10 آذار (مارس) 2021

تم طرح "androidx.datastore:datastore-*:1.0.0-alpha08". يحتوي الإصدار 1.0.0-alpha08 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • يمكنك الآن إضافة عملية نقل بيانات تستند إلى السياق إلى المستخدم المفوَّض في موقعك الإلكتروني على dataStore وpreferencesDataStore. (I4ef69، b/173726702)
  • إضافة دوال المساعدة للحصول على اسم الملف إذا لم تعُد تستخدم تفويض مخزن البيانات أو السياق.createDataStore (I60f9a)
  • يتم الآن تعليق المسلسل writeTo وreadFrom. إذا قمت بتنفيذ تسلسل، فستحتاج إلى تحديث الدوال لتعليق الدوال. (I1e58e)
  • تمت إضافة تفويضات المواقع لمستخدمي RxDataStore. (Ied768، b/173726702)

إصلاح الأخطاء

  • فرض قيود على الاستخدام العلني لواجهات برمجة التطبيقات التجريبية (I6aa29، b/174531520)

الإصدار 1.0.0-alpha07

24 شباط (فبراير) 2021

تم طرح "androidx.datastore:datastore-*:1.0.0-alpha07". يحتوي الإصدار 1.0.0-alpha07 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تمت إزالة دالة الإضافة "Context.createDataStore" واستبدالها بتفويض الموقع GlobalDataStore. يمكنك طلب GlobalDataStore مرة واحدة عند الوصول إلى المستوى الأعلى في ملف kotlin. على سبيل المثال:

    val Context.myDataStore by dataStore(...)
    

    ضَع هذا في المستوى الأعلى من ملف kotlin حتى لا يكون هناك سوى مثيل واحد منه. (I57215، b/173726702)

  • دوال RxDataStore متاحة الآن في فئة RxDataStore، بدلاً من دوال الإضافات في DataStore. (Idccdb، b/177691248)

  • إذا كنت تريد نقل EncryptedSharedPreferences (أو التشغيل المباشر لهذه الميزة) إلى DataStore، يمكنك الآن إجراء ذلك باستخدام الدالة الإنشائية SharedPreferencesMigrate الجديدة التي تسمح لك بإدخال "SharedPreferences". (I8e04e، b/177278510)

إصلاح الأخطاء

  • سيعرض DataStore الآن استثناءً إذا كان هناك عدة متاجر بيانات نشطة للملف نفسه. إذا لم تكن تدير مثيل DataStore الخاص بك بصفتك سينغلتون أو لم تكن تضمن عدم تنشيط نسختين من DataStore في الوقت نفسه لأحد الملفات، قد تظهر لك الآن استثناءات عند القراءة أو الكتابة في DataStore. ويمكن حلّ هذه المشاكل من خلال إدارة DataStore على أنّه مكتبة سينغلتون. (Ib43f4، b/177691248)
  • إصلاح سلوك الإلغاء عند إلغاء نطاق المتصل. (I2c7b3)

الإصدار 1.0.0-alpha06

13 كانون الثاني (يناير) 2021

تم طرح "androidx.datastore:datastore-*:1.0.0-alpha06". يحتوي الإصدار 1.0.0-alpha06 على هذه الالتزامات.

الميزات الجديدة

  • تمت إضافة برامج تضمين RxJava لـ DataStore. تحتوي عناصر datastore-rxjava2/3 على برامج تضمين لواجهات برمجة التطبيقات DataStore API الأساسية (RxDataStore وRxDataStoreBuilder وRxDataMigration). تحتوي عناصر datastore-preferences-rxjava2/3 على أداة إنشاء لإنشاء الإعدادات المفضّلة في DataStore.

تغييرات واجهة برمجة التطبيقات

  • إخفاء واجهة CorruptionHandler ولم يكن هناك سبب ليكون متاحًا للجميع لأنّ المصنع في DataStore لا يقبل إلا استبدال ReFileCorruptionHandler. (I0b3b3، b/176032264)
  • تمت إزالة الطريقة preferencesKey<T>(name: String): Key<T> واستبدالها بطرق خاصة بكل نوع متوافق، على سبيل المثال preferencesKey<Int>("int") أصبح الآن intPreferencesKey("int") (Ibcfac، b/170311106)

إصلاح الأخطاء

  • يعمل على إصلاح الوثائق الموجودة في DataStoreProduct التي لم تستثني حقيقة إنشاء ملف مخزن البيانات في الدليل الفرعي "datastore/ ". (Ica222)

الإصدار 1.0.0-alpha05

2 كانون الأول (ديسمبر) 2020

تم طرح "androidx.datastore:datastore-*:1.0.0-alpha05". يحتوي الإصدار 1.0.0-alpha05 على هذه الالتزامات.

إصلاح الأخطاء

  • يمكنك إضافة مستندات واستثناءات أفضل حول عمليات الكتابة المتزامنة من مخازن البيانات. (Ia98a2 وb/173522155 وb/173726702)
  • نسمح الآن (ولكننا لا نشترط) بإغلاق OUTstream التي تم تمريرها إلى Serializer.writeTo(). (I5c9bf، b/173037611)

الإصدار 1.0.0-alpha04

17 تشرين الثاني (نوفمبر) 2020

تم طرح "androidx.datastore:datastore-*:1.0.0-alpha04". يحتوي الإصدار 1.0.0-alpha04 على هذه الالتزامات.

إصلاح الأخطاء

  • تمت معالجة مشكلة في الحزمة تؤدي إلى حدوث العطل التالي في "مخزن البيانات المفضَّل" 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 على هذه الالتزامات.

الميزات الجديدة

  • تتوافق الإعدادات المفضّلة الآن مع القيم المزدوجة (وهو أمر مفيد إذا كنت بحاجة إلى دقة أكبر من الأعداد العشرية) (I5be8f، b/169471808)

تغييرات واجهة برمجة التطبيقات

  • تم إنشاء تبعية تامة للغة kotlin لمخزن البيانات للسماح بالتجميع بشكل أسرع. يحتوي androidx.datastore:datastore-core على واجهات برمجة التطبيقات الأساسية في Kotlin فقط، بينما يحتوي androidx.datastore:datastore على واجهات برمجة التطبيقات التي تعتمد على android (بما في ذلك SharedPreferencesMigration والأداة الإنشائية Context.createDataStore.)(I42d75، b/168512698)
  • تقسيم أهداف مخزن بيانات الإعدادات المفضَّلة لتجميع بيانات لغة البرمجة كورتلين بشكل أسرع (Ia3c19)
  • تتطلب البرامج التسلسلية الآن خاصية جديدة للقيمة التلقائية التي سيتم استخدامها في حال عدم توفّر بيانات على القرص. يسهّل ذلك تنفيذ المتسلسلات المخصّصة بحيث لا يضطر المستخدمون إلى استخدام ساحات مشاركات فارغة بحالة خاصة (لا يتم تحليل ساحات الإدخال الفارغة باستخدام تنسيق json).

    • كما توجد الآن عملية تحقق للتأكد من أن ساحة مشاركات الإخراج المقدمة إلى writeTo() لم يتم إغلاقها، وإذا تم إغلاقها، فإنها تعرض استثناءات (I16e29)
  • جعل الدالة الإنشائية لـ SharedPreferencesView داخلية. وقد تم في الأصل نشره بشكل عام للسماح بالاختبار. وبدلاً من ذلك، يجب أن تنشئ الاختبارات SharedPreferences Migration وتُجري الاختبارات استنادًا إلى ذلك. (I93891)

إصلاح الأخطاء

  • أصبحت المَعلمة produceFile في DataStoreFactory وPreferenceDataStoreFactory هي الآن المَعلمة الأخيرة في القائمة، لذا تتيح لك استخدام بنية lambda اللاحقة kotlin. (Ibe7f1، b/169425442)
  • اتّباع متطلبات واجهة برمجة التطبيقات الصريحة الجديدة في لغة kotlin (I5ae1e)

المشاكل المعروفة

  • أعطال "مخزن البيانات المفضَّلة" مع "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 على هذه الالتزامات.

إصلاح الأخطاء

  • تمت إضافة حماية ضد التغيير في جوهر تخزين البيانات. يؤدي التبديل إلى إيقاف استخدام مخزن البيانات للأشخاص الذين يستخدمون مخزن البيانات بأنواع غير Proto/غير التفضيلات (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 على هذه الالتزامات.

الميزات الجديدة

إنّ Jetpack DataStore هو حلّ جديد ومحسّن لتخزين البيانات يهدف إلى استبدال SharedPreferences. يستند DataStore إلى الكوروتينات والتدفق في Kotlin، ويوفر عمليتين مختلفتين:

  • Proto DataStore، الذي يتيح لك تخزين الكائنات المكتوبة (تدعمها مخازن مؤقتة للبروتوكول)
  • التفضيلات DataStore، الذي يخزِّن أزواج المفتاح/القيمة

يتم تخزين البيانات بشكل غير متزامن ومتسق ومعامل، للتغلّب على معظم عيوب SharedPreferences.