SlideShare a Scribd company logo
1 of 25
Cross Platform Native Mobile App
Development in C#
Using Xamarin 2.0 and Visual Studio 2012
Talbott Crowell
@talbott
Native Mobile App Dev Today
• Many different IDE’s
– Eclipse, Visual Studio, Xcode
• Many different Languages
– Java, C#, Objective-C
• Many different Frameworks
– Android SDK, Windows Phone SDK, iOS SDK
Solution
• Xamarin 2.0 Business Edition or better
• Visual Studio 2012 Professional or better
• MvvmCross
• One language C# via Mono
MVVM
Model ViewViewModel
MVVM Libraries
• http://nuget.org/packages?q=MVVM
• 279 results
• Including
– Knockout.js (JavaScript)
– MVVM Light
– Caliburn.Micro
• MvvmCross
– Used by many Xamarin
projects
• ZK
– For Java
• PRISM
– The Original from MSP&P
• Simple MVVM
– On CodePlex
Other Frameworks
Implementing the MVVM Pattern
• MSDN: http://bit.ly/impmvvm
MvvmCross @slodge
• https://www.youtube.com/user/MrHollywoof
• Lots of great YouTube videos on how to use
MvvmCross
Portable Class
Library
• Stuart Lodge: My
current PCL setup in
Visual Studio for the
Xamarin twins
• http://bit.ly/pclhack
Shared Core
Environment Setup
• iOS
• Android
• Windows Phone
Xamarin.iOS
• System Requirements
– Mac Hardware with MacOS
• Required for compiling
– iOS Simulator
• Comes with Xcode
– iPhone
• Get UUID from iTunes
• Register the Device on the iOS
Provisioning Portal
• Create and download a Provisioning
Profile
• Add it to Xcode Organizer under Devices
Xamarin.Android
• Needs Android
SDK Tools latest
update
Android Virtual Device Manager
• AVD Manager
• Edit Existing, change name and Platform
Targeting Android Versions
4.0%
33.0%
58.6% 58.7%
95.1% 95.2% 98.4% 99.9% 100.0%
0.0%
20.0%
40.0%
60.0%
80.0%
100.0%
120.0%
Users
Windows Phone 8
• Uses Hyper-V for Emulator
• From a Mac using Parallels 8 turn on Nested
Virtualization
– Allows for a VM within a VM
– Also requires Intel CPU with EPT
• Available in all Intel Nehalem-based CPUs with virtualization
support; namely in Core i7, Core i5, Core i3, Pentium G6950
and appropriate Xeons
Using “Hello World” to Verify
• Xamarin installs templates for iOS and Android
• Install the Windows Phone SDK for WP8
• Use Visual Studio
project templates
to test each
platform
MvvmCross and NuGet
• Using NuGet you can search for “mvvmcross” to
find all the packages you need
• Create a PCL
– Install Hot Tuna
• Add a new iPhone, Android, and Windows Phone
Project and add Hot Tuna to each
– Hot Tuna (MvvmCross v3) comes with to-do
instructions for each
Leveraging the MvvmCross Plugins
• Plugins for
– Location Services
– Messaging
– Picture Chooser
– JSON
– Much more…
Extend Beyond Xamarin
• Xamarin enables you to reference Java and
Objective C libraries using a “binding” process
• Leveraging a Java library for Android (JAR)
– http://bit.ly/bindingJar
• Leveraging an iOS library
– http://bit.ly/bindingObjectiveC
Build Plugin for MvvmCross
• If you want to build your own plug-in for
MvvmCross, there is info online
– http://bit.ly/mvxplugin
Other Supported Platforms
• Phone
– iPhone, Android, Windows Phone 7.5 and WP8
• Tablet
– iPad, Android, Windows Store (WinRT)
• Desktop
– Mac, Windows Store (WinRT), WPF
• Browser
– Silverlight
Summary
• Using the following tools:
– Xamarin 2.0 Business Edition
– Visual Studio 2012 Professional
– MvvmCross (Mvx)
• You can create native cross platform mobile
applications
Resources
• Bit.ly bundle with links to videos, slides, blog
posts, etc…
– http://bitly.com/bundles/talbott/1
– Look for the MvvmCross badge on blog posts and
videos
• Slides: http://bit.ly/xplatslides
Cross Platform Native Mobile App
Development in C#
Using Xamarin 2.0 and Visual Studio 2012
Talbott Crowell
@talbott
Thank you for coming to

More Related Content

More from Talbott Crowell

PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012
Talbott Crowell
 
Exploring SharePoint with F#
Exploring SharePoint with F#Exploring SharePoint with F#
Exploring SharePoint with F#
Talbott Crowell
 
Automating PowerShell with SharePoint
Automating PowerShell with SharePointAutomating PowerShell with SharePoint
Automating PowerShell with SharePoint
Talbott Crowell
 

More from Talbott Crowell (12)

Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point app
 
Introduction to F# 3.0
Introduction to F# 3.0Introduction to F# 3.0
Introduction to F# 3.0
 
PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012
 
PowerShell and SharePoint
PowerShell and SharePointPowerShell and SharePoint
PowerShell and SharePoint
 
Welcome to windows 8
Welcome to windows 8Welcome to windows 8
Welcome to windows 8
 
Exploring SharePoint with F#
Exploring SharePoint with F#Exploring SharePoint with F#
Exploring SharePoint with F#
 
Automating PowerShell with SharePoint
Automating PowerShell with SharePointAutomating PowerShell with SharePoint
Automating PowerShell with SharePoint
 
F# And Silverlight
F# And SilverlightF# And Silverlight
F# And Silverlight
 
SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010
 
Automating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePointAutomating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePoint
 
Introduction to F#
Introduction to F#Introduction to F#
Introduction to F#
 
Architecting Solutions for the Manycore Future
Architecting Solutions for the Manycore FutureArchitecting Solutions for the Manycore Future
Architecting Solutions for the Manycore Future
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
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
 

Recently uploaded (20)

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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
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
 
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
 
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...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
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...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
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​
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
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
 

Cross Platform Native Mobile App Development in C# using Xamarin and Visual Studio

  • 1. Cross Platform Native Mobile App Development in C# Using Xamarin 2.0 and Visual Studio 2012 Talbott Crowell @talbott
  • 2. Native Mobile App Dev Today • Many different IDE’s – Eclipse, Visual Studio, Xcode • Many different Languages – Java, C#, Objective-C • Many different Frameworks – Android SDK, Windows Phone SDK, iOS SDK
  • 3. Solution • Xamarin 2.0 Business Edition or better • Visual Studio 2012 Professional or better • MvvmCross • One language C# via Mono
  • 5. MVVM Libraries • http://nuget.org/packages?q=MVVM • 279 results • Including – Knockout.js (JavaScript) – MVVM Light – Caliburn.Micro
  • 6. • MvvmCross – Used by many Xamarin projects • ZK – For Java • PRISM – The Original from MSP&P • Simple MVVM – On CodePlex Other Frameworks
  • 7. Implementing the MVVM Pattern • MSDN: http://bit.ly/impmvvm
  • 8. MvvmCross @slodge • https://www.youtube.com/user/MrHollywoof • Lots of great YouTube videos on how to use MvvmCross
  • 9. Portable Class Library • Stuart Lodge: My current PCL setup in Visual Studio for the Xamarin twins • http://bit.ly/pclhack
  • 11. Environment Setup • iOS • Android • Windows Phone
  • 12. Xamarin.iOS • System Requirements – Mac Hardware with MacOS • Required for compiling – iOS Simulator • Comes with Xcode – iPhone • Get UUID from iTunes • Register the Device on the iOS Provisioning Portal • Create and download a Provisioning Profile • Add it to Xcode Organizer under Devices
  • 14. Android Virtual Device Manager • AVD Manager • Edit Existing, change name and Platform
  • 15. Targeting Android Versions 4.0% 33.0% 58.6% 58.7% 95.1% 95.2% 98.4% 99.9% 100.0% 0.0% 20.0% 40.0% 60.0% 80.0% 100.0% 120.0% Users
  • 16. Windows Phone 8 • Uses Hyper-V for Emulator • From a Mac using Parallels 8 turn on Nested Virtualization – Allows for a VM within a VM – Also requires Intel CPU with EPT • Available in all Intel Nehalem-based CPUs with virtualization support; namely in Core i7, Core i5, Core i3, Pentium G6950 and appropriate Xeons
  • 17. Using “Hello World” to Verify • Xamarin installs templates for iOS and Android • Install the Windows Phone SDK for WP8 • Use Visual Studio project templates to test each platform
  • 18. MvvmCross and NuGet • Using NuGet you can search for “mvvmcross” to find all the packages you need • Create a PCL – Install Hot Tuna • Add a new iPhone, Android, and Windows Phone Project and add Hot Tuna to each – Hot Tuna (MvvmCross v3) comes with to-do instructions for each
  • 19. Leveraging the MvvmCross Plugins • Plugins for – Location Services – Messaging – Picture Chooser – JSON – Much more…
  • 20. Extend Beyond Xamarin • Xamarin enables you to reference Java and Objective C libraries using a “binding” process • Leveraging a Java library for Android (JAR) – http://bit.ly/bindingJar • Leveraging an iOS library – http://bit.ly/bindingObjectiveC
  • 21. Build Plugin for MvvmCross • If you want to build your own plug-in for MvvmCross, there is info online – http://bit.ly/mvxplugin
  • 22. Other Supported Platforms • Phone – iPhone, Android, Windows Phone 7.5 and WP8 • Tablet – iPad, Android, Windows Store (WinRT) • Desktop – Mac, Windows Store (WinRT), WPF • Browser – Silverlight
  • 23. Summary • Using the following tools: – Xamarin 2.0 Business Edition – Visual Studio 2012 Professional – MvvmCross (Mvx) • You can create native cross platform mobile applications
  • 24. Resources • Bit.ly bundle with links to videos, slides, blog posts, etc… – http://bitly.com/bundles/talbott/1 – Look for the MvvmCross badge on blog posts and videos • Slides: http://bit.ly/xplatslides
  • 25. Cross Platform Native Mobile App Development in C# Using Xamarin 2.0 and Visual Studio 2012 Talbott Crowell @talbott Thank you for coming to