Course Content
-
Сохраняем данные в Room + ViewModel
- Коротко об Android Architecture Components и Room
- Создание проекта и добавление необходимых зависимостей
- Создание Entity
- Создание DAO
- Знакомство с LiveData
- Создание базы данных Room
- Знакомство с патерном Repository (Репозиторий) и создание слоя для доступа к данным
- Создание ViewModel
- Создание ячейки списка для отображения UI
- Создание адаптера и добавление RecyclerView
- Добавление записи в БД используя Room
- Создание Activity
- Подключение к базе данных Room
- Итоги
Создание проекта и добавление необходимых зависимостей
Создание проекта
Для создания проекта:
- Выберите Empty Activity.
- Назовите проект RoomWordSample
Добавление необходимых библиотек
Для использования Android Architecture Components необходимо добавить следующее:
Добавьте в build.gradle
(Module: app) kapt
annotation processor в вверху файла последним к списку уже добавленных плагинов следующим образом
apply plugin: 'kotlin-kapt'
Добавьте в блок packagingOptions
следующий блок
android { // other configuration (buildTypes, defaultConfig, etc.) packagingOptions { exclude 'META-INF/atomicfu.kotlin_module' } }
В блок dependencies
добавьте следующий список библиотек:
// Room components implementation "androidx.room:room-runtime:$rootProject.roomVersion" implementation "androidx.room:room-ktx:$rootProject.roomVersion" kapt "androidx.room:room-compiler:$rootProject.roomVersion" androidTestImplementation "androidx.room:room-testing:$rootProject.roomVersion" // Lifecycle components implementation "androidx.lifecycle:lifecycle-extensions:$rootProject.archLifecycleVersion" kapt "androidx.lifecycle:lifecycle-compiler:$rootProject.archLifecycleVersion" androidTestImplementation "androidx.arch.core:core-testing:$rootProject.androidxArchVersion" // ViewModel Kotlin support implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$rootProject.archLifecycleVersion" // Coroutines api "org.jetbrains.kotlinx:kotlinx-coroutines-android:$rootProject.coroutines" // UI implementation "com.google.android.material:material:$rootProject.materialVersion" // Testing androidTestImplementation "androidx.arch.core:core-testing:$rootProject.coreTestingVersion"
Далее в конце файла build.gradle
(Project: RoomWordsSample) добавьте блок с версиями библиотек. Такой подход позволяет вам хранить все версии библиотек в одном месте и обновлять версии быстро и без дублирования кода. Более подробно, о том, как навести порядок в gradle – файле, чтобы при этом не дублировать версии различных библиотек и хранить все названия библиотек в одном месте читайте в статье “Как навести порядок в build.gradle”
ext { roomVersion = '2.2.1' archLifecycleVersion = '2.2.0-rc02' androidxArchVersion = '2.1.0' coreTestingVersion = "2.1.0" coroutines = '1.3.2' materialVersion = "1.0.0" }
В следующем уроке мы создадим таблицу, используя Entity, для хранения данных.