Course Content
-
Сохраняем данные в Room + ViewModel
- Коротко об Android Architecture Components и Room
- Создание проекта и добавление необходимых зависимостей
- Создание Entity
- Создание DAO
- Знакомство с LiveData
- Создание базы данных Room
- Знакомство с патерном Repository (Репозиторий) и создание слоя для доступа к данным
- Создание ViewModel
- Создание ячейки списка для отображения UI
- Создание адаптера и добавление RecyclerView
- Добавление записи в БД используя Room
- Создание Activity
- Подключение к базе данных Room
- Итоги
Коротко об Android Architecture Components и Room
Android Architecture Components – это набор библиотек и компонентов, помогающих разрабатывать Android-приложения решая, типичные задачи разработки, такие как: управление жизненным циклом или сохранения данных в БД. Android Architecture Components являются частью Android Jetpack
Android Architecture Components помогают структурировать приложение и делают его более масштабируемым, тестируемым, устойчивым к багам с меньшим количеством кода, и как следствие багов.
В этом мини-курсе мы рассмотрим как работать с набором таких компонентов как: LiveData, ViewModel и Room. Но для начала, давайте поговорим о каждом из компонентов по отдельности, о его сущностях и как они работают друг с другом. Схематично, взаимодействие рассматриваемых компонентов можно представить так:
Давайте рассмотрим каждый из элементов по отдельности:
- Entity – класс/модель с аннотациями, описывающий таблицу базы данных при работе с Room
- База данных SQLite – способ хранения данных на устройстве. Room является высокоуровневым интерфейсом для SQLite и занимается созданием и поддержкой базы данных.
- DAO (data access object) – это класс, содержащий CRUD (create/read/update/delete) методы для конкретной сущности
- База данных Room – упрощает работу с SQLite и имеет множество методов для работы с SQLite. Использует DAO для запросов в БД SQLite
- Репозиторий (Repository) – класс для скрытия деталей реализации чтения данных из различных источников данных.
- ViewModel – посредник между репозиторием (данными) и графическим интерфейсом. Экземпляры ViewModel умеют переживать пересоздание Activity или Fragment
- LiveData – обёртка над данными, на изменения которых можно подписаться. Кэширует последнюю версию данных и оповещает подписчиков, когда данные изменились. LiveData автоматически следит и реагирует на методы жизненного цикла.
Описание проекта
В этом курсе мы построим приложение, используя перечисленные Architecture Components и соответствующее рекомендациями построения архитектуры приложений Google
Это приложение для создания заметок. Пользователь сможет записывать нужные заметки, видеть список заметок и добавлять новые. Данные мы будем хранить в БД Room и отображать в RecyclerView. Схематично приложение можно представить так:
По завершению мини-курса (код проекта можно взять здесь) вы создадите Android-приложение на базе Architecture Components, научитесь использовать Room,LiveData,ViewModel, поймете как компоненты взаимодействуют друг с другом, освоите паттерн репозиторий. Готовы? Поехали!