SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
MVVM	pattern	as	a	way	of	creating	
loosely	coupled,	maintainable	and	
testable	Xamarin apps
Sylwester Wieczorkowski
sylwester.wieczorkowski@leaware.com
Xamarin Platform
ü Native	UI,	native	API	access,	
and	native	performance
ü Anything	you	can	do	in	
Objective-C,	Swift,	or	Java	you	
can	do	in	C#	with	Xamarin
ü Ship	cutting-edge	apps	with	
same-day	support	for	new	OS	
releases
Xamarin Test	Cloud
ü Tests	behave	as	users	do–
performing	taps,	pinches,	
swipes,	and	more
ü Integrates	with	CI	for	
continuous	automated	testing,	
testing	apps	on	every	change
ü Ensures	apps	look	and	feel	
excellent	with	full-frame	
screenshots	and	video	playback
Xamarin Insights	+	HockeyApp
ü Get	meaningful	crash	reports	
with	the	most	reliable	crash	
reporting	on	the	market
ü See	how	your	app	is	used	and	
what	your	testers	have	already	
covered
ü Communicate	with	your	users	
and	get	feedback,	support	
requests,	and	bug	reports	from	
within	your	app
Silo	Approach
iOS	App
Objective-C
XCode
Android	App
Java
Android	Studio
Windows	App
C#
Visual	Studio
Traditional	Xamarin Approach
iOS	C#	UI Android	C#	UI Windows	C#	UI
Shared	C# Logic
Traditional	Xamarin Approach
ü Apps	that	require	specialized	interactions
ü Apps	with	highly	polished	design
ü Apps	that	use	many	platform-specific	APIs
ü Apps	where	custom	UI	is	more	important	than	code	sharing
What’s	MVVM?
View ViewModel Model
Presentation	and	Presentation	Logic Business	Logic	and	Data
Data	Binding
Traditional	Xamarin Approach
v Create	your	own	framework
• Shared	Project
• Portable	Class	Library
v Use	an	existing	MVVM	solution
• Bind
• MVVM	Light
• ReactiveUI
• MvvmCross
Project	Styles
DEMOMvvmCross
Belfius Direct	Mobile
Belfius Direct	Mobile
BNP	Paribas	Fortis
BNP	Paribas	Fortis
Xamarin.Forms Approach
Shared	C# Logic
Xamarin.Forms - Shared	C# UI
Xamarin.Forms Approach
ü Data	entry	apps
ü Prototypes	and	proofs-of-concept
ü Apps	that	require	little	platform-specific	functionality
ü Apps	where	code	sharing	is	more	important	than	custom	UI
Xamarin.Forms Approach
v Create	your	own	framework
• Stick	to	Xamarin.Forms mechanisms
(e.g.	DependencyService,	
MessagingCenter)
• Implement	INotifyPropertyChanged
and	ICommand
Project	Styles
v Use	an	existing	MVVM	solution
• Mugen MVVM	Toolkit
• MVVM	Light
• FreshMvvm
• MvvmCross-Forms
• Prism
Prism	for	Xamarin.Forms
ü MVVM	Support
ü Commanding
ü Messaging
ü Navigation
ü Page	Dialog	Service
ü Logging
ü Dependency	Injection
DEMOPrism for Xamarin.Forms

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Cross platform development with c# and xamarin
Cross platform development with c# and xamarinCross platform development with c# and xamarin
Cross platform development with c# and xamarin
 
Cross-platform Mobile Development
Cross-platform Mobile DevelopmentCross-platform Mobile Development
Cross-platform Mobile Development
 
State of the Platforms
State of the PlatformsState of the Platforms
State of the Platforms
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
An introduction to Xamarin
An introduction to XamarinAn introduction to Xamarin
An introduction to Xamarin
 
Xamarin 4 - the future of apps
Xamarin 4  - the future of appsXamarin 4  - the future of apps
Xamarin 4 - the future of apps
 
Introduction to Cross Platform Natitve Mobile Development with C# and Xamarin
Introduction to Cross Platform Natitve Mobile Development with C# and XamarinIntroduction to Cross Platform Natitve Mobile Development with C# and Xamarin
Introduction to Cross Platform Natitve Mobile Development with C# and Xamarin
 
Mobile Banking Apps with Xamarin
Mobile Banking Apps with XamarinMobile Banking Apps with Xamarin
Mobile Banking Apps with Xamarin
 
Introduction to Xamarin 2.0
Introduction to Xamarin 2.0Introduction to Xamarin 2.0
Introduction to Xamarin 2.0
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test CloudXamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
 
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
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Developing Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with XamarinDeveloping Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with Xamarin
 
.Net Standard Libraries and Xamarin
.Net Standard Libraries and Xamarin.Net Standard Libraries and Xamarin
.Net Standard Libraries and Xamarin
 
Developing and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual StudioDeveloping and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual Studio
 
Xamarin Dev Days - Introduction to Xamarin
Xamarin Dev Days - Introduction to XamarinXamarin Dev Days - Introduction to Xamarin
Xamarin Dev Days - Introduction to Xamarin
 
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
Salesforce1 dev week UYSDUG 2014 - the force canvas sparkSalesforce1 dev week UYSDUG 2014 - the force canvas spark
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
 
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondState of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
 
End to-end native iOS, Android and Windows apps wtih Xamarin
End to-end native iOS, Android and Windows apps wtih XamarinEnd to-end native iOS, Android and Windows apps wtih Xamarin
End to-end native iOS, Android and Windows apps wtih Xamarin
 

Destacado

Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPF
Doncho Minkov
 

Destacado (8)

Native Mobile Apps For Everyone
Native Mobile Apps For EveryoneNative Mobile Apps For Everyone
Native Mobile Apps For Everyone
 
Xamarin.Forms (MVP ComCamp 2015)
Xamarin.Forms (MVP ComCamp 2015)Xamarin.Forms (MVP ComCamp 2015)
Xamarin.Forms (MVP ComCamp 2015)
 
Reactive Model-View-ViewModel Architecture
Reactive Model-View-ViewModel ArchitectureReactive Model-View-ViewModel Architecture
Reactive Model-View-ViewModel Architecture
 
Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPF
 
Building Your First Android App with Xamarin
Building Your First Android App with XamarinBuilding Your First Android App with Xamarin
Building Your First Android App with Xamarin
 
Can Super Coders be a reality? - Atreyam Sharma - Codemotion Milan 2016
Can Super Coders be a reality? - Atreyam Sharma - Codemotion Milan 2016Can Super Coders be a reality? - Atreyam Sharma - Codemotion Milan 2016
Can Super Coders be a reality? - Atreyam Sharma - Codemotion Milan 2016
 
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...
 
Cross Platform Development with Xamarin
Cross Platform Development with XamarinCross Platform Development with Xamarin
Cross Platform Development with Xamarin
 

Similar a Mvvm Pattern in Xamarin - MvvmCross and Xamarin.Forms

Mobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with XamarinMobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with Xamarin
Nick Landry
 

Similar a Mvvm Pattern in Xamarin - MvvmCross and Xamarin.Forms (20)

[XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Xamarin History - From 0 to microsoft acquisition ![XamarinDay] Xamarin History - From 0 to microsoft acquisition !
[XamarinDay] Xamarin History - From 0 to microsoft acquisition !
 
GDG DevFest Istanbul - Mobile DevOps - Build, Test and Deploy Your Android Ap...
GDG DevFest Istanbul - Mobile DevOps - Build, Test and Deploy Your Android Ap...GDG DevFest Istanbul - Mobile DevOps - Build, Test and Deploy Your Android Ap...
GDG DevFest Istanbul - Mobile DevOps - Build, Test and Deploy Your Android Ap...
 
C# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaC# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataforma
 
Mobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with XamarinMobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with Xamarin
 
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Introduction to cross platform natitve mobile development with c# and xamarin
Introduction to cross platform natitve mobile development with c# and xamarinIntroduction to cross platform natitve mobile development with c# and xamarin
Introduction to cross platform natitve mobile development with c# and xamarin
 
Xamarin
XamarinXamarin
Xamarin
 
Xamarin cross platform
Xamarin cross platformXamarin cross platform
Xamarin cross platform
 
Launch High Performing Mobile Apps with Appurify
Launch High Performing Mobile Apps with AppurifyLaunch High Performing Mobile Apps with Appurify
Launch High Performing Mobile Apps with Appurify
 
Can We Deliver Mobile Apps Continuously?
Can We Deliver Mobile Apps Continuously?Can We Deliver Mobile Apps Continuously?
Can We Deliver Mobile Apps Continuously?
 
DevOps on Microsoft Platform
DevOps on Microsoft PlatformDevOps on Microsoft Platform
DevOps on Microsoft Platform
 
Os primeiros passos com Xamarin.Forms - TheDevConf
Os primeiros passos com Xamarin.Forms - TheDevConfOs primeiros passos com Xamarin.Forms - TheDevConf
Os primeiros passos com Xamarin.Forms - TheDevConf
 
Powering your Apps with Cloud Services
Powering your Apps with Cloud ServicesPowering your Apps with Cloud Services
Powering your Apps with Cloud Services
 
Visual Studio 2017 Launch Event
Visual Studio 2017 Launch EventVisual Studio 2017 Launch Event
Visual Studio 2017 Launch Event
 
"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
 
Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!
 
Mobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBMMobile Enterprise Success with Xamarin and IBM
Mobile Enterprise Success with Xamarin and IBM
 
Xamarin - Code Once Build Android and iOS Apps
Xamarin - Code Once Build Android and iOS AppsXamarin - Code Once Build Android and iOS Apps
Xamarin - Code Once Build Android and iOS Apps
 

Último

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+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
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Último (20)

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
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
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
 
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 🔝✔️✔️
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
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 🔝✔️✔️
 
%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
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+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 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
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%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
 
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...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%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
 

Mvvm Pattern in Xamarin - MvvmCross and Xamarin.Forms