SlideShare a Scribd company logo
1 of 46
Building Cross Platform Mobile
Solutions
@gittetitter
proq.blogspot.com
My perfect mobile world ...
My perfect mobile world ...
My perfect mobile world ...
My perfect mobile world ...
                                               Data Access

                                             Business Logic

                                            Service Interface
  Service         Local         Service         Local         Service         Local         Service         Local
Consumption   Data/Services   Consumption   Data/Services   Consumption   Data/Services   Consumption   Data/Services



Business Logic                Business Logic                Business Logic                Business Logic

     UI Logic                      UI Logic                      UI Logic                      UI Logic

         WP                            iOS                         Droid                         Win8
My perfect mobile world ...
                         Data Access

                     Business Logic

                    Service Interface

   Service Consumption                 Local Data/Services

                     Business Logic

                          UI Logic

    WP            iOS                Droid            Win8
My perfect mobile world ...
                         Data Access

                     Business Logic

                    Service Interface

   Service Consumption                 Local Data/Services

                     Business Logic

                          UI Logic

    WP            iOS                Droid            Win8
My perfect mobile world ...
                         Data Access

                     Business Logic

                    Service Interface

   Service Consumption                 Local Data/Services

                     Business Logic

                          UI Logic

    WP            iOS                Droid            Win8
My perfect mobile world ...
                         Data Access

                     Business Logic

                    Service Interface

   Service Consumption                 Local Data/Services

                     Business Logic

                          UI Logic

    WP            iOS                Droid            Win8
Can we do this?



                  Portable
                    Class     Xamarin   MvvmCross
                  Libraries
Intro
How did we do this?



         Portable
           Class      Xamarin   MvvmCross
         Libraries
Portable Class Library

-   Share code across platforms
Portable Class Library
  Windows                          Windows
  Store App                       Phone App

     Startup             PCL         Startup



     Views                            Views

                     ViewModels
     iOS                            Android
     App                             App

                         Models
     Startup                         Startup



      Views                           Views
How did we do this?



         Portable
           Class      Xamarin
         Libraries
Xamarin for Android/iOS
Xamarin for Android/iOS
                           Data Access

                       Business Logic

                      Service Interface

     Service Consumption                 Local Data/Services

                       Business Logic
                                                               Xamarin
                            UI Logic

     WP             iOS                Droid            Win8
Xamarin for Android/iOS
                                  Code
                               Completion
                                for Native
                                   APIs




                        Visual               Point and
                        Studio                click UI
                     Integration              design




                               Advanced
                               Debugging
                                Support
Xamarin for Android/iOS
Xamarin for Android/iOS
Getting Started

-   Windows PC or Mac

-   Google Play account /
      iOS account

-   Xamarin for Android /
      Xamarin for iOS:
      free – 999$
How did we do this?




                      Xamarin   MvvmCross
M-V-VM

         Data Binding
           (binder)
M-V-VM
                 Designable    Separation
                  (Blend)          of
                                Concerns




                                              More
         Code reuse                        structured
                                              code




                 Databinding    Testable
MvvmCross
MvvmCross

            Data Binding
              (binder)
MvvmCross


  Android
  WP/Win8   HomeViewModel   SessionsViewModel   SessionDetailViewModel




    iOS
MvvmCross

                     Device
    Plugin                            Your app
                     Specific

                    MvxWinRTColor      Add Plugin



  IMvxNativeColor   MvxAndroidColor    Add Plugin



                     MvxWPColor        Add Plugin
MvvmCross
MvvmCross


            -   ViewModels
            -   DI
            -   Services/Plugins
            -   Navigation
            -   Unit test
MvvmCross

            Data Binding
              (binder)
A WP app with MvvmCross

-   Data Binding as you know it
-   ViewModels are auto-wired using MvxPhonePage<TViewModel>
-   Configure platform specific services

      ... and that’s it
An Android app with MvvmCross

- UI is build up using .axml
- Data Binding using json expressions
- Navigation mapped to Intents
- ViewModels are auto-wired using
     MvxBindingActivityView<TViewModel>
- ValueConverters can be used
Lessons Learned
Why this became my precious 

-   Native UI
-   Native Performance
-   One language to rule them all
-   95% shared application logic
-   100% shared test harness
-   Overall dev time ≈ dev time per app
-   Changes can be done in 1 place (most of the time)
Why this became my precious 



         Portable
           Class     Xamarin   MvvmCross
         Libraries
Related Sessions

-       Coding and designing for Windows 8 and Windows Phone 8, best
        practices and reusing code
    -     Laurent Bugnion
-       Applied MVVM in Windows 8 apps: not your typical MVVM session!
    -     Gill Cleeren
-       Live coding: The Windows Store Apps showdown - C# vs JavaScript
    -     Iris Classon
Other Resources

-       MvvmCross
    -     https://github.com/slodge/MvvmCross
    -     http://slodge.blogspot.com
-       Xamarin
    -     http://xamarin.com/
    -     monogame.net
-       The bits
    -     https://github.com/vermegi/TechdaysBeDemo
Thanks!




@gittetitter
proq.blogspot.com

More Related Content

What's hot

VoiceGate corporate profile
VoiceGate corporate profileVoiceGate corporate profile
VoiceGate corporate profilevoicegateindia
 
IBM Worklight - Introduction
IBM Worklight - IntroductionIBM Worklight - Introduction
IBM Worklight - IntroductionMaarga Systems
 
Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic Software
 
Make Your API Catalog Essential with z/OS Connect EE
Make Your API Catalog Essential with z/OS Connect EEMake Your API Catalog Essential with z/OS Connect EE
Make Your API Catalog Essential with z/OS Connect EETeodoro Cipresso
 
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9Nuno Godinho
 
Kony-Cognizant Webinar: Finding the Silver Bullet in Retail Mobility
Kony-Cognizant Webinar: Finding the Silver Bullet in Retail MobilityKony-Cognizant Webinar: Finding the Silver Bullet in Retail Mobility
Kony-Cognizant Webinar: Finding the Silver Bullet in Retail MobilityKony, Inc.
 
Whitepaper KidoZen overview
Whitepaper KidoZen  overviewWhitepaper KidoZen  overview
Whitepaper KidoZen overviewkidozen
 
Digital hour presentation BB10
Digital hour presentation BB10Digital hour presentation BB10
Digital hour presentation BB10Industree spa
 
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...DevOps for Enterprise Systems
 
Websphere Revolution
Websphere RevolutionWebsphere Revolution
Websphere Revolutioneinfallsreich
 
Internet de las Cosas y Netduino
Internet de las Cosas y NetduinoInternet de las Cosas y Netduino
Internet de las Cosas y NetduinoSorey García
 
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptxPDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptxLuis Beltran
 
Designing User Experience for multiple screen and device formats
Designing User Experience for multiple screen and device formatsDesigning User Experience for multiple screen and device formats
Designing User Experience for multiple screen and device formatsDirk Bartels
 
Building & Managing The Lifecycle of Mobile Apps For The Enterprise
Building & Managing The Lifecycle of Mobile Apps For The EnterpriseBuilding & Managing The Lifecycle of Mobile Apps For The Enterprise
Building & Managing The Lifecycle of Mobile Apps For The EnterpriseApperian
 
An Overview of Blackberry 10 & Blackberry App Development
An Overview of Blackberry 10 & Blackberry App DevelopmentAn Overview of Blackberry 10 & Blackberry App Development
An Overview of Blackberry 10 & Blackberry App DevelopmentFolio3 Software
 
Multi channel advantage
Multi channel advantageMulti channel advantage
Multi channel advantageDipesh Mukerji
 
IBM Worklight - Technical Overview
IBM Worklight - Technical OverviewIBM Worklight - Technical Overview
IBM Worklight - Technical OverviewIIC_Barcelona
 
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...Luis Beltran
 

What's hot (19)

VoiceGate corporate profile
VoiceGate corporate profileVoiceGate corporate profile
VoiceGate corporate profile
 
IBM Worklight - Introduction
IBM Worklight - IntroductionIBM Worklight - Introduction
IBM Worklight - Introduction
 
Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013
 
Make Your API Catalog Essential with z/OS Connect EE
Make Your API Catalog Essential with z/OS Connect EEMake Your API Catalog Essential with z/OS Connect EE
Make Your API Catalog Essential with z/OS Connect EE
 
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
 
Kony-Cognizant Webinar: Finding the Silver Bullet in Retail Mobility
Kony-Cognizant Webinar: Finding the Silver Bullet in Retail MobilityKony-Cognizant Webinar: Finding the Silver Bullet in Retail Mobility
Kony-Cognizant Webinar: Finding the Silver Bullet in Retail Mobility
 
Whitepaper KidoZen overview
Whitepaper KidoZen  overviewWhitepaper KidoZen  overview
Whitepaper KidoZen overview
 
Digital hour presentation BB10
Digital hour presentation BB10Digital hour presentation BB10
Digital hour presentation BB10
 
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...
 
Websphere Revolution
Websphere RevolutionWebsphere Revolution
Websphere Revolution
 
Internet de las Cosas y Netduino
Internet de las Cosas y NetduinoInternet de las Cosas y Netduino
Internet de las Cosas y Netduino
 
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptxPDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
 
Designing User Experience for multiple screen and device formats
Designing User Experience for multiple screen and device formatsDesigning User Experience for multiple screen and device formats
Designing User Experience for multiple screen and device formats
 
Building & Managing The Lifecycle of Mobile Apps For The Enterprise
Building & Managing The Lifecycle of Mobile Apps For The EnterpriseBuilding & Managing The Lifecycle of Mobile Apps For The Enterprise
Building & Managing The Lifecycle of Mobile Apps For The Enterprise
 
Mxim Framework
Mxim FrameworkMxim Framework
Mxim Framework
 
An Overview of Blackberry 10 & Blackberry App Development
An Overview of Blackberry 10 & Blackberry App DevelopmentAn Overview of Blackberry 10 & Blackberry App Development
An Overview of Blackberry 10 & Blackberry App Development
 
Multi channel advantage
Multi channel advantageMulti channel advantage
Multi channel advantage
 
IBM Worklight - Technical Overview
IBM Worklight - Technical OverviewIBM Worklight - Technical Overview
IBM Worklight - Technical Overview
 
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
 

Similar to Building Cross Platform Mobile Solutions

Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin PlatformLiddle Fang
 
Cross platform mobile development (speaker Vitaly Ilchenko, Binary Studio)
Cross platform mobile development (speaker Vitaly Ilchenko, Binary Studio)Cross platform mobile development (speaker Vitaly Ilchenko, Binary Studio)
Cross platform mobile development (speaker Vitaly Ilchenko, Binary Studio)Binary Studio
 
Binary Studio Academy 2016. Cross-Platform Mobile Development
Binary Studio Academy 2016. Cross-Platform Mobile DevelopmentBinary Studio Academy 2016. Cross-Platform Mobile Development
Binary Studio Academy 2016. Cross-Platform Mobile DevelopmentBinary Studio
 
Designing mobile applications with xamarin
Designing mobile applications with xamarinDesigning mobile applications with xamarin
Designing mobile applications with xamarinJerel Hass
 
Xamarin among Others - Vietnam Mobile Day 2017
Xamarin among Others - Vietnam Mobile Day 2017Xamarin among Others - Vietnam Mobile Day 2017
Xamarin among Others - Vietnam Mobile Day 2017Tuyến Vũ Đức
 
MonoTouch 5.2 Introduction
MonoTouch 5.2 IntroductionMonoTouch 5.2 Introduction
MonoTouch 5.2 IntroductionXamarin
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptSencha
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsJames Pearce
 
Magic xpa total mobility experience
Magic xpa   total mobility experienceMagic xpa   total mobility experience
Magic xpa total mobility experienceRodney Repullo
 
Shape 2013 developing multi targeting windows store and windows phone apps
Shape 2013   developing multi targeting windows store and windows phone appsShape 2013   developing multi targeting windows store and windows phone apps
Shape 2013 developing multi targeting windows store and windows phone appsJose Luis Latorre Millas
 
Powering your Apps with Cloud Services
Powering your Apps with Cloud ServicesPowering your Apps with Cloud Services
Powering your Apps with Cloud ServicesXpand IT
 
Dukungan IBM Untuk Pengembang Lokal
Dukungan IBM Untuk Pengembang LokalDukungan IBM Untuk Pengembang Lokal
Dukungan IBM Untuk Pengembang LokalYoza Aprilio
 
Developing i phone, android and windows phone 7 applications with c#
Developing i phone, android and windows phone 7 applications with c#Developing i phone, android and windows phone 7 applications with c#
Developing i phone, android and windows phone 7 applications with c#Marcel de Vries
 
Cross Platform Development with Xamarin
Cross Platform Development with XamarinCross Platform Development with Xamarin
Cross Platform Development with Xamarinbryan costanich
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentNick Landry
 
Mvvm crossevent basics
Mvvm crossevent basicsMvvm crossevent basics
Mvvm crossevent basicsQframe
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile DevelopmentIntergen
 

Similar to Building Cross Platform Mobile Solutions (20)

Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Cross platform mobile development (speaker Vitaly Ilchenko, Binary Studio)
Cross platform mobile development (speaker Vitaly Ilchenko, Binary Studio)Cross platform mobile development (speaker Vitaly Ilchenko, Binary Studio)
Cross platform mobile development (speaker Vitaly Ilchenko, Binary Studio)
 
Binary Studio Academy 2016. Cross-Platform Mobile Development
Binary Studio Academy 2016. Cross-Platform Mobile DevelopmentBinary Studio Academy 2016. Cross-Platform Mobile Development
Binary Studio Academy 2016. Cross-Platform Mobile Development
 
Designing mobile applications with xamarin
Designing mobile applications with xamarinDesigning mobile applications with xamarin
Designing mobile applications with xamarin
 
Xamarin among Others - Vietnam Mobile Day 2017
Xamarin among Others - Vietnam Mobile Day 2017Xamarin among Others - Vietnam Mobile Day 2017
Xamarin among Others - Vietnam Mobile Day 2017
 
Magic xpa total mobility experience
Magic xpa  total mobility experienceMagic xpa  total mobility experience
Magic xpa total mobility experience
 
MonoTouch 5.2 Introduction
MonoTouch 5.2 IntroductionMonoTouch 5.2 Introduction
MonoTouch 5.2 Introduction
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applications
 
Magic xpa total mobility experience
Magic xpa   total mobility experienceMagic xpa   total mobility experience
Magic xpa total mobility experience
 
Magic xpa total mobility experience
Magic xpa   total mobility experienceMagic xpa   total mobility experience
Magic xpa total mobility experience
 
Shape 2013 developing multi targeting windows store and windows phone apps
Shape 2013   developing multi targeting windows store and windows phone appsShape 2013   developing multi targeting windows store and windows phone apps
Shape 2013 developing multi targeting windows store and windows phone apps
 
Powering your Apps with Cloud Services
Powering your Apps with Cloud ServicesPowering your Apps with Cloud Services
Powering your Apps with Cloud Services
 
Dukungan IBM Untuk Pengembang Lokal
Dukungan IBM Untuk Pengembang LokalDukungan IBM Untuk Pengembang Lokal
Dukungan IBM Untuk Pengembang Lokal
 
Developing i phone, android and windows phone 7 applications with c#
Developing i phone, android and windows phone 7 applications with c#Developing i phone, android and windows phone 7 applications with c#
Developing i phone, android and windows phone 7 applications with c#
 
Cross Platform Development with Xamarin
Cross Platform Development with XamarinCross Platform Development with Xamarin
Cross Platform Development with Xamarin
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
 
Mind the gap
Mind the gapMind the gap
Mind the gap
 
Mvvm crossevent basics
Mvvm crossevent basicsMvvm crossevent basics
Mvvm crossevent basics
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 

More from Microsoft Developer Network (MSDN) - Belgium and Luxembourg

More from Microsoft Developer Network (MSDN) - Belgium and Luxembourg (20)

Code in the Cloud - Ghent - 20 February 2015
Code in the Cloud - Ghent - 20 February 2015Code in the Cloud - Ghent - 20 February 2015
Code in the Cloud - Ghent - 20 February 2015
 
Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015
 
Executive Summit for ISV & Application builders - Internet of Things
Executive Summit for ISV & Application builders - Internet of ThingsExecutive Summit for ISV & Application builders - Internet of Things
Executive Summit for ISV & Application builders - Internet of Things
 
Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014
 
Adam azure presentation
Adam   azure presentationAdam   azure presentation
Adam azure presentation
 
release management
release managementrelease management
release management
 
cloud value for application development
cloud value for application developmentcloud value for application development
cloud value for application development
 
Modern lifecycle management practices
Modern lifecycle management practicesModern lifecycle management practices
Modern lifecycle management practices
 
Belgian visual studio launch 2013
Belgian visual studio launch 2013Belgian visual studio launch 2013
Belgian visual studio launch 2013
 
Windows Azure Virtually Speaking
Windows Azure Virtually SpeakingWindows Azure Virtually Speaking
Windows Azure Virtually Speaking
 
Inside the Microsoft TechDays Belgium Apps
Inside the Microsoft TechDays Belgium AppsInside the Microsoft TechDays Belgium Apps
Inside the Microsoft TechDays Belgium Apps
 
TechDays 2013 Developer Keynote
TechDays 2013 Developer KeynoteTechDays 2013 Developer Keynote
TechDays 2013 Developer Keynote
 
Windows Phone 8 Security Deep Dive
Windows Phone 8 Security Deep DiveWindows Phone 8 Security Deep Dive
Windows Phone 8 Security Deep Dive
 
Deep Dive into Entity Framework 6.0
Deep Dive into Entity Framework 6.0Deep Dive into Entity Framework 6.0
Deep Dive into Entity Framework 6.0
 
Applied MVVM in Windows 8 apps: not your typical MVVM session!
Applied MVVM in Windows 8 apps: not your typical MVVM session!Applied MVVM in Windows 8 apps: not your typical MVVM session!
Applied MVVM in Windows 8 apps: not your typical MVVM session!
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Deep Dive and Best Practices for Windows Azure Storage Services
Deep Dive and Best Practices for Windows Azure Storage ServicesDeep Dive and Best Practices for Windows Azure Storage Services
Deep Dive and Best Practices for Windows Azure Storage Services
 
Building data centric applications for web, desktop and mobile with Entity Fr...
Building data centric applications for web, desktop and mobile with Entity Fr...Building data centric applications for web, desktop and mobile with Entity Fr...
Building data centric applications for web, desktop and mobile with Entity Fr...
 
Bart De Smet Unplugged
Bart De Smet UnpluggedBart De Smet Unplugged
Bart De Smet Unplugged
 

Building Cross Platform Mobile Solutions

  • 1. Building Cross Platform Mobile Solutions
  • 3.
  • 4. My perfect mobile world ...
  • 5. My perfect mobile world ...
  • 6. My perfect mobile world ...
  • 7. My perfect mobile world ... Data Access Business Logic Service Interface Service Local Service Local Service Local Service Local Consumption Data/Services Consumption Data/Services Consumption Data/Services Consumption Data/Services Business Logic Business Logic Business Logic Business Logic UI Logic UI Logic UI Logic UI Logic WP iOS Droid Win8
  • 8. My perfect mobile world ... Data Access Business Logic Service Interface Service Consumption Local Data/Services Business Logic UI Logic WP iOS Droid Win8
  • 9. My perfect mobile world ... Data Access Business Logic Service Interface Service Consumption Local Data/Services Business Logic UI Logic WP iOS Droid Win8
  • 10. My perfect mobile world ... Data Access Business Logic Service Interface Service Consumption Local Data/Services Business Logic UI Logic WP iOS Droid Win8
  • 11. My perfect mobile world ... Data Access Business Logic Service Interface Service Consumption Local Data/Services Business Logic UI Logic WP iOS Droid Win8
  • 12. Can we do this? Portable Class Xamarin MvvmCross Libraries
  • 13. Intro
  • 14. How did we do this? Portable Class Xamarin MvvmCross Libraries
  • 15. Portable Class Library - Share code across platforms
  • 16. Portable Class Library Windows Windows Store App Phone App Startup PCL Startup Views Views ViewModels iOS Android App App Models Startup Startup Views Views
  • 17.
  • 18. How did we do this? Portable Class Xamarin Libraries
  • 20. Xamarin for Android/iOS Data Access Business Logic Service Interface Service Consumption Local Data/Services Business Logic Xamarin UI Logic WP iOS Droid Win8
  • 21. Xamarin for Android/iOS Code Completion for Native APIs Visual Point and Studio click UI Integration design Advanced Debugging Support
  • 24.
  • 25. Getting Started - Windows PC or Mac - Google Play account / iOS account - Xamarin for Android / Xamarin for iOS: free – 999$
  • 26. How did we do this? Xamarin MvvmCross
  • 27. M-V-VM Data Binding (binder)
  • 28. M-V-VM Designable Separation (Blend) of Concerns More Code reuse structured code Databinding Testable
  • 30. MvvmCross Data Binding (binder)
  • 31. MvvmCross Android WP/Win8 HomeViewModel SessionsViewModel SessionDetailViewModel iOS
  • 32. MvvmCross Device Plugin Your app Specific MvxWinRTColor Add Plugin IMvxNativeColor MvxAndroidColor Add Plugin MvxWPColor Add Plugin
  • 34.
  • 35. MvvmCross - ViewModels - DI - Services/Plugins - Navigation - Unit test
  • 36. MvvmCross Data Binding (binder)
  • 37.
  • 38. A WP app with MvvmCross - Data Binding as you know it - ViewModels are auto-wired using MvxPhonePage<TViewModel> - Configure platform specific services ... and that’s it
  • 39.
  • 40. An Android app with MvvmCross - UI is build up using .axml - Data Binding using json expressions - Navigation mapped to Intents - ViewModels are auto-wired using MvxBindingActivityView<TViewModel> - ValueConverters can be used
  • 42. Why this became my precious  - Native UI - Native Performance - One language to rule them all - 95% shared application logic - 100% shared test harness - Overall dev time ≈ dev time per app - Changes can be done in 1 place (most of the time)
  • 43. Why this became my precious  Portable Class Xamarin MvvmCross Libraries
  • 44. Related Sessions - Coding and designing for Windows 8 and Windows Phone 8, best practices and reusing code - Laurent Bugnion - Applied MVVM in Windows 8 apps: not your typical MVVM session! - Gill Cleeren - Live coding: The Windows Store Apps showdown - C# vs JavaScript - Iris Classon
  • 45. Other Resources - MvvmCross - https://github.com/slodge/MvvmCross - http://slodge.blogspot.com - Xamarin - http://xamarin.com/ - monogame.net - The bits - https://github.com/vermegi/TechdaysBeDemo