1 / 0
Hot Tuna
0 likes | 174 Vues
Hot Tuna. Cross platform development with . net , Xamarin and MvvmCross. Sean’s Guff. Formerly CIO at Catalyst Risk Management Currently unemployed Personal shareware site at www.sourceitsoftware.com Blog at sourceitsoftware.blogspot.com @ seanrcross sean@sourceitsoftware.com. To cover.
Télécharger la présentation
Hot Tuna
An Image/Link below is provided (as is) to download presentation
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.
Content is provided to you AS IS for your information and personal use only.
Download presentation by click this link.
While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
During download, if you can't get a presentation, the file might be deleted by the publisher.
E N D
Presentation Transcript
-
Hot Tuna
Cross platform development with .net, Xamarinand MvvmCross - Sean’s Guff Formerly CIO at Catalyst Risk ManagementCurrently unemployed Personal shareware site atwww.sourceitsoftware.com Blog atsourceitsoftware.blogspot.com @seanrcross sean@sourceitsoftware.com
- To cover What are we trying to achieve Example Theory (boring!) Getting started with MvvmCross Plugins Platform specific stuff Summary Links
- The holy grail
- What is achievable
- Example – Lions Official (sorry)
- The pieces .net (duh) Xamarin (iOS, Android, Mac) Portable Class Libraries MvvmCross
- Xamarin Commercial products for C# development for non-Windows platforms Xamarin.Android Xamarin.iOS Xamarin.Mac Need business edition for VS integration @ $999 US each
- Xamarin Demo
- Portable Class Libraries Create a single library that can be used by multiple .net frameworks Allows access only to functionality shared by all selected frameworks Does some nifty namespace mapping Makes cross platform development much easier Microsoft and 3rd party PCLs available (HttpClient, Imaging, JSON…)
- .netx.x Silverlight Portable Class Library Shared functionality
- .netx.x Silverlight Portable Class Library Shared functionality Windows Store
- .netx.x Silverlight Portable Class Library Shared functionality Windows Store Xamarin.XXXX
- PCL Demo Easy-peasy, lemon squeezy It’s hard to find a good image of a class library
- Mvvm: Model – View Model - Model
- Mvvm: Key interfaces INotifyPropertyChanged RaisePropertyChanged(() => PropertyName ); ICommand INotifyCollectionChanged (or ObservableCollection)
- Mvvm: Binding
- XAML Code <StackPanel> <TextBox Text="{Binding Hello, Mode=TwoWay}" /> <TextBlock Text="{Binding Hello}" /> <Button Content="Click Me" Command="{BindingMyCommand}" /> <Button Content="Go Second" Command="{BindingGoSecondCommand}" /> </StackPanel> publicclassFirstViewModel : MvxViewModel { privatestring _hello = "Hello MvvmCross"; publicstring Hello { get { return _hello; } set { _hello = value; RaisePropertyChanged(() => Hello); } } publicSystem.Windows.Input.ICommandMyCommand { get { return newCirrious.MvvmCross.ViewModels.MvxCommand(DoMyCommand); } } privatevoidDoMyCommand() { Hello = Hello + " World"; } publicSystem.Windows.Input.ICommandGoSecondCommand { get { return newCirrious.MvvmCross.ViewModels.MvxCommand(DoGoSecond); } } privatevoidDoGoSecond() { ShowViewModel<SecondViewModel>(); } }
- MvvmCross Cross Platform MVVM Development Framework Free, open source Supports WP7,8 WPF WinRT Xamarin.Android Xamarin.iOS Xamarin.Mac AKA Mvx
- MvvmCross Architecture
- Using MvvmCross Hard - download from github, compile, include references etc Easy - Nuget; look for MvvmCross Hot Tuna Starter Pack, and plugins Real Easy - NinjaCoder
- Getting started - Nuget
- Getting started - NinjaCoder
- Plugins Convenient way to access platform functionality Use NinjaCoder or Nuget to add plugins Includes Accelerometer, Email, Files, Location, Messaging, Sqlite 3rd party plugins available as well. Consume plugins using Dependency Injection or Service locator
- Plugins Demo
- Platform specific code Describe functionality using an interface in .Core Create platform specific implementation in .xxxx Register implementation on app startup Mvx.RegisterSingleton<ISettingsPersistance>(new SettingsPersistanceWPF()); Mvx.RegisterType<IGetRemoteData, RemoteDataWpf>(); Consume plugins using Dependancy Injection or Service locator persistance = Mvx.Resolve<ISettingsPersistance>();
- Platform specific example Here is one that I prepared earlier
- Summary PCLs let you use easily share code across multiple platforms Xamarin lets you use C# on Android, iOS and Mac MvvmCross wraps it all up to make it easy Shared PCL that holds most functionality Platform specific apps for views and dependant code Plugins let you easily add functionality in a cross platform friendly way Do your own platform dependant stuff using interfaces and IoC/Dependancy Injection
- Links - MvvmCross Stuart Lodge - MvvmCross Author Twitter @slodge Blog http://slodge.blogspot.co.uk/ Videos http://www.youtube.com/user/MrHollywoof?feature=watch List of tutorial videos http://mvvmcross.wordpress.com/ Repository https://github.com/slodge/MvvmCross
- Links - Xamarin Website - http://www.xamarin.com/ Samples - https://github.com/xamarin Mobile library - https://github.com/xamarin/Xamarin.Mobile
- Links – Ninja Coder Adrian Sudbury – Ninja Coder Author Twitter @asudbury Blog http://adriansudbury.blogspot.co.uk/ Ninja Coder http://visualstudiogallery.msdn.microsoft.com/618b51f0-6de8-4f85-95ce-a50c658c7767
- Links - Other http://www.hanselman.com/blog/CrossPlatformPortableClassLibrariesWithNETAreHappening.aspx http://sourceitsoftware.blogspot.co.nz/
- Credits Mvvm Images from http://books.zkoss.org/wiki/ZK_Developer%27s_Reference/MVVM
- Questions Answers not guaranteed
More Related