SlideShare una empresa de Scribd logo
1 de 24
How to Organise your Xamarin
Solution by Adhering to Common
.NET Development Practices
Colombo Xamarin Meetup
http://www.meetup.com/Colombo-Xamarin-Meetup/
About Me
• Freelance Sitecore Consultant
• Sitecore MVP 2016
• Blog - http://sitecorefootsteps.blogspot.com
• YouTube - Sitecore for Dummies
• Initiator & Co-Founder - Sitecore User
Group Sri Lanka
What We Going To
Discuss
• Discuss a Simple Application to
implement best practices
• How and why we implement
Repository Pattern into the
solution
• Dependency Injection
• Xamarin Forms Dependency
Service
• Example application with
Xamarin for Sitecore which uses
Sitecore Mobile API
Simple Application
• Home Screen
• Calculation Screen
• Two Input Fields
• On Calculate button clicked,
Results Display
• Results keep in a Repository
(memory in this case)
• When your return, you can
see the last calculated result
What Can Be Improved ?
• UI and Logic Layer in one
place
• Code maintenance is hard
• Hard to work in same
functionality for two
developers (ex: UI & Backend
Devs)
• Hard to replace UI with new
Technology
Improvement 1
Moving Application Logic into a Service
Layer
• Easy to Maintain
• Easy for Backend and Front-
end Developers to Work in
Same Functionality
• Easy to Replace UI Layer
What Can Be Improved ?
• Data Storage is also Handled
in Service Layer
• Hard to Change Storage
Mechanism
• Service Layer implementation
needs to wait till Full Storage
functionality implemented
Improvement 2
Moving Data Storage Functionality Into
Repository Layer
• Ease to Maintain
• Ease to Replace Storage Media
• Can Start Developing
Functionality without Waiting for
Storage Functionality
Repository Pattern
• Separates Data Access Layer
from Logic Layer
• Retrieve data from data
sources and convert them to
Domain Objects, and pass
them to Service Layer
What Can Be Improved ?
• One Layer is Dependent on Classes of Other Layer
• Tight Coupling
Improvement 3
Dependency Injection
• Used to resolve dependencies
• DI Containers : Autofac, Ninject, StructureMap, Castle Windsor, etc
• In this example, we use Autofac 3.5.2
• Light-Weight
DependencyService
DependencyService
• Allow to Register different implementation of an Interface for each
Target Platform
• Framework uses correct implementation depending on the platform
• Need to place Dependency Attribute before the Class Implementation
Disadvantages of
DependencyService
• It is considered as Anti-Pattern
• Adding a Dependency Attribute on Classes
tightly couples DI framework being used
• Hard to write Unit Tests
Improvement 4
Using DI to Replace DependencyService
Sitecore CMS
• One of the leading Content
Management System in the
world
• Provides a Mobile SDK for
Xamarin
Simple App
Calling
Sitecore
Mobile SDK
• Sitecore Mobile SDK - a Portable
.NET Library
• Provides an interface to work on
Sitecore CMS
• Need to Implement your
application methods as async
calls
What We Did NOT
Discussed
• MVVM Pattern
• Xamarin
INotifyPropertyChange
Interface
• Object-to-Object
Mappers
Thank You!
Source Code : https://github.com/chaturangar/xamarin-footsteps

Más contenido relacionado

La actualidad más candente

(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOSBIOVIA
 
From the Trenches: Effectively Scaling Your Cloud Infrastructure and Optimizi...
From the Trenches: Effectively Scaling Your Cloud Infrastructure and Optimizi...From the Trenches: Effectively Scaling Your Cloud Infrastructure and Optimizi...
From the Trenches: Effectively Scaling Your Cloud Infrastructure and Optimizi...Allan Mangune
 
Dell and KEMP - Partnering for scale
Dell and KEMP - Partnering for scale Dell and KEMP - Partnering for scale
Dell and KEMP - Partnering for scale Kemp
 
SpringPeople Introduction to Mule ESB
SpringPeople Introduction to Mule ESBSpringPeople Introduction to Mule ESB
SpringPeople Introduction to Mule ESBSpringPeople
 
Software design with Domain-driven design
Software design with Domain-driven design Software design with Domain-driven design
Software design with Domain-driven design Allan Mangune
 
(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizations(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizationsBIOVIA
 
EUGM 2013 - Eufrozina Hoffmann (ChemAxon): Marvin extending the scope of usab...
EUGM 2013 - Eufrozina Hoffmann (ChemAxon): Marvin extending the scope of usab...EUGM 2013 - Eufrozina Hoffmann (ChemAxon): Marvin extending the scope of usab...
EUGM 2013 - Eufrozina Hoffmann (ChemAxon): Marvin extending the scope of usab...ChemAxon
 
Advance java session 2
Advance java session 2Advance java session 2
Advance java session 2Smita B Kumar
 
React + Mobile
React + MobileReact + Mobile
React + Mobileantriss
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to ReactAustin Garrod
 
Mesos @ Atlassian - MesosCon14
Mesos @ Atlassian - MesosCon14Mesos @ Atlassian - MesosCon14
Mesos @ Atlassian - MesosCon14Ryan Thomas
 
Architectural peripherals of react by Vadym Zhiltsov
Architectural peripherals of react by Vadym ZhiltsovArchitectural peripherals of react by Vadym Zhiltsov
Architectural peripherals of react by Vadym ZhiltsovLohika_Odessa_TechTalks
 
Micro-services architecture
Micro-services architectureMicro-services architecture
Micro-services architectureFarwa Ansari
 
MuleSoft CloudHub FAQ
MuleSoft CloudHub FAQMuleSoft CloudHub FAQ
MuleSoft CloudHub FAQShanky Gupta
 
Azure Cloud Services
Azure Cloud ServicesAzure Cloud Services
Azure Cloud ServicesGuy Barrette
 
Don’t Get Caught with An Out of Support MS SQL Server…
Don’t Get Caught with An Out of Support MS SQL Server…Don’t Get Caught with An Out of Support MS SQL Server…
Don’t Get Caught with An Out of Support MS SQL Server…Hostway|HOSTING
 

La actualidad más candente (20)

(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS
 
From the Trenches: Effectively Scaling Your Cloud Infrastructure and Optimizi...
From the Trenches: Effectively Scaling Your Cloud Infrastructure and Optimizi...From the Trenches: Effectively Scaling Your Cloud Infrastructure and Optimizi...
From the Trenches: Effectively Scaling Your Cloud Infrastructure and Optimizi...
 
JEE session 1
JEE session 1JEE session 1
JEE session 1
 
Dell and KEMP - Partnering for scale
Dell and KEMP - Partnering for scale Dell and KEMP - Partnering for scale
Dell and KEMP - Partnering for scale
 
SpringPeople Introduction to Mule ESB
SpringPeople Introduction to Mule ESBSpringPeople Introduction to Mule ESB
SpringPeople Introduction to Mule ESB
 
Mule CMIS connector
Mule CMIS connectorMule CMIS connector
Mule CMIS connector
 
Software design with Domain-driven design
Software design with Domain-driven design Software design with Domain-driven design
Software design with Domain-driven design
 
(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizations(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizations
 
EUGM 2013 - Eufrozina Hoffmann (ChemAxon): Marvin extending the scope of usab...
EUGM 2013 - Eufrozina Hoffmann (ChemAxon): Marvin extending the scope of usab...EUGM 2013 - Eufrozina Hoffmann (ChemAxon): Marvin extending the scope of usab...
EUGM 2013 - Eufrozina Hoffmann (ChemAxon): Marvin extending the scope of usab...
 
Advance java session 2
Advance java session 2Advance java session 2
Advance java session 2
 
React + Mobile
React + MobileReact + Mobile
React + Mobile
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
 
Mesos @ Atlassian - MesosCon14
Mesos @ Atlassian - MesosCon14Mesos @ Atlassian - MesosCon14
Mesos @ Atlassian - MesosCon14
 
Spring cloud
Spring cloudSpring cloud
Spring cloud
 
Architectural peripherals of react by Vadym Zhiltsov
Architectural peripherals of react by Vadym ZhiltsovArchitectural peripherals of react by Vadym Zhiltsov
Architectural peripherals of react by Vadym Zhiltsov
 
Micro-services architecture
Micro-services architectureMicro-services architecture
Micro-services architecture
 
Mule any pointstudio
Mule any pointstudioMule any pointstudio
Mule any pointstudio
 
MuleSoft CloudHub FAQ
MuleSoft CloudHub FAQMuleSoft CloudHub FAQ
MuleSoft CloudHub FAQ
 
Azure Cloud Services
Azure Cloud ServicesAzure Cloud Services
Azure Cloud Services
 
Don’t Get Caught with An Out of Support MS SQL Server…
Don’t Get Caught with An Out of Support MS SQL Server…Don’t Get Caught with An Out of Support MS SQL Server…
Don’t Get Caught with An Out of Support MS SQL Server…
 

Similar a How to Structure Your Xamarin Solution by Adhering to Common .NET Practices - Xamarin Meetup Presentation

Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)TIMETOACT GROUP
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Jeremy Likness
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Richard Langlois P. Eng.
 
Intro to Microservices Architecture
Intro to Microservices ArchitectureIntro to Microservices Architecture
Intro to Microservices ArchitecturePeter Nijem
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisVMware Tanzu
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices Weaveworks
 
Scaling Your Applications with Engine Yard Cloud
Scaling Your Applications with Engine Yard CloudScaling Your Applications with Engine Yard Cloud
Scaling Your Applications with Engine Yard CloudEngine Yard
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices ArchitectureParia Heidari
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersAmazon Web Services
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018Taswar Bhatti
 
Cloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsCloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsTaswar Bhatti
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices M A Hossain Tonu
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
Comparing Cloud platforms and tools
Comparing Cloud platforms and toolsComparing Cloud platforms and tools
Comparing Cloud platforms and toolssameerabrol
 
Comparing Cloud Providers, Platforms and Tools
Comparing Cloud Providers, Platforms and ToolsComparing Cloud Providers, Platforms and Tools
Comparing Cloud Providers, Platforms and ToolsInnoTech
 

Similar a How to Structure Your Xamarin Solution by Adhering to Common .NET Practices - Xamarin Meetup Presentation (20)

Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
React js
React jsReact js
React js
 
Intro to Microservices Architecture
Intro to Microservices ArchitectureIntro to Microservices Architecture
Intro to Microservices Architecture
 
Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia Davis
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices
 
Scaling Your Applications with Engine Yard Cloud
Scaling Your Applications with Engine Yard CloudScaling Your Applications with Engine Yard Cloud
Scaling Your Applications with Engine Yard Cloud
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to Containers
 
Newt global meetup microservices
Newt global meetup microservicesNewt global meetup microservices
Newt global meetup microservices
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018
 
Cloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsCloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong Codeaholics
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
spring
springspring
spring
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Comparing Cloud platforms and tools
Comparing Cloud platforms and toolsComparing Cloud platforms and tools
Comparing Cloud platforms and tools
 
Comparing Cloud Providers, Platforms and Tools
Comparing Cloud Providers, Platforms and ToolsComparing Cloud Providers, Platforms and Tools
Comparing Cloud Providers, Platforms and Tools
 

Último

9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7Pooja Nehwal
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Pooja Nehwal
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceanilsa9823
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRnishacall1
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceanilsa9823
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPsychicRuben LoveSpells
 

Último (7)

9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
 

How to Structure Your Xamarin Solution by Adhering to Common .NET Practices - Xamarin Meetup Presentation

  • 1. How to Organise your Xamarin Solution by Adhering to Common .NET Development Practices Colombo Xamarin Meetup http://www.meetup.com/Colombo-Xamarin-Meetup/
  • 2. About Me • Freelance Sitecore Consultant • Sitecore MVP 2016 • Blog - http://sitecorefootsteps.blogspot.com • YouTube - Sitecore for Dummies • Initiator & Co-Founder - Sitecore User Group Sri Lanka
  • 3. What We Going To Discuss • Discuss a Simple Application to implement best practices • How and why we implement Repository Pattern into the solution • Dependency Injection • Xamarin Forms Dependency Service • Example application with Xamarin for Sitecore which uses Sitecore Mobile API
  • 4. Simple Application • Home Screen • Calculation Screen • Two Input Fields • On Calculate button clicked, Results Display • Results keep in a Repository (memory in this case) • When your return, you can see the last calculated result
  • 5. What Can Be Improved ? • UI and Logic Layer in one place • Code maintenance is hard • Hard to work in same functionality for two developers (ex: UI & Backend Devs) • Hard to replace UI with new Technology
  • 6. Improvement 1 Moving Application Logic into a Service Layer • Easy to Maintain • Easy for Backend and Front- end Developers to Work in Same Functionality • Easy to Replace UI Layer
  • 7. What Can Be Improved ? • Data Storage is also Handled in Service Layer • Hard to Change Storage Mechanism • Service Layer implementation needs to wait till Full Storage functionality implemented
  • 8. Improvement 2 Moving Data Storage Functionality Into Repository Layer • Ease to Maintain • Ease to Replace Storage Media • Can Start Developing Functionality without Waiting for Storage Functionality
  • 9.
  • 10. Repository Pattern • Separates Data Access Layer from Logic Layer • Retrieve data from data sources and convert them to Domain Objects, and pass them to Service Layer
  • 11. What Can Be Improved ? • One Layer is Dependent on Classes of Other Layer • Tight Coupling
  • 12. Improvement 3 Dependency Injection • Used to resolve dependencies • DI Containers : Autofac, Ninject, StructureMap, Castle Windsor, etc • In this example, we use Autofac 3.5.2 • Light-Weight
  • 13.
  • 15. DependencyService • Allow to Register different implementation of an Interface for each Target Platform • Framework uses correct implementation depending on the platform • Need to place Dependency Attribute before the Class Implementation
  • 16.
  • 17. Disadvantages of DependencyService • It is considered as Anti-Pattern • Adding a Dependency Attribute on Classes tightly couples DI framework being used • Hard to write Unit Tests
  • 18. Improvement 4 Using DI to Replace DependencyService
  • 19.
  • 20. Sitecore CMS • One of the leading Content Management System in the world • Provides a Mobile SDK for Xamarin
  • 21. Simple App Calling Sitecore Mobile SDK • Sitecore Mobile SDK - a Portable .NET Library • Provides an interface to work on Sitecore CMS • Need to Implement your application methods as async calls
  • 22. What We Did NOT Discussed • MVVM Pattern • Xamarin INotifyPropertyChange Interface • Object-to-Object Mappers
  • 23.
  • 24. Thank You! Source Code : https://github.com/chaturangar/xamarin-footsteps