Привет! Как разработчик ты когда-нибудь столкнешься с задачей, когда нужно хранить большое количество изменяемых данных. В этом гайде мы рассмотрим решение от Google — Room. Мы ознакомимся с основными компонентами библиотеки и разберем простой пример ее использования.
Для хранения данных, разработчик может использовать: Files, SharedPreferences, SQLite, Resources/Assets.
Сегодня мы будем рассматривать SQLite
Room — это библиотека от Google, которая представляет собой высокоуровневую абстракцию над SQLite. Работа с SQLite напрямую может быть очень сложной. SQLite требует написания большого количества шаблонного кода для выполнения простых операций, которые в Room выполняются по щелчку пальцев: таких например как создание таблиц, добавление, обновление и удаление данных. Room упрощает работу с базой данных, предоставляя удобный API для выполнения CRUD- операций.
Основные компоненты Room:
RoomDatabase и содержит список сущностей и DAO. Для определения этого класс используется аннотация @Database.давайте создадим простое приложение для хранения списка задач (to-do list) с использованием Room.
⚠️ в примере избегается использование корутин, рыксы, архитектурных компонентов андроид(ViewModel, LiveData) для того чтобы сделать пример максимально понятливым.
Сначала добавим необходимые зависимости в проект, как добавить необходимые зависимости смотрим тут: тык
Создадим класс Task, который будет представлять нашу сущность: