SlideShare une entreprise Scribd logo
1  sur  30
Four Platforms, One Codebase
Cross Platform Mobile Apps with Xamarin
rob gibbens

interactive business systems
what does an app cost?
mobile development approaches
silos
•
•
•
•

build app multiple times
multiple teams
multiple code bases
different toolsets
write once, run anywhere
•
•
•

lowest common denominator
browser fragmentation
developing and designing for one platform
xamarin‘s unique approach
•
•
•
•
•

native user interface
native performance
shared code across platforms
c# and .net framework
full api coverage
why C#?
C# is awesome
•
•
•
•
•

async/await
linq
xml + xdocument
event handling, delgates, lambdas
generics
+ (NSDate *) stripTime:(NSDate *) date {
NSCalendar *gregorian =
[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components =
[gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit |
NSDayCalendarUnit)
fromDate:date];
date = [gregorian dateFromComponents:components];
[gregorian release];
}

return date;
var newDate = date.Date;
NSString *string = @“ spaces in front and at the end “;
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
var trimmedString = “ spaces in front and at the end
“.Trim();
mvvm
mvvmCross
json serializer
visibility

message bus

download cache

file system
phone call

gps
photos

sqlite

web browser

email

accelerometer

network
localization
let’s code!
http://www.ibs.com
Contact
Rob Gibbens
github: http://github.com/RobGibbens/MvvmDemo
twitter: @RobGibbens
email : RobGibbens@arteksoftware.com

Contenu connexe

Tendances

New Fission Capabilities Accelerate Deployment of Serverless Computing
New Fission Capabilities Accelerate Deployment of Serverless ComputingNew Fission Capabilities Accelerate Deployment of Serverless Computing
New Fission Capabilities Accelerate Deployment of Serverless ComputingPlatform9
 
TechTalk Webinar Series - Getting Started with Apache OpenWhisk
TechTalk Webinar Series - Getting Started with Apache OpenWhiskTechTalk Webinar Series - Getting Started with Apache OpenWhisk
TechTalk Webinar Series - Getting Started with Apache OpenWhiskJanakiram MSV
 
Sandstone HPC: A Domain General Gateway for New Users
Sandstone HPC: A Domain General Gateway for New UsersSandstone HPC: A Domain General Gateway for New Users
Sandstone HPC: A Domain General Gateway for New UsersZebula Sampedro
 
Cloud Developer Certification
Cloud Developer CertificationCloud Developer Certification
Cloud Developer CertificationMahad Khan
 
Go lambda-presentation
Go lambda-presentationGo lambda-presentation
Go lambda-presentationSteven White
 
TileServer-GL: Hosting vector tile maps on your own server (FOSS4G 2016 Bonn)
TileServer-GL: Hosting vector tile maps on your own server (FOSS4G 2016 Bonn)TileServer-GL: Hosting vector tile maps on your own server (FOSS4G 2016 Bonn)
TileServer-GL: Hosting vector tile maps on your own server (FOSS4G 2016 Bonn)Petr Pridal
 
TechTalk - Building Serverless Applications with IBM Bluemix
TechTalk - Building Serverless Applications with IBM BluemixTechTalk - Building Serverless Applications with IBM Bluemix
TechTalk - Building Serverless Applications with IBM BluemixJanakiram MSV
 
CI/CD using CodeCommit CodeBuild CodeDeploy CodePipeline
CI/CD using CodeCommit CodeBuild  CodeDeploy  CodePipelineCI/CD using CodeCommit CodeBuild  CodeDeploy  CodePipeline
CI/CD using CodeCommit CodeBuild CodeDeploy CodePipelinegenesesoftware
 
DB Infrastructure Challenge - Team Geodan
DB Infrastructure Challenge - Team GeodanDB Infrastructure Challenge - Team Geodan
DB Infrastructure Challenge - Team GeodanDBHackathon
 

Tendances (9)

New Fission Capabilities Accelerate Deployment of Serverless Computing
New Fission Capabilities Accelerate Deployment of Serverless ComputingNew Fission Capabilities Accelerate Deployment of Serverless Computing
New Fission Capabilities Accelerate Deployment of Serverless Computing
 
TechTalk Webinar Series - Getting Started with Apache OpenWhisk
TechTalk Webinar Series - Getting Started with Apache OpenWhiskTechTalk Webinar Series - Getting Started with Apache OpenWhisk
TechTalk Webinar Series - Getting Started with Apache OpenWhisk
 
Sandstone HPC: A Domain General Gateway for New Users
Sandstone HPC: A Domain General Gateway for New UsersSandstone HPC: A Domain General Gateway for New Users
Sandstone HPC: A Domain General Gateway for New Users
 
Cloud Developer Certification
Cloud Developer CertificationCloud Developer Certification
Cloud Developer Certification
 
Go lambda-presentation
Go lambda-presentationGo lambda-presentation
Go lambda-presentation
 
TileServer-GL: Hosting vector tile maps on your own server (FOSS4G 2016 Bonn)
TileServer-GL: Hosting vector tile maps on your own server (FOSS4G 2016 Bonn)TileServer-GL: Hosting vector tile maps on your own server (FOSS4G 2016 Bonn)
TileServer-GL: Hosting vector tile maps on your own server (FOSS4G 2016 Bonn)
 
TechTalk - Building Serverless Applications with IBM Bluemix
TechTalk - Building Serverless Applications with IBM BluemixTechTalk - Building Serverless Applications with IBM Bluemix
TechTalk - Building Serverless Applications with IBM Bluemix
 
CI/CD using CodeCommit CodeBuild CodeDeploy CodePipeline
CI/CD using CodeCommit CodeBuild  CodeDeploy  CodePipelineCI/CD using CodeCommit CodeBuild  CodeDeploy  CodePipeline
CI/CD using CodeCommit CodeBuild CodeDeploy CodePipeline
 
DB Infrastructure Challenge - Team Geodan
DB Infrastructure Challenge - Team GeodanDB Infrastructure Challenge - Team Geodan
DB Infrastructure Challenge - Team Geodan
 

En vedette (6)

IBS SharePoint Capabilities
IBS SharePoint CapabilitiesIBS SharePoint Capabilities
IBS SharePoint Capabilities
 
Meet ibs
Meet ibsMeet ibs
Meet ibs
 
Leap Motion - Aydin Akcasu
Leap Motion - Aydin AkcasuLeap Motion - Aydin Akcasu
Leap Motion - Aydin Akcasu
 
Making the Move to Git
Making the Move to GitMaking the Move to Git
Making the Move to Git
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 

Similaire à Four Platforms, One Codebase

Cross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinCross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinPranav Ainavolu
 
App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarinMohit Chhabra
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...Nick Landry
 
PUG Challenge 2016 - The nativescript pug app challenge
PUG Challenge 2016 -  The nativescript pug app challengePUG Challenge 2016 -  The nativescript pug app challenge
PUG Challenge 2016 - The nativescript pug app challengeBronco Oostermeyer
 
Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365SoHo Dragon
 
Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)BizTalk360
 
Cross platform app dev with xamarin forms
Cross platform app dev with xamarin formsCross platform app dev with xamarin forms
Cross platform app dev with xamarin formsShahriar Hossain
 
Cross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and XamarinCross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and XamarinShravan Kumar Kasagoni
 
Serverless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and XamarinServerless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and XamarinMark Arteaga
 
For Business Success, Choose Cross Platform App Development
For Business Success, Choose Cross Platform App DevelopmentFor Business Success, Choose Cross Platform App Development
For Business Success, Choose Cross Platform App DevelopmentChromeInfo Technologies
 
Building Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with XamarinBuilding Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with XamarinBrandon Cornett
 

Similaire à Four Platforms, One Codebase (20)

Cross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinCross platform mobile app development with Xamarin
Cross platform mobile app development with Xamarin
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarin
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
 
PUG Challenge 2016 - The nativescript pug app challenge
PUG Challenge 2016 -  The nativescript pug app challengePUG Challenge 2016 -  The nativescript pug app challenge
PUG Challenge 2016 - The nativescript pug app challenge
 
Intro to Xamarin
Intro to XamarinIntro to Xamarin
Intro to Xamarin
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Introduction to xamarin
Introduction to xamarin  Introduction to xamarin
Introduction to xamarin
 
Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365
 
Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Cross platform app dev with xamarin forms
Cross platform app dev with xamarin formsCross platform app dev with xamarin forms
Cross platform app dev with xamarin forms
 
Cross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and XamarinCross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and Xamarin
 
Presentation1
Presentation1Presentation1
Presentation1
 
Lecture 08 Xamarin
Lecture 08 XamarinLecture 08 Xamarin
Lecture 08 Xamarin
 
Serverless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and XamarinServerless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and Xamarin
 
Xamarin介紹
Xamarin介紹Xamarin介紹
Xamarin介紹
 
For Business Success, Choose Cross Platform App Development
For Business Success, Choose Cross Platform App DevelopmentFor Business Success, Choose Cross Platform App Development
For Business Success, Choose Cross Platform App Development
 
Building Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with XamarinBuilding Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with Xamarin
 
Xamarin - Beyond the Basics
Xamarin - Beyond the BasicsXamarin - Beyond the Basics
Xamarin - Beyond the Basics
 

Dernier

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Dernier (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Four Platforms, One Codebase

Notes de l'éditeur

  1. <Intro> I think C# is a beautiful language, and I’m amazed at how it has grown and evolved over the years, taking us places we never thought about before.
  2. Tonight, I’m going demonstrate what I find to be the most exciting place to find C#; on our mobile devices. ALL of our mobile devices. I assume everyone here has a mobile device. How many have an iOS device? (iPhone/iPad)? Android phone or tablet? Windows Phone or Windows RT tablet? Windows 8? Mac Desktop? All of these platforms and devices are candidates to be running C# thanks to Xamarin.
  3. Ask: How much does the typical mobile app cost to create? $1000? $2000? $5000? (Wait for answers)
  4. According to a recent study, 80% of apps cost over $25,000 to create. Over HALF of all apps cost more than $50,000 to create. And that is per app. But, as we all know, it's a fragmented market out there.  Android accounts for 52% of devices, iOS brings in another 40%, and "Other", including Windows Phone makes up the other 8%.  But even these numbers are fragmented. There are five major versions of Android in the wild at the moment. iOS has three major versions out now. There are six different iOS screen resolutions, and an infinite number of Android resolutions. Windows Phone is coming out with newer, bigger phones soon, and Windows 8 apps can be any size at all.  When each app costs $25,000-$100,000 to create, the cost of designing and developing for each platform individually can skyrocket out of control. You’re left with a difficult decision…target one or two major platforms and leave a significant percentage of potential customers out in the cold, incur the cost to create an app for every platform, or find another way. Source : AnyPresence Mobile Readiness Report 2013
  5. Let’s talk about the state of mobile development today
  6. Expensive & Slow Positive = Great apps delivered to user’s platform Negative = Development hampered by multiple code bases & fragmentation
  7. Unhappy users Unhappy developers Increase in abandoned apps Limited to what is implemented
  8. four years old
  9. The #1 benefit is that we get to share our code between platforms. And not just a little bit. There are multiple case studies showing it’s easy to get 70%-90% code reuse between platforms. This dramatically cuts down on costs as well as bugs. Second, as .net developers, we get to use our existing .net skills. As a business that already has .net developers and is getting started building our first mobile apps, we can either pay for an Objective-C developer, a Java developer, and our existing .net developers, or we can have that same .net dev, with their accumulated business domain knowledge working across all platforms. Third, since Xamarin is based on mono and C#, we get a modern programming language. This means that we get async/await, linq, generics, lambdas, nuget, and packages such as json.net, restsharp, mvvmcross, and more. Fourth, we get powerful IDE support. With Xamarin we can choose between Xamarin Studio, a rich IDE which runs natively on Mac and Windows, or we can use Visual Studio, one of the most popular and powerful IDEs on the planet. This allows us to have a single, familiar IDE to develop in and share code between our iOS, Android, Windows Phone, Windows Store apps. Lastly, with Xamarin, we get extensive support and documentation. An important distinction between Xamarin and other frameworks is that Xamarin is completely, 100% native. The C# code that we write ultimately compiles down to native binaries on the target platforms. Unlike other systems such as PhoneGap or Titanium, with Xamarin we get full access to the underlying OS. Anything that Objective-C or Java can do, Xamarin can do. You are not limited in any way. Xamarin’s approach also brings with it the native UI toolkits for each platform. Xamarin does not abstract the user interface away, leaving you with the lowest common denominator for user interfaces. Each UI will still be custom developed and perfected for each platform, ensuring that your apps are beautiful, fast, and native.
  10. Let’s talk a bit about C# and why it is awesome.
  11. Objective-C to get the date from a date time variable
  12. C# to get the date from a date time variable
  13. Objective-C to trim spaces from a string
  14. C# to trim spaces from a string
  15. Objective-C to find a contact in address book
  16. Java to find a contact in address book
  17. C# to find a contact in address book
  18. Let's take a step back, and talk about Mvvm
  19. Mvvm is a GUI design pattern which originated at Microsoft in 2005, when they were first designing WPF and, later, Silverlight. According to John Gossman, one of the main designers of Mvvm, "Model/View/ViewModel is a variation of Model/View/Controller (MVC) that is tailored for modern UI development platforms where the View is the responsibility of a designer rather than a classic developer." Mvvm is all about binding. We can easily bind properties, collections, and actions (or commands). This declarative binding allows us to easily separate the presentation (the view) from the behavior.
  20. In Mvvm, the view is only concerned with the presentation of elements on the screen. The model, as in MVC, could also be called the data model. It represents the intrinsic shape of the data. The ViewModel sits in between the view and the model. It handles loading content the UI needs,hiding and showing content, Date/number/string formatting, responding to the user, performing commands, saving and retrieving data.
  21. This separation of the View from the behavior, via data binding is perfect for our cross platform world. This allows us to reuse the logic in our view models, while continuing to have completely native UIs for iPhone, iPad, Android phones, Android tables, WPF, WinRT, Silverlight, Mac desktop, and Windows Phone devices. This also allows us to have designers work on making the iOS and Android UIs pretty, while allowing developers to create the Windows Phone and Windows 8 UIs.
  22. So, given the theory behind Mvvm, how does MvvmCross help us? MvvmCross is an open source cross platform Mvvm framework written by Stuart Lodge. It's currently on its third version, and has a very active and healthy community around it.
  23. The beauty of MvvmCross is that it supports iOS, Android, Windows Phone 7, Windows Phone 8, Mac Desktop, WPF, Silverlight, Windows 8/RT, and Powershell. This allows us to write the core logic of our app, and reuse it completely across eleven platforms. I'll be demonstrating iPhone, Windows Phone, Windows 8, and Android today. MvvmCross focuses on shared behavior, not presentation. Mvvm itself was introduced with WPF, but then left to stagnate by Microsoft. There haven't been any meaningful updates to the XAML syntax since WPF was first released. 
  24. MvvmCross adds powerful binding options to XAML, as well as introducing binding to iOS and Android platforms. Here we see an example of binding a property in our ViewModel it each View.
  25. MvvmCross includes a pluggable architecture, and comes with an IOC container which runs on all platforms. Due the extensibility and pluggable architecture, there are plugins on nuget for json, working with local files, sqlite, message bus, location (gps), web browser, network utilities, email, and many more.