SlideShare una empresa de Scribd logo
1 de 19
Software Architectural Design Patterns
(MVC, MVP, MVVM)
Dongho, LEE
2
2
What’ Design Pattern?
A design pattern is a general reusable solution
to a commonly occurring problem.
Creational Structural Behavioral
Meaning
determines how an
object is created
Organize objects
organize, manage,
and combine the
behavior of an
object
Range
Class Factory Method Adapter(Class)
Interpreter
Template Method
Object
Abstract Factory
Builder
Prototype
Singleton
Adapter(Object)
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Visitor
3
3
What’ Architecture Design Pattern?
- Similar to design pattern, but has a broader scope
View
(Composit
e)
Controller
(Strategy)
Model
(Observer)
< Representative Architecture Pattern : MVC >
4
4
Design Pattern simply explained with sample
Classic
MVC
MVC MVP MVVM
5
5
Classic MVC
MODEL VIEW CONTROLLER
User Event
Update CheckCheck for updates
Is Data update
needed?
Request Data update
Yes
Update Data
UI Change
No
6
6
MVC in Android
MODEL
VIEW
(XML)
CONTROLLER
(Activity, Fragment)
User Event
Update CheckCheck for updates
Is Data update
needed?
Request Data update
YesUpdate Data
UI Change
No
Interact with
Get user event
Notify event
Setup View
7
7
MVC in android
VIEW
activity_main.xml
ListView
EditText
Button
CONTROLLER
MainActivity
findViewById()
addListener
(Button, EditText)
childEventListener(
)
getChatFromServe
r()
Notify Event
Setup View
MODEL
ChatData
FireBase
Interact with
ListAdapter.add()
editText.setText()
8
8
MVP Pattern in Android
VIEW PRESENTER MODEL
Request Data
depending on event
Notify event to Presenter
Get Data
Update Data
Update UI Process business logic
User Event
Notify
Send
data
View Layer doesn’t know Model anymore!!
Ask view to setup itself
9
9
MVP in android
VIEW
activity_main.xml
ListView
EditText
Button
MainActivity
implements
MainView
findViewById();
addListener
(Button, EditText)
updateListView()
initializeInputConsole
()
setListAdapter()
PRESENTER
MainPresenter
MainView<Interface>
Notify Event
Ask view to
setup itself
MODEL
ChatData
FireBase
Interact with
updateListView()
initializeInputConsole()
setListAdapter()
1 : 1
10
1
0
MVVM Pattern in Android
View VIEWMODEL MODEL
Request Data
depending on event
Get Data
Update Data
Update UI Process business logic
User Event
Invoke
Action
Update
Model
State
change
event
Data
Binding
Update View Itself
View Layer
doesn’t know Model
anymore!!
11
1
1
MVVM in android
View
activity_main
(xml)
ListView
EditText
Button
MainActivity
ViewModel
ViewModel
<Interface>
MainViewModel
onSendButtonClicked
(View view)
onTextChanged()
getCurrentTime()
Invoke Action
Bind to data
Model
ChatData
FireBase
Interact with
Data Binding
N : 1
12
1
2
Data Binding Library
Required : Android version 2.1
Android Studio 1.3
Gradle upper 1.5.0-alpha1
LAYOUT (XML)
ACTIVITY
Create Method and Observable
13
1
3
Data Binding Library
LAYOUT (XML)
14
1
4
Data binding Library
DataBindingUtils.setContentView()
Binding Class is automatically generated based on xml, and changed base on Pascal notation
standard.
Activity_main.xml -> ActivityMainBinding.class
15
1
5
Data binding Library
Example using ButterKnife
16
1
6
Data binding Library
Example using DataBinding Library
17
1
7
Data Binding Library
LAYOUT (XML)
18
1
8
Data binding Library
ViewModel
Just use observable to settle value.
Learn more :
https://developer.android.com/topic/libraries/data-binding/index.html
19
1
9
Conclusion
What’s COOLEST architecture in Android?
There is no right answer for that.
It’s depend on case by case.
However, ButterKnife that we use on our app CAN BE REPLACED
with Data Binding Library.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Testing with JUnit 5 and Spring
Testing with JUnit 5 and SpringTesting with JUnit 5 and Spring
Testing with JUnit 5 and Spring
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Training: MVVM Pattern
Training: MVVM PatternTraining: MVVM Pattern
Training: MVVM Pattern
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Understand front end developer
Understand front end developerUnderstand front end developer
Understand front end developer
 
WSO2 API Manager - Product Overview
WSO2 API Manager - Product OverviewWSO2 API Manager - Product Overview
WSO2 API Manager - Product Overview
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Model view controller (mvc)
Model view controller (mvc)Model view controller (mvc)
Model view controller (mvc)
 
Microservices
MicroservicesMicroservices
Microservices
 
NestJS
NestJSNestJS
NestJS
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
SQLite - Overview
SQLite - OverviewSQLite - Overview
SQLite - Overview
 
Angular vs React vs Vue | Javascript Frameworks Comparison | Which One You Sh...
Angular vs React vs Vue | Javascript Frameworks Comparison | Which One You Sh...Angular vs React vs Vue | Javascript Frameworks Comparison | Which One You Sh...
Angular vs React vs Vue | Javascript Frameworks Comparison | Which One You Sh...
 
Cucumber presentation
Cucumber presentationCucumber presentation
Cucumber presentation
 
Java Course 11: Design Patterns
Java Course 11: Design PatternsJava Course 11: Design Patterns
Java Course 11: Design Patterns
 
Android Navigation Component
Android Navigation ComponentAndroid Navigation Component
Android Navigation Component
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Introduction to Design Patterns and Singleton
Introduction to Design Patterns and SingletonIntroduction to Design Patterns and Singleton
Introduction to Design Patterns and Singleton
 
Intro to React
Intro to ReactIntro to React
Intro to React
 

Similar a Acrhitecture deisign pattern_MVC_MVP_MVVM

SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...
SoftServe
 
Building an enterprise app in silverlight 4 and NHibernate
Building an enterprise app in silverlight 4 and NHibernateBuilding an enterprise app in silverlight 4 and NHibernate
Building an enterprise app in silverlight 4 and NHibernate
bwullems
 
Stephen Kennedy Silverlight 3 Deep Dive
Stephen Kennedy Silverlight 3 Deep DiveStephen Kennedy Silverlight 3 Deep Dive
Stephen Kennedy Silverlight 3 Deep Dive
MicrosoftFeed
 

Similar a Acrhitecture deisign pattern_MVC_MVP_MVVM (20)

MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
 
Model View Controller ext4
Model View Controller  ext4Model View Controller  ext4
Model View Controller ext4
 
Design patterns
Design patternsDesign patterns
Design patterns
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
 
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...
 
Architecture logicielle #4 : mvc
Architecture logicielle #4 : mvcArchitecture logicielle #4 : mvc
Architecture logicielle #4 : mvc
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
 
Gof design pattern
Gof design patternGof design pattern
Gof design pattern
 
Struts Ppt 1
Struts Ppt 1Struts Ppt 1
Struts Ppt 1
 
MVC 6 Introduction
MVC 6 IntroductionMVC 6 Introduction
MVC 6 Introduction
 
Building an enterprise app in silverlight 4 and NHibernate
Building an enterprise app in silverlight 4 and NHibernateBuilding an enterprise app in silverlight 4 and NHibernate
Building an enterprise app in silverlight 4 and NHibernate
 
lecture10-patterns.ppt
lecture10-patterns.pptlecture10-patterns.ppt
lecture10-patterns.ppt
 
lecture10-patterns.ppt
lecture10-patterns.pptlecture10-patterns.ppt
lecture10-patterns.ppt
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 
Spring Framework-II
Spring Framework-IISpring Framework-II
Spring Framework-II
 
Stephen Kennedy Silverlight 3 Deep Dive
Stephen Kennedy Silverlight 3 Deep DiveStephen Kennedy Silverlight 3 Deep Dive
Stephen Kennedy Silverlight 3 Deep Dive
 
JSF Presentation"2"
JSF Presentation"2"JSF Presentation"2"
JSF Presentation"2"
 
Slide Presentation of MVP Pattern Concept
Slide Presentation of MVP Pattern ConceptSlide Presentation of MVP Pattern Concept
Slide Presentation of MVP Pattern Concept
 
MVC - Introduction
MVC - IntroductionMVC - Introduction
MVC - Introduction
 
Architectural Design Pattern: Android
Architectural Design Pattern: AndroidArchitectural Design Pattern: Android
Architectural Design Pattern: Android
 

Último

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Último (20)

Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 

Acrhitecture deisign pattern_MVC_MVP_MVVM

Notas del editor

  1. Before looking at what architectural patterns are, Let's look briefly at what design patterns are components of an architectural pattern. A design pattern is a pattern that can be easily used according to the situation by summarizing the structural problems that occur frequently in the process of developing a software. You can see various patterns by referring to the design pattern book of GOF which is the most influential word about design pattern. Architectural patterns are similar to software design pattern but have a broader scope. The architectural patterns address various issues in software engineering, such as computer hardware performance limitations, high availability and minimization of a business risk. Some architectural patterns have been implemented within software frameworks.
  2. In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. Architectural patterns are similar to software design pattern but have a broader scope. If a design pattern is a solution to a problem, the architecture pattern is a solution for the overall architecture of the software. First of all, for example, you can see that the familiar MVC architecture patterns are configured to solve one problem in the software architecture through compound patterns, that is consist of various design patterns. View - Composite - When the controller sends a refresh request to the view, it sends an update request to the top - level view component, which is handled automatically. Controller - Strategy - As the controller corresponds to the behavior of the view, all you have to do is change the controller to make the view behave as you want. Model: Observer Pattern - Whenever the state of a model changes, it sends information to the observer controller and view.
  3. So which architecture pattern is most effective for our app? To answer that question we need to look at each architecture pattern.   We will first look at the structure of the classic MVC model, which is the ancestor of all the architectural patterns. Then, let's look at the sample code to see how the other three patterns are implemented
  4. MODEL The Model is an implementation of the application's domain model that includes a data model along with business and validation logic. Examples of model objects include repositories, business objects, data transfer objects (DTOs) using data base, POJO. The view component displays information to the user. Views get data from the model. The data provided from the model can be displayed in various views, and one controller component is connected to each view.The controller component converts user input, specific events, etc. into service requests. The user interacts with the system only through the controller. While there are advantages to being separated into three layers of model, view and controller,The disadvantage is that models and views need to know each other and therefore are less reusable.
  5. MODEL The Model is an implementation of the application's domain model that includes a data model along with business and validation logic. Examples of model objects include repositories, business objects, data transfer objects (DTOs) using data base, POJO. The view component displays information to the user. Views get data from the model. The data provided from the model can be displayed in various views, and one controller component is connected to each view.The controller component converts user input, specific events, etc. into service requests. The user interacts with the system only through the controller. While there are advantages to being separated into three layers of model, view and controller,The disadvantage is that models and views need to know each other and therefore are less reusable. .
  6. The MVC pattern is implemented as follows: The model has the same role as classic MVC. Within this project, it means FireBase and chatData. The view consists of view objects created in xml. Within this project, it means ListView and EditText. The controller is an activity. View objects communicate with the model through activities. An activity changes its data by interacting with the model layer, finding and connecting to the view, and accessing the view directly with the changed result. As a result, the view and controller will have strong coupling, and it is difficult to test the view separately, or to test the activity itself.
  7. The model component is still unchanged. And in the center there is a presenter instead of a controller. Presenter processes the actual business logic. Unlike controller, it does not directly access the view object and directly modify the view object. Instead, it calls the main view which is a virtual view. Change the data of the view object. In other words, because the main Activity and main Presenter communicate with each other through the MainView interface by manipulating the main view, so that manipulate the views in the Android API even though presenter don’t know the actual view that working with. So eventually if the activity implements the MainView interface, so wecan easily test the presenter logic.
  8. The model component is still unchanged. And in the center there is a presenter instead of a controller. Presenter processes the actual business logic. Unlike controller, it does not directly access the view object and directly modify the view object. Instead, it calls the main view which is a virtual view. Change the data of the view object. In other words, because the main Activity and main Presenter communicate with each other through the MainView interface by manipulating the main view, so that manipulate the views in the Android API even though presenter don’t know the actual view that working with. So eventually if the activity implements the MainView interface, so wecan easily test the presenter logic.
  9. The view model itself acts as a model for the view. MVVM pattern is a pattern that allows a view to change its state by itself when it sees that the view model changes, rather than seeing the model layer and changing its data. Again, the model has not changed. The view does not look at the model, but instead sees the view model change and changes the data on its own. And the view model only performs business logic. Applying this pattern requires binding between view objects and the data model.Android provides a data binding library for data binding.Before we look at the project that implements the pattern, let's see how the Android library does the data binding.
  10. The view model itself acts as a model for the view. MVVM pattern is a pattern that allows a view to change its state by itself when it sees that the view model changes, rather than seeing the model layer and changing its data. Again, the model has not changed. The view does not look at the model, but instead sees the view model change and changes the data on its own. And the view model only performs business logic. Applying this pattern requires binding between view objects and the data model.Android provides a data binding library for data binding.Before we look at the project that implements the pattern, let's see how the Android library does the data binding.
  11. To use the data binding library first, you need Android version 2.1 or later, Grades version 1.5.0 alpha 1 version or later.Just add a data binding element to the build.gradle of your app module. 됩니다.
  12. Let's look at the data binding layout file. The root tag is replaced by layout, followed by the data element and the existing view root element.Below is the text in the text view with the addition of the observer field of the view modelYou can see how to add the method itself.
  13. And in the main activity, we create a data binding object and connect it. The name of the data binding class is automatically generated using the name of xml. And in the last line, complete the binding of the view and view model by setting the view model in the binding class.
  14. And in the main activity, we create a data binding object and connect it. The name of the data binding class is automatically generated using the name of xml. And in the last line, complete the binding of the view and view model by setting the view model in the binding class.
  15. And in the main activity, we create a data binding object and connect it. The name of the data binding class is automatically generated using the name of xml. And in the last line, complete the binding of the view and view model by setting the view model in the binding class.
  16. Let's look at the data binding layout file. The root tag is replaced by layout, followed by the data element and the existing view root element.Below is the text in the text view with the addition of the observer field of the view modelYou can see how to add the method itself.
  17. Next is the view model.In the view model, you create an observable field for the view object to observe. If you set this Observable field, the view you are viewing automatically changes its value. Here's the hint of editText. We did this by creating the view model for our example code, In fact, to use the data-binding library, you can use it in your existing Android activity without creating a view model object.
  18. So what pattern is the best?The latest architectural patterns are not the best for us. Above all, we need to apply our architecture pattern to our current situation. Instead, But using the Android data-binding library will enable us to develop data-binding effectively without changing our app architecture at this time.