talbott's boston mvvmcross talk
DESCRIPTION
For original: https://skydrive.live.com/view.aspx?resid=71AED2851E77C393!518&cid=71aed2851e77c393&app=PowerPoint&authkey=!AOCNLXIAFCQX5zwTRANSCRIPT
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 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
MvvmCross v3 “Hot Tuna”
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
Android Virtual Device Manager• AVD Manager• Edit Existing, change name and Platform
Targeting Android Versions
Jelly
Bean 17
Jelly
Bean 16
Ice Crea
m Sandwich
15
Honeyco
mb 13
Gingerb
read 10
Gingerb
read 9
Froyo
8
Eclair
7
Donut 40.0%
20.0%
40.0%
60.0%
80.0%
100.0%
120.0%
4.0%
33.0%
58.6% 58.7%
95.1% 95.2% 98.4% 99.9% 100.0%
Users
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
Cross Platform Native Mobile App Development in C#
Using Xamarin 2.0 and Visual Studio 2012
Talbott Crowell@talbott
Thank you for coming to