fbpx

Коротко об 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, поймете как компоненты взаимодействуют друг с другом, освоите паттерн репозиторий. Готовы? Поехали!