Course Content
-
Сохраняем данные в Room + Kotlin Flow
- Коротко об Android Architecture Components и Room
- Обзор проекта
- Создание Entity и основные аннотации Room
- Создание Data Access Object для CRUD-операций
- Знакомство с Kotlin Flow
- Обновление DAO для использования Kotlin Flow
- Создание базы данных Room
- Знакомство с патерном Repository (Репозиторий) и создание слоя для доступа к данным
- Создание TasksListViewModel
- Создание ячейки списка для отображения UI
- Создание адаптера и добавление RecyclerView
- Получение данных из ViewModel
- Итоги
Коротко об Android Architecture Components и Room
Android Architecture Components – это набор библиотек и компонентов, помогающих разрабатывать Android-приложения решая, типичные задачи разработки, такие как: управление жизненным циклом или сохранения данных в БД. Android Architecture Components являются частью Android Jetpack
Android Architecture Components помогают структурировать приложение и делают его более масштабируемым, тестируемым, устойчивым к багам с меньшим количеством кода, и как следствие багов.
В этом мини-курсе мы рассмотрим как работать с набором таких компонентов как: Kotlin Flow, 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
Описание проекта
В этом курсе мы построим приложение, используя перечисленные Architecture Components и соответствующее рекомендациями построения архитектуры приложений Google
Это приложение для создания списка дел. Пользователь сможет создавать собственные задачи, видеть список созданных задач, отмечать их как выполненные и добавлять новые. Данные мы будем хранить в БД Room и отображать в RecyclerView. Схематично приложение можно представить так:
По завершению мини-курса (код проекта можно взять здесь) вы создадите Android-приложение на базе Architecture Components, научитесь использовать Room, Kotlin Flow,ViewModel, поймете как компоненты взаимодействуют друг с другом, освоите паттерн репозиторий. Готовы? Поехали!