cross platform design patterns - meetupfiles.meetup.com/5083302/cross platform design...
TRANSCRIPT
![Page 1: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/1.jpg)
![Page 2: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/2.jpg)
MobileCross PlatformDesign Patterns
Roy CornelissenIT Architect,Info Support
Willem MeintsDeveloper,Info Support
Roy CornelissenIT ArchitectInfo Support
Dutch Mobile .NET Developers Group
![Page 3: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/3.jpg)
Patterns Proof
Context ALM
![Page 4: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/4.jpg)
![Page 5: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/5.jpg)
![Page 6: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/6.jpg)
C / C++
Different CPU
architectures
C# / XAML
![Page 7: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/7.jpg)
![Page 8: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/8.jpg)
Demo
![Page 9: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/9.jpg)
App Logic
Vendor tools “Magic Box” Hybrid
XCode
Objective-C
WP8 / WinRT
XAML
C#
Android
SDK
Java
Appcelerator
Titanium
JavaScript > Native
PhoneGapHTML5 / CSS / JS
Adobe AIR
ActionScript
Antenna
Rapid
Scripting
Language
Service2Media
Lua C#
XamarinMonoTouch
Visual StudioXAML, C#, WinRT Xamarin
Mono for Android
Rhodes
Ruby + HTML
Sybase
Unwired
“4GL” code genShared
language
![Page 10: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/10.jpg)
![Page 11: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/11.jpg)
Reusable
20%
Shared app
logic
20%Windows8
14%
iOS
18%
WP7
12%
Android
16%
Shared
65%
Specific
35%
Per App
![Page 12: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/12.jpg)
![Page 13: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/13.jpg)
![Page 14: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/14.jpg)
![Page 15: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/15.jpg)
![Page 16: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/16.jpg)
![Page 17: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/17.jpg)
![Page 18: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/18.jpg)
![Page 19: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/19.jpg)
![Page 20: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/20.jpg)
Services
Model
ControllerViewModel
Etc.
GPS
Storage
Motion sensors
View
Shared?
Bridge
Shared Platform specific
![Page 21: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/21.jpg)
![Page 22: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/22.jpg)
Shared Controller
UIViewController XAML View Activity
Web Services
SF
SF
SF
Model
GetActualEvents(Action<object> OnSuccess, Action<Exception> OnFail)
PropertyChanged(“Events”);
public void OnFailed(Exception e){
// Do something with error}
public void OnSuccess(object data){
// Do something with data// Notify user
}
![Page 23: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/23.jpg)
![Page 24: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/24.jpg)
iOS
MonoTouch.CoreLocation
MonoTouch.CoreMotion
MonoTouch.AVFoundation
MonoTouch.AddressBook
MonoTouch.EventKit
…
Android:
Android.Hardware.Sensor
Android.Location
Android.Bluetooth
Android.Nfc
…
Windows Phone:
Microsoft.Devices.Sensors.Gyroscope
Microsoft.Devices.Sensors.Accelerometer
Microsoft.Devices.Sensors.Compass
Microsoft.Devices.Sensors.Motion
…
![Page 25: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/25.jpg)
Workshop Mobile Development - Patterns for reuse
![Page 26: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/26.jpg)
partial class A
{
// Half of the implementation
}
partial class A
{
// The other half
}
A.cs A.extra.cs
![Page 27: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/27.jpg)
partial class A
{
// Declare the method here
partial void DoSomethingEx();
public void DoSomething()
{
// Some shared logic
DoSomethingEx();
}
}
partial class A
{
// Provide the implementation here
partial void DoSomethingEx()
{
// Do something iOS specific
}
}Can be used from shared
logic
Leaves room for specific
implementation
Always private and returns
void
A.cs A.iOS.cs
![Page 28: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/28.jpg)
![Page 29: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/29.jpg)
![Page 30: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/30.jpg)
![Page 31: Cross Platform Design Patterns - Meetupfiles.meetup.com/5083302/Cross Platform Design Patterns... · 2012-12-14 · Cross Platform Design Patterns Roy Cornelissen IT Architect, Info](https://reader030.vdocuments.site/reader030/viewer/2022041119/5f325116b9943954e7079dde/html5/thumbnails/31.jpg)
Roy Cornelissen@roycornelissen
Questions?