Разделы презентаций


MVVM

Model - View - ViewModel Model-View-ViewModel — Шаблон представлен в 2005 году Джоном Госсманом (John Gossman)Цель - разделить приложение на 3 независимых слоя.View - Activity/FragmentModel (Repository) - работа с бизнес логикой

Слайды и текст этой презентации

Слайд 1MVVM
Model - View - ViewModel



Шаблон проектирования архитектуры приложения.

Автор Юрий Петров vk.com/mobile_developing

https://t.me/mobile_developing_chat

MVVM Model - View - ViewModelШаблон проектирования архитектуры приложения.      Автор Юрий Петров

Слайд 2Model - View - ViewModel
Model-View-ViewModel — Шаблон представлен в

2005 году Джоном Госсманом (John Gossman)
Цель - разделить приложение на

3 независимых слоя.
View - Activity/Fragment
Model (Repository) - работа с бизнес логикой (работа с базой данных Firebase, SQLite и другие)
ViewModel - является связующим звеном View с Model, а также хранит данные для View

Model - View - ViewModel Model-View-ViewModel — Шаблон представлен в 2005 году Джоном Госсманом (John Gossman)Цель -

Слайд 3
View
Activity/Fragment
Слой 1
Слой 2
Слой 3

ViewModel
LiveData

Repository


Model
Model
Room
(SQLite)
Firebase
Уведомляет View об изменении

данных с помощью наблюдения
Обработка событий полученных от пользователя. Отображение

измененных данных.

Хранит данные для View

API для работы с Model

Бизнес логика, работа с данными

ViewActivity/FragmentСлой 1Слой 2Слой 3ViewModelLiveDataRepositoryModelModel Room (SQLite)Firebase Уведомляет View об изменении данных с помощью наблюдения Обработка событий полученных

Слайд 4Архитектурные компоненты Android
Android Architecture Components

Lifecycle
LiveData
ViewModel (AndroidViewModel)
Navigation

Архитектурные компоненты AndroidAndroid Architecture ComponentsLifecycleLiveDataViewModel (AndroidViewModel)Navigation

Слайд 5Android Architecture Components. Dependencies

Автор Юрий Петров vk.com/mobile_developing

Dependencies


def nav_version = "2.3.0-beta01"
def lifecycle_version = "2.2.0"
def coroutines_version = "1.3.4"

// Lifecycle
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version "
// Kotlin
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
// Dynamic Feature Module Support
implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"
// Coroutines
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version'


Android Architecture Components. Dependencies

Слайд 6Android Architecture Components Lifecycle
https://developer.android.com/topic/libraries/architecture/lifecycle

Android Architecture Components Lifecyclehttps://developer.android.com/topic/libraries/architecture/lifecycle

Слайд 7Lifecycle. Activity

Автор Юрий Петров vk.com/mobile_developing

Жизненный цикл Activity

onCreate(): вызывается при создании вашей Activity.
onStart(): осуществляется подготовка к выводу activity на экран.
onRestoreInstanceState(): восстановление данных
onResume(): activity видно на экране и может взаимодействовать с пользователем.
onPause(): фокусировка на другом Activity.
onSaveInstanceState(): сохранение данных
onStop(): activity больше не видна.
onDestroy: activity уничтожена


Lifecycle. Activity

Слайд 8Lifecycle. Fragment

Автор Юрий Петров vk.com/mobile_developing

Жизненный цикл Fragment

onAttach(): связывание с Activity
onCreate(): инициализация фрагмента
onCreateView(): установка макета
onActivityCreated(): после установки макета
onStart(): фрагмент становится видимым
onResume(): фрагмент становится активным
onPause(): фрагмент становится не активным
onStop(): фрагмент становится видимым
onDestroyView(): удаление макета из фрагмента
onDestroy: фрагмент уничтожен
onDetach(): Отвязывание от Activity


Lifecycle. Fragment

Слайд 9Android Architecture Components. Handling Lifecycle

Автор Юрий Петров vk.com/mobile_developing

Обработка жизненных циклов

Компоненты Lifecycle выполняют действия в ответ на изменение состояния жизненного цикла Activity или Fragment.
Lifecycle это класс, который содержит информацию о состоянии жизненного цикла Activity или Fragment, и позволяет другим объектам наблюдать за этим состоянием.

Android Architecture Components. Handling Lifecycle

Слайд 10Android Architecture Components. Handling Lifecycle

Автор Юрий Петров vk.com/mobile_developing

Обработка жизненных циклов

Компоненты Lifecycle выполняют действия в ответ на изменение состояния жизненного цикла Activity или Fragment.
Lifecycle это класс, который содержит информацию о состоянии жизненного цикла Activity или Fragment, и позволяет другим объектам наблюдать за этим состоянием. Lifecycle использует два основных перечисления для отслеживания статуса жизненного цикла для связанного с ним компонента:
Event - События жизненного цикла . Эти события влияют на события обратного вызова в Activity или Fragment.
State - Текущее состояние компонента, отслеживаемого Lifecycle объектом.
LifecycleOwner является интерфейсом, который обозначает, что у класса есть Lifecycle. У него есть один метод, getLifecycle().
LifecycleObserver интерфейс который дает возможность подписаться на Lifecycle.

Android Architecture Components. Handling Lifecycle

Слайд 11Android Architecture Components. Handling Lifecycle

Автор Юрий Петров vk.com/mobile_developing

Lifecycle.Event ON_ANY - Отслеживание всех возможных событий.
Lifecycle.Event ON_CREATE - Отслеживание метода onCreate владельца жизненного цикла.
Lifecycle.Event ON_DESTROY - Отслеживание метода onDestroy владельца жизненного цикла.
Lifecycle.Event ON_PAUSE - Отслеживание метода onPause владельца жизненного цикла.
Lifecycle.Event ON_RESUME - Отслеживание метода onResume владельца жизненного цикла.
Lifecycle.Event ON_START - Отслеживание метода onStart владельца жизненного цикла.
Lifecycle.Event ON_STOP - Отслеживание метода onStop владельца жизненного цикла.

Events (события жизненного цикла)

Lifecycle.State CREATED - состояние создано для владельца жизненного цикла.
Lifecycle.State DESTROYED - состояние уничтожено для владельца жизненного цикла.
Lifecycle.State INITIALIZED - состояние инициализировано для владельца жизненного цикла.
Lifecycle.State RESUMED - состояние восстановлено для владельца жизненного цикла.
Lifecycle.State STARTED - состояние запущено для владельца жизненного цикла.


States (текущее состояние владельца жизненного цикла)

Android Architecture Components. Handling Lifecycle

Слайд 12Android Architecture Components LiveData
https://developer.android.com/topic/libraries/architecture/viewmodel

Android Architecture Components LiveDatahttps://developer.android.com/topic/libraries/architecture/viewmodel

Слайд 13Android Architecture Components. LiveData

Автор Юрий Петров vk.com/mobile_developing

LiveData является классом для хранения данных. В отличие от обычных данных, LiveData учитывает жизненный цикл. Это означает, что LiveData учитывает жизненный цикл компонентов приложения, таких как Activities, Fragments или Services. Эта осведомленность гарантирует, что LiveData обновляет только те компоненты приложения, которые находятся в состоянии активного жизненного цикла.





Методы

value - задать значение LiveData в главном потоке
postValue - задать значение LiveData из другого потока
Transformations.map - позволяет изменить тип LiveData

MediatorLiveData это подкласс LiveData, который может наблюдать за другими LiveData и реагировать на события от них.

Android Architecture Components. LiveData

Слайд 14Android Architecture Components ViewModel
https://developer.android.com/topic/libraries/architecture/livedata

Android Architecture Components ViewModelhttps://developer.android.com/topic/libraries/architecture/livedata

Слайд 15Android Architecture Components. ViewModel

Автор Юрий Петров vk.com/mobile_developing

ViewModel - это класс, который отвечает за подготовку и управление данными для Activity или Fragment. Он также обрабатывает взаимодействие Activity / Fragment с остальной частью приложения (например, коммуникация с классами бизнес-логики).
Примечание : при смене ориентации экрана ViewModel не уничтожается.

Android Architecture Components. ViewModel

Слайд 16Android Architecture Components Navigation
https://developer.android.com/guide/navigation

Android Architecture Components Navigationhttps://developer.android.com/guide/navigation

Слайд 17Android Architecture Components. Navigation

Автор Юрий Петров vk.com/mobile_developing

Компонент Navigation - позволяет пользователям перемещаться между различными частями контента в вашем приложении. Компонент Navigation помогает реализовать навигацию, от простых нажатий кнопок до более сложных шаблонов. Также обеспечивает согласованное и предсказуемое взаимодействие с пользователем.

Navigation graph : это XML ресурс, который содержит всю связанную с навигацией информацию в одном централизованном месте.
NavHost: пустой контейнер, для объектов навигации
NavController: объект, который управляет навигацией приложения в NavHost.

Компонент Navigation состоит из трех ключевых частей:

Android Architecture Components. Navigation

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика