Похожие презентации:
Todo приложение. С использованием паттерна MVVM и БД Room
1.
Todo приложениеС использованием паттерна MVVM и БД Room
2.
В этом уроке мы опробуем реализациюпаттерна MVVM вместе с локальной базой данных
Room.
3.
Первым делом добавим зависимости в проект для локальнойбазы данных и viewModel. Для этого в файле build.gradle.kts
(Module :App) в разделе plugins добавьте строку id("kotlin-kapt").
После чего нажмите кнопку sync now.
4.
После синхронизации в низу в разделе dependencies добавьтеследующие зависимости, после чего так же нажмите sync now.
5.
Приступим к написанию приложения. Наше приложение будетсостоять из 3 слоев согласно паттерну: domain, data, presentation
6.
Для удобства работы создайте 3 папки в самой верхнейcom.example.todoapp – data, domain, presentation.
Это можно сделав: правой клавишей мыши на
com.example.todoapp –> New -> Package
7.
В диалоговом меню, ничего не стирая, послеcom.example.todoapp после точки внесите наименование папки на
английском языке. Создайте 3 папки с наименованиями data,
domain, presentation
8.
Domain-слой9.
В Domain-слое у нас описываются сущности. Соответственно,реализуем таблицу для нашей базы данных. Для этого нажмите
правой клав. мыши по domain папке -> New -> Kotlin class/file. В
диалоговом окне сменив файл с Class на File укажите название
файлу - todoItems.
10.
Напишите следующую реализацию.11.
Аннотация @Entity указывает, что данный data class будетявляться частью локальной БД и будет являться таблицей.
Переопределяя tableName мы указываем конкретное
наименование таблице.
Аннотация @PrimaryKey указывает, что поле id будет
первичным с авто заполнением, а @ColumnInfo указывает что это
будет простым полем для заполнения данными
12.
Data-слой13.
Следующим в реализации будет roomDao. DAO (Data AccessObject) - это интерфейс, который определяет методы для работы с
базой данных. Здесь реализуются все методы которые будут
применяться к работе с БД.
Нажмите прав. клав. мыши по папке data -> New -> Kotlin
class/file. В диалоговом окне укажите тип interface и дайте название
файлу roomDao
14.
Напишите следующую реализацию15.
Внутри interface roomDao реализованы три операции над БД:чтение, удаление, создание.
Для работы с БД существует такой термин как CRUD (create,
read, update, delete) – описывающий основные операции над БД
(создание, чтение, обновление, удаление). Обычно принято
реализовывать все 4 операции.
16.
Теперь создадим экземпляр БД.Для этого в той же data создайте файл с
class appDatabase. Чуть позже
расширьте его до abstract.
Отличительной особенностью
абстрактных классов является то, что
мы не можем создать объект подобного
класса.
17.
Мы почти закончили с data иdomain слоями! Осталось
реализовать отдельный класс
для работы с ViewModel –
roomRepository.
Главная цель репозитория –
реализация интерфейса который
описывает бизнес-процессы.
Однако в данном случае
репозиторий нам потребуется
для удобного представления
операций во ViewModel.
В папке data добавьте файл
roomRepository и напишите
реализацию
18.
Presentation-слой19.
Приступая креализации presentation
слоя, первым делом
создадим ViewModel. Для
этого создайте новый класс
в Presentation слое и
именуйте его
roomViewModel. Напишите
следующую реализацию
20.
Для отображенияданных нам потребуется
создать отдельный
компонент – card(). В нем
описывается то, как будут
расположены компоненты
для текста, кнопок и
прочего.
Создайте новый файл
в presentation слое и
напишите следующую
реализацию
21.
Почти финиш.Осталось создать экран
для отображения
элементов в MainActivity
реализуйте следующую
часть экрана.
Обратите внимание
на if(showDialog) {...},
реализация скрыта, ее
написание будет на
следующем слайде
22.
А вот и она!23.
Осталось написать дополнительный экран в котором будутсозданы объекты/экземпляры классов базы данных и передана во
viewModel реализация.
24.
Передайте HomeScreen() в MainActivity и запуститеприложение!
Программирование