#Jetpack #DataStore #SharedPreferences
Prefer Storing Data with Jetpack DataStore
Всему суждено пасть.
Новая библиотека решена всех проблем
👉 Полностью асинхронное
👉 Уведомление об ошибках
👉 Транзакционное выполнение
👉 Поддержка миграции с
👉 Возможность работы как "Key-Value" так и хранилище объектов на основе Protobuf
В статье найдете примеры использования
Важно: DataStore не является заменой Room
Prefer Storing Data with Jetpack DataStore
Всему суждено пасть.
AsyncTask уже стали deprecated, UI на основе View будет заменен Compose. Вот и SharedPreferences будет замене новой библиотекой DataStore, разработанной на Kotlin и работающей на основе Coroutines.Новая библиотека решена всех проблем
SharedPreferences:👉 Полностью асинхронное
👉 Уведомление об ошибках
👉 Транзакционное выполнение
👉 Поддержка миграции с
SharedPreferences в DataStore👉 Возможность работы как "Key-Value" так и хранилище объектов на основе Protobuf
В статье найдете примеры использования
DataStore и миграции с SharedPreferencesВажно: DataStore не является заменой Room
Android Developers Blog
Prefer Storing Data with Jetpack DataStore
Posted by Florina Muntenescu , Android Developer Advocate, Rohit Sathyanarayana, Software Engineer Welcome Jetpack DataStore, now in ...
#Jetpack #DataStore
Securing Android’s DataStore
Замена SharedPreferences - DataStore, уже близка к релиз, но в ней есть существенный минус - отсутствие шифрования, что не соответствует общим трендам безопасности данных.
Автор приводит способ сериализации данных (GSON, Kotlinx Serialization) в котором проводит шифрования отдельно и сохраняет/восстанавливает полученный результат
Securing Android’s DataStore
Замена SharedPreferences - DataStore, уже близка к релиз, но в ней есть существенный минус - отсутствие шифрования, что не соответствует общим трендам безопасности данных.
Автор приводит способ сериализации данных (GSON, Kotlinx Serialization) в котором проводит шифрования отдельно и сохраняет/восстанавливает полученный результат
#Jetpack #DataStore #MADSkills
All about Preferences DataStore (6 мин)
📺 Видео версия (8 мин)
Продолжение серии статей/видео про Jetpack DataStore. В новой части рассказывается про работу с Preferences.
All about Preferences DataStore (6 мин)
📺 Видео версия (8 мин)
Продолжение серии статей/видео про Jetpack DataStore. В новой части рассказывается про работу с Preferences.
🔥15👍5💩3
#datastore #jetpack #proto
All about Proto DataStore (9 мин)
📺 Видео версия (12 мин)
Рассказ про реализацию DataStore, которая позволяет сохранить объекты, адаптированные поддерживают Protocol Buffer.
All about Proto DataStore (9 мин)
📺 Видео версия (12 мин)
Рассказ про реализацию DataStore, которая позволяет сохранить объекты, адаптированные поддерживают Protocol Buffer.
🤯4
#MADSkills #Jetpack #DataStore
Серия MADSkills по Jetpack DataStore
В новой серии MADSkills рассказывают про альтернативу SharedPreferences - DataStore. Что рассказывают:
👉 All about Preferences DataStore
👉 All about Proto DataStore
👉 DataStore and dependency injection
👉 DataStore and Kotlin serialization
👉 DataStore and synchronous work
На YouTube можно найти видео версию
Серия MADSkills по Jetpack DataStore
В новой серии MADSkills рассказывают про альтернативу SharedPreferences - DataStore. Что рассказывают:
👉 All about Preferences DataStore
👉 All about Proto DataStore
👉 DataStore and dependency injection
👉 DataStore and Kotlin serialization
👉 DataStore and synchronous work
На YouTube можно найти видео версию
👍25👎1
Ускорение работы в DataStore 1.1.2
Считывания первого закэшированного в памяти элемента в среднем ускорили в 8 раз 🤯
#android #datastore #jetpack #jetpackupdate
Считывания первого закэшированного в памяти элемента в среднем ускорили в 8 раз 🤯
#android #datastore #jetpack #jetpackupdate
👍62🤯28❤1
Google выпустила долгожданный стабильный релиз DataStore 1.2.0. Эта версия приносит несколько важных улучшений, которые делают библиотеку ещё более мощной и удобной, особенно для проектов, не полностью перешедших на Kotlin Coroutines.
Ключевые нововведения:
✅ Поддержка Guava
Появился новый модуль
datastore-guava, который предоставляет API на основе ListenableFuture для разработчиков, использующих Guava. Теперь подключать DataStore в проекты на Java стало намного проще (а нужно было???)// Пример использования GuavaDataStore
val guavaDataStore: DataStore<Preferences> = GuavaDataStore.from(
produceFile = { context.preferencesDataStoreFile("settings.pb") },
serializer = PreferencesSerializer,
executor = Dispatchers.IO.asExecutor() // Используем Executor
)
ListenableFuture<Preferences> future = guavaDataStore.getData();
✅ Мультипроцессность для GuavaDataStore
Функциональность многопроцессного доступа, ранее доступная для Kotlin-версии, теперь добавлена и в
GuavaDataStore.✅ Поддержка Android Direct Boot - работа приложений до разблокировки устройства
DataStore теперь можно безопасно использовать в режиме Direct Boot. Для этого данные нужно разместить в защищённом хранилище устройства (Device Protected Storage).
val directBootDataStore = DataStoreFactory.createInDeviceProtectedStorage(
serializer = PreferencesSerializer
) { context.preferencesDataStoreFile("direct_boot_settings.pb") }
✅ Исправления важных багов
👉 Устранен
UnsatisifedLinkError при использовании R8 без стандартного ProGuard-файла.👉 Исправлена проблема, из-за которой операции
GuavaDataStore могли запускаться на главном потоке вместо указанного IO-диспетчера.👉 Решена проблема с
FileNotFoundException в OkioStorage при одновременном обращении к файлу (добавлена вторая попытка чтения).Прочие улучшения
👉 Добавлен
PreferencesFileSerializer — готовый сериализатор для работы с FileStorage.#Android #Jetpack #DataStore #Kotlin #Java #Guava
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5