SlideShare uma empresa Scribd logo
1 de 37
MVVMCROSS 
BY ROSS DARGAN
Introductions 
Ross Dargan 
@rossdargan 
Ross.dargan@Waterstons.com 
Work at Waterstons in Durham
Introductions 
Ross Dargan 
@rossdargan 
Ross.dargan@Waterstons.com 
Work at Waterstons in Durham 
New to keynote transitions (sorry!) 
C# Developer for 10 years 
Cross platform mobile for 2 years 
Dad of 3 
Husband to 1 
Uses the 1Sec application
What we will cover 
Quick overview of the problem MVVMCross solves 
A look at alternative UI patterns 
An intro to MVVM 
A look at MVVMCross
“The difference between a Designer and 
Developer, when it comes to design skills, is the 
difference between shooting a bullet and throwing 
it.” 
–Scott Hanselman
Xamarin 
iOS C# UI Android C# UI Windows C# UI 
Shared App Logic 
Shared App Logic in C#
Old School UI Updating 
protected override void OnCreate(Bundle bundle) 
{ 
base.OnCreate(bundle); 
SetContentView(Resource.Layout.Main); 
DomainService domainService = new DomainService(); 
Button saveButton = FindViewById<Button>(Resource.Id.MyButton); 
EditText firstNameText = FindViewById<EditText>(Resource.Id.firstName); 
EditText lastNameText = FindViewById<EditText>(Resource.Id.lastName); 
EditText bankPasswordText = FindViewById<EditText>(Resource.Id.bankPassword); 
DomainEntity domainEntity = DomainService.GetEntity(); 
firstNameText.Text = domainEntity.FirstName; 
lastNameText.Text = domainEntity.LastName; 
bankPasswordText.Text = domainEntity.BankPassword; 
saveButton.Click += delegate 
{ 
domainEntity.FirstName = firstNameText.Text; 
domainEntity.LastName = lastNameText.Text; 
domainEntity.BankPassword = bankPasswordText.Text; 
domainService.UpdateEntity(domainEntity); 
}; 
}
Old School UI Updating 
protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
base.OnNavigatedTo(e); 
DomainService domainService = new DomainService(); 
DomainEntity domainEntity = domainService.GetEntity(); 
FirstName.Text = domainEntity.FirstName; 
LastName.Text = domainEntity.LastName; 
BanksPassword.Text = domainEntity.BankPassword; 
SaveButton.Click += delegate(object sender, RoutedEventArgs args) 
{ 
domainEntity.FirstName = FirstName.Text; 
domainEntity.LastName = LastName.Text; 
domainEntity.BankPassword = BanksPassword.Text; 
domainService.UpdateEntity(domainEntity); 
}; 
}
Old School UI Updating 
Very tedious code 
Huge amounts of boiler plate 
code duplication 
Any Complex UI validation 
code can’t be easily re-used 
Very hard to test the UI code
SOLVING THE UI PROBLEM 
(VIA PATTERNS)
UI Design Patterns 
MVC more for stateless apps (and iOS :/) 
MVP gives you testability, still needs a lot of boiler 
plate code 
MVVM boiler plate code replaced with bindings
A brief history of Mvvm 
Introduced in 2005 
Based on Martin Fowlers 
presentation model 
Created by John Gossman 
(WPF and Silverlight 
architect)
Mvvm 
Views Tests 
View Models 
Models (Domain layer/services)
Mvvm 
Views Tests 
View Models 
Models (Domain layer/services) 
Exposes an event (defined in 
an interface)
Mvvm 
Views Tests 
View Models 
Models (Domain layer/services) 
Subscribes to the event so it 
knows when properties are 
updated
Data context 
Specifies the viewmodel to use for all bindings at 
the top level 
Data context is normally inherited (lists are the 
exception)
Bindings 
Specifies a mapping between a property on a UI 
control, and a property on a VM 
Can be one-way, two-way or several other 
infrequently used options 
Can have a fallback value 
Can use a convertor (bool property on a VM, can 
become a visibility)
Commands 
Provides a way to notify the VM that something has 
happened on the UI (button press for example) 
Can accept a parameter
DEMO
“When you feel the need to write a comment, first 
try to refactor the code so that any comment 
becomes superfluous.” 
–Martin Fowler
MvvmCross
MvvmCross 
Primary contributor is 
@slodge (Stuart) 
Started in December 2010 
Now well into a stable 3rd 
revision 
Well supported for an open 
source project
MvvmCross 
Mvvm is support natively by 
WPF 
WinStore 
WinPhone 
Silverlight
MvvmCross 
MvvmCross adds Mvvm support to 
iOS 
Android 
Mac
DEMO
“My favourite things in life don't cost any money. It's 
really clear that the most precious resource we all 
have is time.” 
–Steve Jobs
ADVANCED 
MVVMCROSS 
FEATURES
Navigation 
Designed around screen apps 
ViewModel based navigation 
ShowViewModel<ViewModel Type>() 
Close()
Dependency Injection 
Not a MvvmCross pattern per say, but still very 
important 
Allows platform specific code to be injected
Plugins 
A more formal way to allow platform specific code 
to be injected
Messaging 
Used a lot to communicate across view models
DEMO
Custom Presenters 
Allows you to customise how viewmodels are 
presented 
Can be used to control the platforms navigation 
stack (back stack)
DEMO
Xamarin - Forms
“I would rather be without a state than without a 
voice.” 
–Edward Snowden
Questions? 
Useful Links 
https://github.com/MvvmCross/MvvmCross 
http://mvvmcross.blogspot.co.uk/ 
Ninja Coder (google it!) 
Android Player 
ross.dargan@waterstons.com

Mais conteúdo relacionado

Mais procurados

Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
DefconRussia
 
NodeJS_Presentation
NodeJS_PresentationNodeJS_Presentation
NodeJS_Presentation
Arpita Patel
 

Mais procurados (15)

Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
Rafal Wojtczuk - Endpoint security via Application sandboxing and virtualizat...
 
Chapter 1 java
Chapter 1 java Chapter 1 java
Chapter 1 java
 
TestingBot Introduction: Selenium Grid with Browsers and Mobile Devices
TestingBot Introduction: Selenium Grid with Browsers and Mobile DevicesTestingBot Introduction: Selenium Grid with Browsers and Mobile Devices
TestingBot Introduction: Selenium Grid with Browsers and Mobile Devices
 
NodeJS_Presentation
NodeJS_PresentationNodeJS_Presentation
NodeJS_Presentation
 
Visual studio + Xamarin equals love
Visual studio + Xamarin equals loveVisual studio + Xamarin equals love
Visual studio + Xamarin equals love
 
Vagrant for Development
Vagrant for DevelopmentVagrant for Development
Vagrant for Development
 
Visual studio + Xamarin == Love
Visual studio + Xamarin == LoveVisual studio + Xamarin == Love
Visual studio + Xamarin == Love
 
WebAssembly with Rust
WebAssembly with RustWebAssembly with Rust
WebAssembly with Rust
 
Vertx in production
Vertx in productionVertx in production
Vertx in production
 
Vagrant up-and-running
Vagrant up-and-runningVagrant up-and-running
Vagrant up-and-running
 
Web Assembly (W3C TPAC presentation)
Web Assembly (W3C TPAC presentation)Web Assembly (W3C TPAC presentation)
Web Assembly (W3C TPAC presentation)
 
Buzzword, How'd They Build That?
Buzzword, How'd They Build That?Buzzword, How'd They Build That?
Buzzword, How'd They Build That?
 
Production ready Vert.x
Production ready Vert.xProduction ready Vert.x
Production ready Vert.x
 
JavaScript for VR with notes
JavaScript for VR with notesJavaScript for VR with notes
JavaScript for VR with notes
 
Easy WP Dev environments with VVV
Easy WP Dev environments with VVVEasy WP Dev environments with VVV
Easy WP Dev environments with VVV
 

Semelhante a MvvmCross

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
 
Mix Tech Ed Update No Video
Mix Tech Ed Update No VideoMix Tech Ed Update No Video
Mix Tech Ed Update No Video
AllyWick
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
Stuart Lodge
 

Semelhante a MvvmCross (20)

MVP Mix 2015 Leveraging MVVM on all Platforms
MVP Mix 2015  Leveraging MVVM on all PlatformsMVP Mix 2015  Leveraging MVVM on all Platforms
MVP Mix 2015 Leveraging MVVM on all Platforms
 
Building xamarin.forms apps with prism and mvvm
Building xamarin.forms apps with prism and mvvmBuilding xamarin.forms apps with prism and mvvm
Building xamarin.forms apps with prism and mvvm
 
Modern ASP.NET Webskills
Modern ASP.NET WebskillsModern ASP.NET Webskills
Modern ASP.NET Webskills
 
Real world apps with Xamarin and MVVM
Real world apps with Xamarin and MVVMReal world apps with Xamarin and MVVM
Real world apps with Xamarin and MVVM
 
Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7
 
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
 
Javascript from beginning to modern
Javascript from beginning to modernJavascript from beginning to modern
Javascript from beginning to modern
 
Mix Tech Ed Update No Video
Mix Tech Ed Update No VideoMix Tech Ed Update No Video
Mix Tech Ed Update No Video
 
Model view view model
Model view view modelModel view view model
Model view view model
 
Xamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive ServicesXamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive Services
 
MVVM Design Pattern NDC2009
MVVM Design Pattern NDC2009MVVM Design Pattern NDC2009
MVVM Design Pattern NDC2009
 
X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)
X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)
X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)
 
Your first application with Xamarin.Forms
Your first application with Xamarin.FormsYour first application with Xamarin.Forms
Your first application with Xamarin.Forms
 
Training: MVVM Pattern
Training: MVVM PatternTraining: MVVM Pattern
Training: MVVM Pattern
 
Getting started with Xamarin Forms
Getting started with Xamarin FormsGetting started with Xamarin Forms
Getting started with Xamarin Forms
 
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,...
 
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...
 
Android L09 - Windows Phone and iOS
Android L09 - Windows Phone and iOSAndroid L09 - Windows Phone and iOS
Android L09 - Windows Phone and iOS
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross Seminar
 

Último

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
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
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Último (20)

%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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
 
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
 
%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
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
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 🔝✔️✔️
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
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
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

MvvmCross

  • 2. Introductions Ross Dargan @rossdargan Ross.dargan@Waterstons.com Work at Waterstons in Durham
  • 3. Introductions Ross Dargan @rossdargan Ross.dargan@Waterstons.com Work at Waterstons in Durham New to keynote transitions (sorry!) C# Developer for 10 years Cross platform mobile for 2 years Dad of 3 Husband to 1 Uses the 1Sec application
  • 4. What we will cover Quick overview of the problem MVVMCross solves A look at alternative UI patterns An intro to MVVM A look at MVVMCross
  • 5. “The difference between a Designer and Developer, when it comes to design skills, is the difference between shooting a bullet and throwing it.” –Scott Hanselman
  • 6. Xamarin iOS C# UI Android C# UI Windows C# UI Shared App Logic Shared App Logic in C#
  • 7. Old School UI Updating protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); DomainService domainService = new DomainService(); Button saveButton = FindViewById<Button>(Resource.Id.MyButton); EditText firstNameText = FindViewById<EditText>(Resource.Id.firstName); EditText lastNameText = FindViewById<EditText>(Resource.Id.lastName); EditText bankPasswordText = FindViewById<EditText>(Resource.Id.bankPassword); DomainEntity domainEntity = DomainService.GetEntity(); firstNameText.Text = domainEntity.FirstName; lastNameText.Text = domainEntity.LastName; bankPasswordText.Text = domainEntity.BankPassword; saveButton.Click += delegate { domainEntity.FirstName = firstNameText.Text; domainEntity.LastName = lastNameText.Text; domainEntity.BankPassword = bankPasswordText.Text; domainService.UpdateEntity(domainEntity); }; }
  • 8. Old School UI Updating protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); DomainService domainService = new DomainService(); DomainEntity domainEntity = domainService.GetEntity(); FirstName.Text = domainEntity.FirstName; LastName.Text = domainEntity.LastName; BanksPassword.Text = domainEntity.BankPassword; SaveButton.Click += delegate(object sender, RoutedEventArgs args) { domainEntity.FirstName = FirstName.Text; domainEntity.LastName = LastName.Text; domainEntity.BankPassword = BanksPassword.Text; domainService.UpdateEntity(domainEntity); }; }
  • 9. Old School UI Updating Very tedious code Huge amounts of boiler plate code duplication Any Complex UI validation code can’t be easily re-used Very hard to test the UI code
  • 10. SOLVING THE UI PROBLEM (VIA PATTERNS)
  • 11. UI Design Patterns MVC more for stateless apps (and iOS :/) MVP gives you testability, still needs a lot of boiler plate code MVVM boiler plate code replaced with bindings
  • 12. A brief history of Mvvm Introduced in 2005 Based on Martin Fowlers presentation model Created by John Gossman (WPF and Silverlight architect)
  • 13. Mvvm Views Tests View Models Models (Domain layer/services)
  • 14. Mvvm Views Tests View Models Models (Domain layer/services) Exposes an event (defined in an interface)
  • 15. Mvvm Views Tests View Models Models (Domain layer/services) Subscribes to the event so it knows when properties are updated
  • 16. Data context Specifies the viewmodel to use for all bindings at the top level Data context is normally inherited (lists are the exception)
  • 17. Bindings Specifies a mapping between a property on a UI control, and a property on a VM Can be one-way, two-way or several other infrequently used options Can have a fallback value Can use a convertor (bool property on a VM, can become a visibility)
  • 18. Commands Provides a way to notify the VM that something has happened on the UI (button press for example) Can accept a parameter
  • 19. DEMO
  • 20. “When you feel the need to write a comment, first try to refactor the code so that any comment becomes superfluous.” –Martin Fowler
  • 22. MvvmCross Primary contributor is @slodge (Stuart) Started in December 2010 Now well into a stable 3rd revision Well supported for an open source project
  • 23. MvvmCross Mvvm is support natively by WPF WinStore WinPhone Silverlight
  • 24. MvvmCross MvvmCross adds Mvvm support to iOS Android Mac
  • 25. DEMO
  • 26. “My favourite things in life don't cost any money. It's really clear that the most precious resource we all have is time.” –Steve Jobs
  • 28. Navigation Designed around screen apps ViewModel based navigation ShowViewModel<ViewModel Type>() Close()
  • 29. Dependency Injection Not a MvvmCross pattern per say, but still very important Allows platform specific code to be injected
  • 30. Plugins A more formal way to allow platform specific code to be injected
  • 31. Messaging Used a lot to communicate across view models
  • 32. DEMO
  • 33. Custom Presenters Allows you to customise how viewmodels are presented Can be used to control the platforms navigation stack (back stack)
  • 34. DEMO
  • 36. “I would rather be without a state than without a voice.” –Edward Snowden
  • 37. Questions? Useful Links https://github.com/MvvmCross/MvvmCross http://mvvmcross.blogspot.co.uk/ Ninja Coder (google it!) Android Player ross.dargan@waterstons.com