7. My perfect mobile world ...
Data Access
Business Logic
Service Interface
Service Local Service Local Service Local Service Local
Consumption Data/Services Consumption Data/Services Consumption Data/Services Consumption Data/Services
Business Logic Business Logic Business Logic Business Logic
UI Logic UI Logic UI Logic UI Logic
WP iOS Droid Win8
8. My perfect mobile world ...
Data Access
Business Logic
Service Interface
Service Consumption Local Data/Services
Business Logic
UI Logic
WP iOS Droid Win8
9. My perfect mobile world ...
Data Access
Business Logic
Service Interface
Service Consumption Local Data/Services
Business Logic
UI Logic
WP iOS Droid Win8
10. My perfect mobile world ...
Data Access
Business Logic
Service Interface
Service Consumption Local Data/Services
Business Logic
UI Logic
WP iOS Droid Win8
11. My perfect mobile world ...
Data Access
Business Logic
Service Interface
Service Consumption Local Data/Services
Business Logic
UI Logic
WP iOS Droid Win8
12. Can we do this?
Portable
Class Xamarin MvvmCross
Libraries
20. Xamarin for Android/iOS
Data Access
Business Logic
Service Interface
Service Consumption Local Data/Services
Business Logic
Xamarin
UI Logic
WP iOS Droid Win8
21. Xamarin for Android/iOS
Code
Completion
for Native
APIs
Visual Point and
Studio click UI
Integration design
Advanced
Debugging
Support
38. A WP app with MvvmCross
- Data Binding as you know it
- ViewModels are auto-wired using MvxPhonePage<TViewModel>
- Configure platform specific services
... and that’s it
39.
40. An Android app with MvvmCross
- UI is build up using .axml
- Data Binding using json expressions
- Navigation mapped to Intents
- ViewModels are auto-wired using
MvxBindingActivityView<TViewModel>
- ValueConverters can be used
42. Why this became my precious
- Native UI
- Native Performance
- One language to rule them all
- 95% shared application logic
- 100% shared test harness
- Overall dev time ≈ dev time per app
- Changes can be done in 1 place (most of the time)
43. Why this became my precious
Portable
Class Xamarin MvvmCross
Libraries
44. Related Sessions
- Coding and designing for Windows 8 and Windows Phone 8, best
practices and reusing code
- Laurent Bugnion
- Applied MVVM in Windows 8 apps: not your typical MVVM session!
- Gill Cleeren
- Live coding: The Windows Store Apps showdown - C# vs JavaScript
- Iris Classon
45. Other Resources
- MvvmCross
- https://github.com/slodge/MvvmCross
- http://slodge.blogspot.com
- Xamarin
- http://xamarin.com/
- monogame.net
- The bits
- https://github.com/vermegi/TechdaysBeDemo
To Show:Visual Studio Integration: build up a UI with point and click.Automatic generation of resource file.
Separation of ConcernsDesignable (Blend)TestableCode ReuseComplexityMore Code
Separation of ConcernsDesignable (Blend)TestableCode ReuseComplexityMore Code
Cross Platform MVVMDatabinding for iOS, Android
Cross Platform Navigation
Cross platform Plugins and servicesDependency Injection
Cross Platform MVVMDatabinding for iOS, Android
Mention Async Targeting Pack!
Activities = class & .axml fileActivities make use of Android Services Intents = the way Android makes things happen (by sending messages). Eg. Launch a new activityAndroid Manifest (= component registration, required permissions, OS Version compatibility)