SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Cross Platform Mobility
Why and How to Build Cross Platform
Mobile Applications


Chris Auld
8 May 2012
WHY? MOBILE STRATEGY DISCUSSION      HOW? MOBILE EXECUTION DISCUSSION

  Why mobile matters?                 Value in unique user experiences
  Types of mobile apps                Cross platform options
      By user class                       HTML+PhoneGap
      By technology approach              Mono
  Why cross platform matters?             Native x N
      Does cross platform matter?     Approaches to sharing code
      Which platforms?                Mono vs PhoneGap
      When?
Why
Why Mobile Matters
 Does anyone in the room *not* have a smart device?
 Anyone in your family 15yr-65yr *not* have one?


 What did you use 1st today, PC or Smart Device?
 How about last yesterday?


 Have you used an app today?
Morgan Stanley Research from 2009



              Actual inflection
                   point
Types of Mobile Apps
 BY USER CLASS              BY APPLICATION APPROACH


  Enterprise                 Web Apps
    - Field force etc.            - It works
  SME/BYOD                       - It’s optimized
    - Expense claims etc.         - ICBINB
  Consumer                   ‘Real’ Apps
      - Mobile banking            - Wrapped HTML
                                  - Native
Why Cross Platform Matters
 Does it matter?
 Does need for enterprise apps kill BYOD strategy?
 Application Approach Extra Cost   Extra Dev Capex   Org Size for Break Even
 Web App/Wrapped HTML        20%   $50,000           250

 X-Platform Toolkit (Mono)   30%   $75,000           375

 Full Native                 70%   $175,000          875


 Assume: Enterprise app build of say $250k
 Assume: BYOD strategy to save $200/device via co-pay
 Assume: Three platforms ‘supported’ for BYOD
Why Cross Platform Matters
 For Consumer/Public focussed apps it really does
 matter.
   iOS has massive penetration in high value user
    segments
   Android is bring Smart devices to the masses
   Microsoft is playing catch-up, but, is prepared to buy
    share
 Think back to the first slide… how do you use mobile?
Which Platforms?
 Market share?
 Visitor share?
     Your site?
     Some other ‘common’ site?

        You want to target, in priority order, the
      platforms used by people most likely to use
       their mobile devices to access your service
Which Platforms?
 IRD GST Site
  Want to support filing GST return from mobile device
 Business users
 Blackberry is still very popular with business users
 Should we prioritize Blackberry? iOS?
Which Platforms?
 How do app usage patterns differ?


 Both Android and iPhone users D/L approx 10 apps
  /month

 19% of Android users buy at least one app /month
 50% of iPhone users buy at least one app /month

*Admob Mobile Metrics
How
Different platforms are…different
Deserve different treatment at the UI level
Cross Platform Mobile App Dev
HTML + PhoneGap               Mono
• Significant reuse          • C# + .NET in            • Platform specific
       Re-use web assets      VS.NET                    UX
• Doesn’t look native                                  • Can write highly
                                Lambdas, LINQ
     Everything like iOS?
                                Delegates, Events       optimized code
•    AppStore issues                                     •   Games
                             • Rich
•    X-Browser issues
                               communications            •   Graphics intensive
•    No offline on WP7
                             • Access to almost all          apps
•    Animations poor                                   • Write the app 3
                               platform APIs via
•    APIs unavailable                                    times
                               Mono Wrappers
    •   Hardware access      • Go native if needed       • 3 different
    •   Platform specific    • UI still written ‘by-       languages
• It’s Javascript              hand’                     • 3 x code to maintain
     Must use OSS             • Write UI for each       • Objective C is awful
     Less productive            platform +ve&-ve


    100% Shared Code                                            0% Shared Code
Shared Code with Mono
 Shared files co-located; *.csproj for each platform
 Each solution has
     Platform specific project
     Shared project
 Similar MVVM pattern for all platforms
     Shared Models
     Shared Repository
     May be able to share ViewModels
   Can use shared Interface + Platform Specific Implementation
       WindowsPhonePreferencesProvider: IDevicePreferencesProvider
   Can use pre-processor directives
       #if MONOTOUCH
   Can support Windows Mobile easily. No support for Blackberry
Shared Code with PhoneGap
 All files co-located
 A solution has
     General purpose HTML + HTML templates
     Shared CSS + JS + Images
     Platform specific CSS + JS + Images
 Use MVVM or MVC pattern for all platforms
     Backbone.js/Knockout.js
     Share ‘everything’
 Complexity increases as platform count increases
     Each platform may require some specific shims
     Windows Mobile not supported & Older Blackberry OS is very hard to support
     Older phones may get a ‘bad’ experience
Choosing between PhoneGap or Mono
 PHONEGAP                               MONO

    Existing advanced HTML+JS skills     Existing .NET C# dev skills
    Must have MVVM/MVC                   Useful to have MVVM/MVC
     knowledge                             knowledge
    Existing web resources               Complex communications
    A need/desire to support browser      requirements
     based viewing                        Need lots of platform hooks
    Communications layer REST ready      Performance matters
                                          More productivity up-front
              The smaller your organization and project the
                   more developer productivity matters…
 Mono represents a high productivity choice even for pure one platform plays
Guidance By Intergen
Intergen staff have been involved in developing several reference
applications that are freely downloadable in source code form

 Project Silk http://silk.codeplex.com/ (Don Smith AKL)
  Rich HTML+JS Web Apps.
 Project Liike http://liike.github.com (Don Smith AKL)
  Rich HTML+JS Mobile Web Apps.
 StockTrader v6 https://azurestocktrader.cloudapp.net/
  (Chris Auld/James Carpinter WLG + others)
  Massive scale Azure based app with cross platform rich client for
  iOS, Android, WP7, HTML5+JS, Windows Metro (Mono based)
Mobile Matters – Mobile First
Do you *really* need x-platform
Phone + Mono both useful options
Questions
Thank You
Cross Platform Mobile Development

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Development
 
Mobility today & what's next. Application ecosystems.
Mobility today & what's next.Application ecosystems.Mobility today & what's next.Application ecosystems.
Mobility today & what's next. Application ecosystems.
 
Tk2323 lecture 1 introduction to mobile application
Tk2323 lecture 1   introduction to mobile applicationTk2323 lecture 1   introduction to mobile application
Tk2323 lecture 1 introduction to mobile application
 
Top 10 programming languages for mobile app development
Top 10 programming languages for mobile app developmentTop 10 programming languages for mobile app development
Top 10 programming languages for mobile app development
 
Mobile app developers guide
Mobile app developers guideMobile app developers guide
Mobile app developers guide
 
Tristan Nitot @DWS12 - The Web as a universal platform for mobile
Tristan Nitot @DWS12 - The Web as a universal platform for mobileTristan Nitot @DWS12 - The Web as a universal platform for mobile
Tristan Nitot @DWS12 - The Web as a universal platform for mobile
 
Mobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web AppsMobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web Apps
 
Hybrid App Development using PhoneGap/Cordova
Hybrid App Development using PhoneGap/CordovaHybrid App Development using PhoneGap/Cordova
Hybrid App Development using PhoneGap/Cordova
 
01 01 - introduction to mobile application development
01  01 - introduction to mobile application development01  01 - introduction to mobile application development
01 01 - introduction to mobile application development
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
 
IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...
IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...
IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...
 
Mobile application development strategy and execution
Mobile application development   strategy and executionMobile application development   strategy and execution
Mobile application development strategy and execution
 
Trending mobile application Development
Trending mobile application DevelopmentTrending mobile application Development
Trending mobile application Development
 
Cross-platform App Development Company
Cross-platform App Development CompanyCross-platform App Development Company
Cross-platform App Development Company
 
Mobile Application Development Strategy
Mobile Application Development StrategyMobile Application Development Strategy
Mobile Application Development Strategy
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5
 
HTML5 for Mobile - When and Why
HTML5 for Mobile - When and WhyHTML5 for Mobile - When and Why
HTML5 for Mobile - When and Why
 
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
 
Dealing with-the-dilemma-mob-app-dev-approaches
Dealing with-the-dilemma-mob-app-dev-approachesDealing with-the-dilemma-mob-app-dev-approaches
Dealing with-the-dilemma-mob-app-dev-approaches
 
Mobile Developer's Guide To The Galaxy, 15th edition
Mobile Developer's Guide To The Galaxy, 15th editionMobile Developer's Guide To The Galaxy, 15th edition
Mobile Developer's Guide To The Galaxy, 15th edition
 

Semelhante a Cross Platform Mobile Development

Mobile next 2013 petru jucovschi
Mobile next 2013   petru jucovschiMobile next 2013   petru jucovschi
Mobile next 2013 petru jucovschi
mpgco
 
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
Bryce Curtis
 
Telerik AppBuilder 101
Telerik AppBuilder 101Telerik AppBuilder 101
Telerik AppBuilder 101
Sam Basu
 

Semelhante a Cross Platform Mobile Development (20)

Building Cross Platform Mobile Applications
Building Cross Platform Mobile ApplicationsBuilding Cross Platform Mobile Applications
Building Cross Platform Mobile Applications
 
Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010
 
Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7
 
Pick Your Poison – Mobile Web, Native, or Hybrid? - Denver Startup Week - Oct...
Pick Your Poison – Mobile Web, Native, or Hybrid? - Denver Startup Week - Oct...Pick Your Poison – Mobile Web, Native, or Hybrid? - Denver Startup Week - Oct...
Pick Your Poison – Mobile Web, Native, or Hybrid? - Denver Startup Week - Oct...
 
Pick Your Poison – Mobile Web, Native or Hybrid?
Pick Your Poison – Mobile Web, Native or Hybrid?Pick Your Poison – Mobile Web, Native or Hybrid?
Pick Your Poison – Mobile Web, Native or Hybrid?
 
Mobile next 2013 petru jucovschi
Mobile next 2013   petru jucovschiMobile next 2013   petru jucovschi
Mobile next 2013 petru jucovschi
 
Rhodes vs Phonegap
Rhodes vs PhonegapRhodes vs Phonegap
Rhodes vs Phonegap
 
Developers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th editionDevelopers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th edition
 
Comparing multi-platform mobile apps frameworks
Comparing multi-platform mobile apps frameworksComparing multi-platform mobile apps frameworks
Comparing multi-platform mobile apps frameworks
 
Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...
 
The Importance of Cross Platform Technology
The Importance of Cross Platform TechnologyThe Importance of Cross Platform Technology
The Importance of Cross Platform Technology
 
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
 
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
 
Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6
 
Multi-platform Mobile apps with Phonegap
Multi-platform Mobile apps with PhonegapMulti-platform Mobile apps with Phonegap
Multi-platform Mobile apps with Phonegap
 
Hybrid App Development, Redefined
Hybrid App Development, RedefinedHybrid App Development, Redefined
Hybrid App Development, Redefined
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
 
Telerik AppBuilder 101
Telerik AppBuilder 101Telerik AppBuilder 101
Telerik AppBuilder 101
 
Mobile Web Apps
Mobile Web AppsMobile Web Apps
Mobile Web Apps
 
Rapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka PhonegapRapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka Phonegap
 

Mais de Intergen

Intergen Interconnect
Intergen InterconnectIntergen Interconnect
Intergen Interconnect
Intergen
 

Mais de Intergen (20)

Creating intelligent content: How to automate personalised, one-to-one market...
Creating intelligent content: How to automate personalised, one-to-one market...Creating intelligent content: How to automate personalised, one-to-one market...
Creating intelligent content: How to automate personalised, one-to-one market...
 
Taming the feral Teams
Taming the feral TeamsTaming the feral Teams
Taming the feral Teams
 
Customer Insights: It's time to get personal
Customer Insights: It's time to get personalCustomer Insights: It's time to get personal
Customer Insights: It's time to get personal
 
Working Remotely with Microsoft Technologies
Working Remotely with Microsoft TechnologiesWorking Remotely with Microsoft Technologies
Working Remotely with Microsoft Technologies
 
Intergen Convergence 2017 - Digital workplace
Intergen Convergence 2017 - Digital workplaceIntergen Convergence 2017 - Digital workplace
Intergen Convergence 2017 - Digital workplace
 
Intergen Convergence 2017 - Customer engagement (Toyota)
Intergen Convergence 2017 - Customer engagement (Toyota)Intergen Convergence 2017 - Customer engagement (Toyota)
Intergen Convergence 2017 - Customer engagement (Toyota)
 
Intergen Convergence 2017 - Customer engagement (Green Cross Health)
Intergen Convergence 2017 - Customer engagement (Green Cross Health)Intergen Convergence 2017 - Customer engagement (Green Cross Health)
Intergen Convergence 2017 - Customer engagement (Green Cross Health)
 
Intergen Convergence 2017 - Customer engagement (Dynamic Controls)
Intergen Convergence 2017 - Customer engagement (Dynamic Controls)Intergen Convergence 2017 - Customer engagement (Dynamic Controls)
Intergen Convergence 2017 - Customer engagement (Dynamic Controls)
 
Intergen Convergence 2017 - Business transformation across the enterprise (NZ...
Intergen Convergence 2017 - Business transformation across the enterprise (NZ...Intergen Convergence 2017 - Business transformation across the enterprise (NZ...
Intergen Convergence 2017 - Business transformation across the enterprise (NZ...
 
Intergen Convergence 2017 - Bringing your people on the change journey
Intergen Convergence 2017 - Bringing your people on the change journeyIntergen Convergence 2017 - Bringing your people on the change journey
Intergen Convergence 2017 - Bringing your people on the change journey
 
Intergen Convergence 2017 - Why digital transformation
Intergen Convergence 2017 - Why digital transformationIntergen Convergence 2017 - Why digital transformation
Intergen Convergence 2017 - Why digital transformation
 
Intergen Convergence 2017 - Unleash your digital enterprise
Intergen Convergence 2017 - Unleash your digital enterpriseIntergen Convergence 2017 - Unleash your digital enterprise
Intergen Convergence 2017 - Unleash your digital enterprise
 
Intergen Convergence 2017 - The future is here
Intergen Convergence 2017 - The future is hereIntergen Convergence 2017 - The future is here
Intergen Convergence 2017 - The future is here
 
Intergen Convergence 2017 - Keeping safe, staying safe
Intergen Convergence 2017 - Keeping safe, staying safeIntergen Convergence 2017 - Keeping safe, staying safe
Intergen Convergence 2017 - Keeping safe, staying safe
 
Intergen Convergence 2017 - Customer Engagement
Intergen Convergence 2017 - Customer EngagementIntergen Convergence 2017 - Customer Engagement
Intergen Convergence 2017 - Customer Engagement
 
Intergen Convergence 2017 - Data as your most important asset
Intergen Convergence 2017 - Data as your most important assetIntergen Convergence 2017 - Data as your most important asset
Intergen Convergence 2017 - Data as your most important asset
 
Intergen Interconnect
Intergen InterconnectIntergen Interconnect
Intergen Interconnect
 
Your cyber security webinar
Your cyber security webinarYour cyber security webinar
Your cyber security webinar
 
Dynamics Day 2016: Microsoft Dynamics 365 first look
Dynamics Day 2016: Microsoft Dynamics 365 first lookDynamics Day 2016: Microsoft Dynamics 365 first look
Dynamics Day 2016: Microsoft Dynamics 365 first look
 
Dynamics Day 2016: CRM Field Service and Project Service
Dynamics Day 2016: CRM Field Service and Project ServiceDynamics Day 2016: CRM Field Service and Project Service
Dynamics Day 2016: CRM Field Service and Project Service
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

Cross Platform Mobile Development

  • 1. Cross Platform Mobility Why and How to Build Cross Platform Mobile Applications Chris Auld 8 May 2012
  • 2. WHY? MOBILE STRATEGY DISCUSSION HOW? MOBILE EXECUTION DISCUSSION  Why mobile matters?  Value in unique user experiences  Types of mobile apps  Cross platform options  By user class  HTML+PhoneGap  By technology approach  Mono  Why cross platform matters?  Native x N  Does cross platform matter?  Approaches to sharing code  Which platforms?  Mono vs PhoneGap  When?
  • 3. Why
  • 4. Why Mobile Matters  Does anyone in the room *not* have a smart device?  Anyone in your family 15yr-65yr *not* have one?  What did you use 1st today, PC or Smart Device?  How about last yesterday?  Have you used an app today?
  • 5. Morgan Stanley Research from 2009 Actual inflection point
  • 6. Types of Mobile Apps BY USER CLASS BY APPLICATION APPROACH Enterprise Web Apps - Field force etc. - It works SME/BYOD - It’s optimized - Expense claims etc. - ICBINB Consumer ‘Real’ Apps - Mobile banking - Wrapped HTML - Native
  • 7. Why Cross Platform Matters  Does it matter?  Does need for enterprise apps kill BYOD strategy? Application Approach Extra Cost Extra Dev Capex Org Size for Break Even Web App/Wrapped HTML 20% $50,000 250 X-Platform Toolkit (Mono) 30% $75,000 375 Full Native 70% $175,000 875 Assume: Enterprise app build of say $250k Assume: BYOD strategy to save $200/device via co-pay Assume: Three platforms ‘supported’ for BYOD
  • 8. Why Cross Platform Matters  For Consumer/Public focussed apps it really does matter.  iOS has massive penetration in high value user segments  Android is bring Smart devices to the masses  Microsoft is playing catch-up, but, is prepared to buy share  Think back to the first slide… how do you use mobile?
  • 9. Which Platforms?  Market share?  Visitor share?  Your site?  Some other ‘common’ site? You want to target, in priority order, the platforms used by people most likely to use their mobile devices to access your service
  • 10. Which Platforms?  IRD GST Site Want to support filing GST return from mobile device  Business users  Blackberry is still very popular with business users  Should we prioritize Blackberry? iOS?
  • 11. Which Platforms?  How do app usage patterns differ?  Both Android and iPhone users D/L approx 10 apps /month  19% of Android users buy at least one app /month  50% of iPhone users buy at least one app /month *Admob Mobile Metrics
  • 12. How
  • 13. Different platforms are…different Deserve different treatment at the UI level
  • 14.
  • 15. Cross Platform Mobile App Dev HTML + PhoneGap Mono • Significant reuse • C# + .NET in • Platform specific  Re-use web assets VS.NET UX • Doesn’t look native • Can write highly  Lambdas, LINQ  Everything like iOS?  Delegates, Events optimized code • AppStore issues • Games • Rich • X-Browser issues communications • Graphics intensive • No offline on WP7 • Access to almost all apps • Animations poor • Write the app 3 platform APIs via • APIs unavailable times Mono Wrappers • Hardware access • Go native if needed • 3 different • Platform specific • UI still written ‘by- languages • It’s Javascript hand’ • 3 x code to maintain  Must use OSS • Write UI for each • Objective C is awful  Less productive platform +ve&-ve 100% Shared Code 0% Shared Code
  • 16. Shared Code with Mono  Shared files co-located; *.csproj for each platform  Each solution has  Platform specific project  Shared project  Similar MVVM pattern for all platforms  Shared Models  Shared Repository  May be able to share ViewModels  Can use shared Interface + Platform Specific Implementation  WindowsPhonePreferencesProvider: IDevicePreferencesProvider  Can use pre-processor directives  #if MONOTOUCH  Can support Windows Mobile easily. No support for Blackberry
  • 17. Shared Code with PhoneGap  All files co-located  A solution has  General purpose HTML + HTML templates  Shared CSS + JS + Images  Platform specific CSS + JS + Images  Use MVVM or MVC pattern for all platforms  Backbone.js/Knockout.js  Share ‘everything’  Complexity increases as platform count increases  Each platform may require some specific shims  Windows Mobile not supported & Older Blackberry OS is very hard to support  Older phones may get a ‘bad’ experience
  • 18. Choosing between PhoneGap or Mono PHONEGAP MONO  Existing advanced HTML+JS skills  Existing .NET C# dev skills  Must have MVVM/MVC  Useful to have MVVM/MVC knowledge knowledge  Existing web resources  Complex communications  A need/desire to support browser requirements based viewing  Need lots of platform hooks  Communications layer REST ready  Performance matters  More productivity up-front The smaller your organization and project the more developer productivity matters… Mono represents a high productivity choice even for pure one platform plays
  • 19. Guidance By Intergen Intergen staff have been involved in developing several reference applications that are freely downloadable in source code form  Project Silk http://silk.codeplex.com/ (Don Smith AKL) Rich HTML+JS Web Apps.  Project Liike http://liike.github.com (Don Smith AKL) Rich HTML+JS Mobile Web Apps.  StockTrader v6 https://azurestocktrader.cloudapp.net/ (Chris Auld/James Carpinter WLG + others) Massive scale Azure based app with cross platform rich client for iOS, Android, WP7, HTML5+JS, Windows Metro (Mono based)
  • 20. Mobile Matters – Mobile First Do you *really* need x-platform Phone + Mono both useful options