SlideShare a Scribd company logo
Welcome To The 2nd San Diego
Xamarin User Group Meet-Up
April 9th, 2015
Xamarin user group san diego - mvvm cross
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

More Related Content

PDF
MvvmCross Seminar
PPTX
Getting started with MVVM
PDF
Next Generation of Web Application Security Tools
PDF
Xamarin 9/10 San Diego Meetup
PDF
Xamarin user group san diego kick-off!
PDF
Citrusbyte: Data Driven Design
PPTX
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
PPTX
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
MvvmCross Seminar
Getting started with MVVM
Next Generation of Web Application Security Tools
Xamarin 9/10 San Diego Meetup
Xamarin user group san diego kick-off!
Citrusbyte: Data Driven Design
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling

Similar to Xamarin user group san diego - mvvm cross (20)

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

Xamarin user group san diego - mvvm cross

  • 1. Welcome To The 2nd San Diego Xamarin User Group Meet-Up April 9th, 2015
  • 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