SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Welcome To The 2nd San Diego
Xamarin User Group Meet-Up
April 9th, 2015
Agenda
1. What is MVVM?

2. What is MVVM Cross?

3. Advantages / Disadvantages

4. Demo

5. Q&A

6. Bonus
What Is MVVM?
• Model, View, ViewModel

• Traditionally iOS is developed in MVC (Model, View,
Controller)

• Everything can be tightly coupled (delegation pattern)

• Easy to do wrong

• Traditionally Android is developed in ???

• Tight coupling between views (AXML) and logic
(views get inflated)
What Is MVVM?
http://en.wikipedia.org/wiki/Model_View_ViewModel
What Is MvvmCross?
• a.k.a. MvX

• applies MVVM pattern to

• Xamarin.iOS, Xamarin.Android, Windows Universal

• Xamarin.Mac, Windows Store, …

• IoC and Dependency Injection are core concepts

• Makes for easily testable code

• https://github.com/MvvmCross/MvvmCross
What Is Inversion Of
Control?
• http://en.wikipedia.org/wiki/Inversion_of_control

in traditional programming, the custom code that
expresses the purpose of the program calls into
reusable libraries to take care of generic tasks, but
with inversion of control, it is the reusable code that
calls into the custom, or task-specific, code.
What Is Dependency
Injection?
• http://en.wikipedia.org/wiki/Dependency_injection

the client part of a program which uses a module or
service doesn't need to know all its details, and
typically the module can be replaced by another one
of similar characteristics without altering the client.
Advantages / Disadvantages
Advantages:
• Interchangeable code modules

• Supports test driven development (TDD)

• Core pattern to follow (Code Review)

• DataBindings

Disadvantages:
• It is a non-native pattern for iOS and Android

• core 3rd party dependency

• Lot’s of glue code for Custom Bindings (Value Converters)

• documentation contains a high amount of kitten
DEMO
Q & A
Bonus
atp.fm

Hosted by Marco Arment, Casey Liss, John Siracusa
hanselminutes.com

Hosted by Scott Hanselman
Next Meet-Up
• May 14th, 2015

• Same Place

• Same Time

• Less Kitten
Thank You
seamgen.com/blog
github.com/seamgen/mvvm101

Mais conteúdo relacionado

Semelhante a Xamarin user group san diego - mvvm cross

MVVM - Model View ViewModel
MVVM - Model View ViewModelMVVM - Model View ViewModel
MVVM - Model View ViewModelDareen Alhiyari
 
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossC# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossFlavius-Radu Demian
 
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossC# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossFlavius-Radu Demian
 
How I Accidentally Discovered MVVM
How I Accidentally Discovered MVVMHow I Accidentally Discovered MVVM
How I Accidentally Discovered MVVMBradford Dillon
 
Revamp your monolith with Hierarchical MVC at CFSummit 2018
Revamp your monolith with Hierarchical MVC at CFSummit 2018Revamp your monolith with Hierarchical MVC at CFSummit 2018
Revamp your monolith with Hierarchical MVC at CFSummit 2018Ortus Solutions, Corp
 
Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...
Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...
Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...Codemotion
 
Models used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVMModels used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVMAndrei Popa
 
Mobile development strategies with MVVM
Mobile development strategies with MVVMMobile development strategies with MVVM
Mobile development strategies with MVVMJames Montemagno
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross IntroductionStuart Lodge
 
Prism library and MVVM
Prism library and MVVMPrism library and MVVM
Prism library and MVVMJiri Danihelka
 
O2 platform and ASP.NET MVC, by Michael Hidalgo
O2 platform and ASP.NET MVC, by Michael HidalgoO2 platform and ASP.NET MVC, by Michael Hidalgo
O2 platform and ASP.NET MVC, by Michael HidalgoDinis Cruz
 
Modern ASP.NET Webskills
Modern ASP.NET WebskillsModern ASP.NET Webskills
Modern ASP.NET WebskillsCaleb Jenkins
 
ColdBox Hierarchical MVC - Transform Your Monolith
ColdBox Hierarchical MVC - Transform Your MonolithColdBox Hierarchical MVC - Transform Your Monolith
ColdBox Hierarchical MVC - Transform Your MonolithOrtus Solutions, Corp
 
Understanding The MVVM Pattern (TechDays Belgium)
Understanding The MVVM Pattern (TechDays Belgium)Understanding The MVVM Pattern (TechDays Belgium)
Understanding The MVVM Pattern (TechDays Belgium)Laurent Bugnion
 
A Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMA Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMChris Bannon
 
Introduce MVVM & How to implement it in your iOS app
Introduce MVVM & How to implement it in your iOS appIntroduce MVVM & How to implement it in your iOS app
Introduce MVVM & How to implement it in your iOS appHarvey Hu
 

Semelhante a Xamarin user group san diego - mvvm cross (20)

Training: MVVM Pattern
Training: MVVM PatternTraining: MVVM Pattern
Training: MVVM Pattern
 
MVVM - Model View ViewModel
MVVM - Model View ViewModelMVVM - Model View ViewModel
MVVM - Model View ViewModel
 
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossC# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
 
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossC# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
 
How I Accidentally Discovered MVVM
How I Accidentally Discovered MVVMHow I Accidentally Discovered MVVM
How I Accidentally Discovered MVVM
 
Revamp your monolith with Hierarchical MVC at CFSummit 2018
Revamp your monolith with Hierarchical MVC at CFSummit 2018Revamp your monolith with Hierarchical MVC at CFSummit 2018
Revamp your monolith with Hierarchical MVC at CFSummit 2018
 
Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...
Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...
Cross-platform Apps using Xamarin and MvvmCross - Martijn van Dijk - Codemoti...
 
Adopting MVVM
Adopting MVVMAdopting MVVM
Adopting MVVM
 
Models used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVMModels used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVM
 
Mobile development strategies with MVVM
Mobile development strategies with MVVMMobile development strategies with MVVM
Mobile development strategies with MVVM
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
 
Dia 4.1 mvvm cross
Dia 4.1   mvvm crossDia 4.1   mvvm cross
Dia 4.1 mvvm cross
 
Prism library and MVVM
Prism library and MVVMPrism library and MVVM
Prism library and MVVM
 
O2 platform and ASP.NET MVC, by Michael Hidalgo
O2 platform and ASP.NET MVC, by Michael HidalgoO2 platform and ASP.NET MVC, by Michael Hidalgo
O2 platform and ASP.NET MVC, by Michael Hidalgo
 
Modern ASP.NET Webskills
Modern ASP.NET WebskillsModern ASP.NET Webskills
Modern ASP.NET Webskills
 
ColdBox Hierarchical MVC - Transform Your Monolith
ColdBox Hierarchical MVC - Transform Your MonolithColdBox Hierarchical MVC - Transform Your Monolith
ColdBox Hierarchical MVC - Transform Your Monolith
 
UI Design Patterns
UI Design PatternsUI Design Patterns
UI Design Patterns
 
Understanding The MVVM Pattern (TechDays Belgium)
Understanding The MVVM Pattern (TechDays Belgium)Understanding The MVVM Pattern (TechDays Belgium)
Understanding The MVVM Pattern (TechDays Belgium)
 
A Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMA Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVM
 
Introduce MVVM & How to implement it in your iOS app
Introduce MVVM & How to implement it in your iOS appIntroduce MVVM & How to implement it in your iOS app
Introduce MVVM & How to implement it in your iOS app
 

Xamarin user group san diego - mvvm cross

  • 1. Welcome To The 2nd San Diego Xamarin User Group Meet-Up April 9th, 2015
  • 2.
  • 3. Agenda 1. What is MVVM? 2. What is MVVM Cross? 3. Advantages / Disadvantages 4. Demo 5. Q&A 6. Bonus
  • 4. What Is MVVM? • Model, View, ViewModel • Traditionally iOS is developed in MVC (Model, View, Controller) • Everything can be tightly coupled (delegation pattern) • Easy to do wrong • Traditionally Android is developed in ??? • Tight coupling between views (AXML) and logic (views get inflated)
  • 6. What Is MvvmCross? • a.k.a. MvX • applies MVVM pattern to • Xamarin.iOS, Xamarin.Android, Windows Universal • Xamarin.Mac, Windows Store, … • IoC and Dependency Injection are core concepts • Makes for easily testable code • https://github.com/MvvmCross/MvvmCross
  • 7. What Is Inversion Of Control? • http://en.wikipedia.org/wiki/Inversion_of_control in traditional programming, the custom code that expresses the purpose of the program calls into reusable libraries to take care of generic tasks, but with inversion of control, it is the reusable code that calls into the custom, or task-specific, code.
  • 8. What Is Dependency Injection? • http://en.wikipedia.org/wiki/Dependency_injection the client part of a program which uses a module or service doesn't need to know all its details, and typically the module can be replaced by another one of similar characteristics without altering the client.
  • 9. Advantages / Disadvantages Advantages: • Interchangeable code modules • Supports test driven development (TDD) • Core pattern to follow (Code Review) • DataBindings Disadvantages: • It is a non-native pattern for iOS and Android • core 3rd party dependency • Lot’s of glue code for Custom Bindings (Value Converters) • documentation contains a high amount of kitten
  • 10. DEMO
  • 11. Q & A
  • 12. Bonus atp.fm Hosted by Marco Arment, Casey Liss, John Siracusa hanselminutes.com Hosted by Scott Hanselman
  • 13. Next Meet-Up • May 14th, 2015 • Same Place • Same Time • Less Kitten