×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Mobile design patterns Alexandra Marin @ ITAKE Unconference 2017 @xmonodev crossplatform.io
Slide 2
Slide 2 text
Hello! { } #mobile #designpatterns #itakeunconf crossplatform.io
Slide 3
Slide 3 text
Design code that runs cross-platform { crossplatform.io } #mobile #designpatterns #itakeunconf crossplatform.io
Slide 4
Slide 4 text
Overview { crossplatform.io } #mobile #designpatterns #itakeunconf crossplatform.io
Slide 5
Slide 5 text
The mobile problem { crossplatform.io } #mobile #designpatterns #itakeunconf
Slide 6
Slide 6 text
Target universal features { crossplatform.io } #mobile #designpatterns #itakeunconf
Slide 7
Slide 7 text
Enhance experience based on device capabilities { crossplatform.io } #mobile #designpatterns #itakeunconf
Slide 8
Slide 8 text
Platform-independent code with Xamarin { crossplatform.io } #mobile #designpatterns #itakeunconf
Slide 9
Slide 9 text
Platform-specific code with Xamarin { crossplatform.io } #mobile #designpatterns #itakeunconf
Slide 10
Slide 10 text
Case study #1: Different capabilities Case study #2: Different platform { crossplatform.io } #mobile #designpatterns #itakeunconf
Slide 11
Slide 11 text
Taking a selfie #mobile #designpatterns #itakeunconf crossplatform.io
Slide 12
Slide 12 text
{ crossplatform.io } #mobile #designpatterns #itakeunconf Facade design pattern crossplatform.io
Slide 13
Slide 13 text
//On platform if(deviceHasCamera) { //Take photo via Camera app //Apply resizing //Save it via File Manager } else { //Choose from gallery } { crossplatform.io } #mobile #designpatterns #itakeunconf crossplatform.io
Slide 14
Slide 14 text
{ crossplatform.io } #mobile #designpatterns #itakeunconf //Shared code camera.ReturnPhoto(); crossplatform.io
Slide 15
Slide 15 text
Save the date #mobile #designpatterns #itakeunconf crossplatform.io
Slide 16
Slide 16 text
Bridge design pattern { crossplatform.io } #mobile #designpatterns #itakeunconf crossplatform.io
Slide 17
Slide 17 text
{ crossplatform.io } #mobile #designpatterns #itakeunconf //Shared code class MyCalendar { ICalendar calendar; void SaveTheDate() { calendar.AddEvent(); } } crossplatform.io
Slide 18
Slide 18 text
{ crossplatform.io } #mobile #designpatterns #itakeunconf //iOS iOSCalendar : ICalendar { AddEvent() { //add event with //EventKit } } crossplatform.io
Slide 19
Slide 19 text
{ crossplatform.io } #mobile #designpatterns #itakeunconf //Android DroidCalendar : ICalendar { AddEvent() { //add event with //CalendarContract } } crossplatform.io
Slide 20
Slide 20 text
Inversion of Control { crossplatform.io } #mobile #designpatterns #itakeunconf
Slide 21
Slide 21 text
Service locator { crossplatform.io } #mobile #designpatterns #itakeunconf
Slide 22
Slide 22 text
//Construct on platform Locator.RegisterType (); //Use in shared code Locator.Resolve(); { } #mobile #designpatterns #itakeunconf { crossplatform.io }
Slide 23
Slide 23 text
Dependency injection { crossplatform.io } #mobile #designpatterns #itakeunconf { crossplatform.io }
Slide 24
Slide 24 text
{ crossplatform.io } #mobile #designpatterns #itakeunconf //Construct on platform IoC.RegisterType (); //Gets injected in shared class constructor public SharedClass(ICalendar cameraHelper) { crossplatform.io }
Slide 25
Slide 25 text
Summary { crossplatform.io } #mobile #designpatterns #itakeunconf { crossplatform.io } crossplatform.io
Slide 26
Slide 26 text
Ask Me Anything crossplatform.io or @xmonodev { crossplatform.io } #mobile #designpatterns #itakeunconf { crossplatform.io } crossplatform.io