SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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...
 

Destacado

Ebook ao thuat doan suy nghi khan gia (ao thuat gia lam nha tien tri)
Ebook ao thuat doan suy nghi khan gia (ao thuat gia lam nha tien tri)Ebook ao thuat doan suy nghi khan gia (ao thuat gia lam nha tien tri)
Ebook ao thuat doan suy nghi khan gia (ao thuat gia lam nha tien tri)Duc Li
 
Traducciones practica en ingles
Traducciones practica en inglesTraducciones practica en ingles
Traducciones practica en inglesKarly Fer
 
Lesotho presentation
Lesotho presentationLesotho presentation
Lesotho presentationburrou21
 
Phuongphaptangchieucao
PhuongphaptangchieucaoPhuongphaptangchieucao
PhuongphaptangchieucaoDuc Li
 
Lbf innovation zone
Lbf innovation zoneLbf innovation zone
Lbf innovation zoneHotKeyBooks
 
Document databases
Document databasesDocument databases
Document databasesQframe
 
Whats new windows phone 8 1
Whats new windows phone 8 1Whats new windows phone 8 1
Whats new windows phone 8 1Qframe
 
Tu giaidoangiacmo share-book.com
Tu giaidoangiacmo   share-book.comTu giaidoangiacmo   share-book.com
Tu giaidoangiacmo share-book.comDuc Li
 
Growing in a Difficult Market
Growing in a Difficult Market Growing in a Difficult Market
Growing in a Difficult Market James Donaldson
 
Спектроскопия рассеяния ионов средних энергий
Спектроскопия рассеяния ионов средних энергийСпектроскопия рассеяния ионов средних энергий
Спектроскопия рассеяния ионов средних энергийshemuhin
 
Community day mvvmcross
Community day mvvmcrossCommunity day mvvmcross
Community day mvvmcrossQframe
 
Visug async
Visug asyncVisug async
Visug asyncQframe
 
Mvvm crossevent basics
Mvvm crossevent basicsMvvm crossevent basics
Mvvm crossevent basicsQframe
 
DDD, CQRS, ES lessons learned
DDD, CQRS, ES lessons learnedDDD, CQRS, ES lessons learned
DDD, CQRS, ES lessons learnedQframe
 
Corso di Fotografia
Corso di FotografiaCorso di Fotografia
Corso di FotografiaBeppe Fucc
 

Destacado (19)

Ebook ao thuat doan suy nghi khan gia (ao thuat gia lam nha tien tri)
Ebook ao thuat doan suy nghi khan gia (ao thuat gia lam nha tien tri)Ebook ao thuat doan suy nghi khan gia (ao thuat gia lam nha tien tri)
Ebook ao thuat doan suy nghi khan gia (ao thuat gia lam nha tien tri)
 
Traducciones practica en ingles
Traducciones practica en inglesTraducciones practica en ingles
Traducciones practica en ingles
 
Google earth
Google earthGoogle earth
Google earth
 
Lesotho presentation
Lesotho presentationLesotho presentation
Lesotho presentation
 
Quiebra
QuiebraQuiebra
Quiebra
 
Phuongphaptangchieucao
PhuongphaptangchieucaoPhuongphaptangchieucao
Phuongphaptangchieucao
 
Lbf innovation zone
Lbf innovation zoneLbf innovation zone
Lbf innovation zone
 
Lista solin pintado todo
Lista solin pintado todoLista solin pintado todo
Lista solin pintado todo
 
Document databases
Document databasesDocument databases
Document databases
 
Whats new windows phone 8 1
Whats new windows phone 8 1Whats new windows phone 8 1
Whats new windows phone 8 1
 
Tu giaidoangiacmo share-book.com
Tu giaidoangiacmo   share-book.comTu giaidoangiacmo   share-book.com
Tu giaidoangiacmo share-book.com
 
Growing in a Difficult Market
Growing in a Difficult Market Growing in a Difficult Market
Growing in a Difficult Market
 
Спектроскопия рассеяния ионов средних энергий
Спектроскопия рассеяния ионов средних энергийСпектроскопия рассеяния ионов средних энергий
Спектроскопия рассеяния ионов средних энергий
 
Community day mvvmcross
Community day mvvmcrossCommunity day mvvmcross
Community day mvvmcross
 
Visug async
Visug asyncVisug async
Visug async
 
Mvvm crossevent basics
Mvvm crossevent basicsMvvm crossevent basics
Mvvm crossevent basics
 
DDD, CQRS, ES lessons learned
DDD, CQRS, ES lessons learnedDDD, CQRS, ES lessons learned
DDD, CQRS, ES lessons learned
 
Corso di Fotografia
Corso di FotografiaCorso di Fotografia
Corso di Fotografia
 
Sales forecasting
Sales forecastingSales forecasting
Sales forecasting
 

Similar a Build Cross Platform Mobile Apps with Xamarin and MvvmCross

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
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile DevelopmentIntergen
 
PhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the EnterprisePhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the EnterpriseBryce Curtis
 

Similar a Build Cross Platform Mobile Apps with Xamarin and MvvmCross (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
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 
PhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the EnterprisePhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the Enterprise
 

Build Cross Platform Mobile Apps with Xamarin and MvvmCross

  • 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

Notas del editor

  1. Native look and feel
  2. Native look and feel
  3. Native performance
  4. One language to rule them all!
  5. Shared code across mobile and cloudTons of librariesGenerics, Linq, ...You already have: skills, tools, code
  6. Shared code across mobile and cloudTons of librariesGenerics, Linq, ...You already have: skills, tools, code
  7. Shared code across mobile and cloudTons of librariesGenerics, Linq, ...You already have: skills, tools, code
  8. Shared code across mobile and cloudTons of librariesGenerics, Linq, ...You already have: skills, tools, code
  9. Create new project  portable class libraryShow project properties change selected libs
  10. Miguel de Icaza
  11. Point and click UI designCode Completion for Native APIsAdvanced Debugging SupportVisual Studio Integration
  12. AccountsAddressBookAdSupportAudioToolboxAnimationBluetoothGraphicsCoreImageLocationsMediaCoreMotionSqlLiteDrmGesturesGoogleMapsHardwareUsbNfcOpenglSaxSpeechWallpaperTextServiceWidgetNet.HttpNet.WifiTelephonyCoreVideoGameKit
  13. High PerformanceAOT = Ahead Of Time Compilation
  14. To Show:Visual Studio Integration: build up a UI with point and click.Automatic generation of resource file.
  15. Separation of ConcernsDesignable (Blend)TestableCode ReuseComplexityMore Code
  16. Separation of ConcernsDesignable (Blend)TestableCode ReuseComplexityMore Code
  17. Cross Platform MVVMDatabinding for iOS, Android
  18. Cross Platform Navigation
  19. Cross platform Plugins and servicesDependency Injection
  20. Cross Platform MVVMDatabinding for iOS, Android
  21. Mention Async Targeting Pack!
  22. Activities = class &amp; .axml fileActivities make use of Android Services Intents = the way Android makes things happen (by sending messages). Eg. Launch a new activityAndroid Manifest (= component registration, required permissions, OS Version compatibility)