Upload
james-montemagno
View
486
Download
5
Embed Size (px)
DESCRIPTION
Take an in-depth look at mobile development architecture patterns including MVC and MVVM. Explore what you get out of the box, and what you get with frameworks such as Bind, Mvvm Light, and MvvmCross. Code is all with C# and xamarin on android, ios, and windows phone
Citation preview
Data Bind Everything!
Mobile Development Strategies with MVVMJames MontemagnoDeveloper Evangelist, Xamarin Tweet: @JamesMontemagno, @XamarinHQ #Xamarinwww.MotzCod.es, www.Xamarin.com
“MVVM is awesome and will revolutionize your application
development process.”-James Montemagno
Let’s talk architecture(because that is fun)
Well First…. What is Xamarin?
Mobile Development Approaches
Single App
OR OR
Silo Approach
Write Once, Run Anywhere Approach
Lowest common denominator
App Generation
Write Once, Run Anywhere Approach
Lowest common denominator
App Generation
Xamarin’s Unique Approach
C# on 2.6 Billion Devices
100% API Coverage
Anything you can do in Objective-C or Java can be done in C# and Visual Studio with
Xamarin!
Xamarin.iOS does full Ahead Of Time (AOT) compilation to produce an ARM binary for Apple’s App Store.
Native Performance
Xamarin.Android takes advantage of Just In Time (JIT) compilation on the Android device.
Code Sharing: Accelerate Development
Android
iOS
Mac
WP
For real, let’s talk architecture
Why do we use them?•Organize & Maintain Code•Abstract away all business logic
•Re-use a high percent of our code
•Make our views dumb!•Our architect told us to
What is MVC?
Model-View-Controller
Model
View Controller
Updates
Sees Uses
Manipulates
What is MVVM?
Model-View-ViewModel
ModelView ViewModel
How to display information
What to displayFlow of interaction
Business LogicData objects
Events
DataData
MVVM != Data Binding
MVVM Framework == Data Binding
Model-View-ViewModel
ModelView ViewModel
Magic Binding Framework Here
Live Coding Adventure 1
Microsoft World• Built into:
Windows PhoneWindows StoreWPF
• Does not:NavigationIoCFun Stuff
• Provides:Data BindingCommands
What about….
Enter Frank Krueger & Bind!• https://github.com/praeclarum/Bind
• Easy two-way data binding
Live Coding Adventure 2
How about even more?
== AWESOME
How about even more?
MvvmCross•Super MVVM framework for all•Data Binding•Commands•Navigation•IoC•Plugins•So Much More…
Live Coding Adventure 3
Xamarin Evolve 2013Sold
Out!
650Conference Attendees
8,400Live stream
hours viewed
#1Trending on Twitter
during keynote
Watch Sessions & Highlights: http://xamarin.com/evolve/2013
www.xamarin.com/evolve
• Sign up at xamarin.com/university• Learn to build native iOS, Android, and Windows
apps with C#.• Live online, interactive classes with live coding.• Labs with full source code solutions.• Access to Xamarin Certified Developer exam.• Unlimited Annual Access: Enjoy unlimited, live
mobile development training from mobile experts, on your schedule, and as often as you'd like.
Where Do I Start?Xamarin.com
GET YOUR C# SHIRT TODAY!
Find Me:@JamesMontemagnowww.MotzCod.esGitHub.com/JamesMontemagno
Xamarin:@XamarinHQwww.Xamarin.com
MvvmCrosshttp://mvvmcross.wordpress.comGitHub.com/MvvmCrossNuGet: MvvmCross
Latest AppMy StepCounter for Android & iOS
www.MyStepCounterApp.com100% Open Source Starter Compatible