Four Platforms, One Codebase
-
Upload
interactive-business-systems-inc -
Category
Technology
-
view
112 -
download
0
description
Transcript of Four Platforms, One Codebase
![Page 1: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/1.jpg)
Four Platforms, One Codebase Cross Platform Mobile Apps with Xamarin
rob gibbensinteractive business systems
![Page 2: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/2.jpg)
![Page 3: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/3.jpg)
what does an app cost?
![Page 4: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/4.jpg)
![Page 5: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/5.jpg)
mobile development approaches
![Page 6: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/6.jpg)
silos• build app multiple times• multiple teams• multiple code bases• different toolsets
![Page 7: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/7.jpg)
write once, run anywhere• lowest common denominator• browser fragmentation• developing and designing for one platform
![Page 8: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/8.jpg)
![Page 9: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/9.jpg)
xamarin‘s unique approach• native user interface• native performance• shared code across platforms• c# and .net framework• full api coverage
![Page 10: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/10.jpg)
why C#?
![Page 11: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/11.jpg)
C# is awesome• async/await• linq• xml + xdocument• event handling, delgates, lambdas• generics
![Page 12: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/12.jpg)
+ (NSDate *) stripTime:(NSDate *) date { NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date];
date = [gregorian dateFromComponents:components];
[gregorian release];
return date; }
![Page 13: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/13.jpg)
var newDate = date.Date;
![Page 14: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/14.jpg)
NSString *string = @“ spaces in front and at the end “;NSString *trimmedString = [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
![Page 15: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/15.jpg)
var trimmedString = “ spaces in front and at the end “.Trim();
![Page 16: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/16.jpg)
![Page 17: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/17.jpg)
![Page 18: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/18.jpg)
![Page 19: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/19.jpg)
mvvm
![Page 20: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/20.jpg)
![Page 21: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/21.jpg)
![Page 22: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/22.jpg)
![Page 23: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/23.jpg)
mvvmCross
![Page 24: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/24.jpg)
![Page 25: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/25.jpg)
![Page 26: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/26.jpg)
json serializer
file system
sqlite
message busvisibili
ty
download cache
gps
web browser
photos localizati
on
networkphone
callacceleromet
er
![Page 27: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/27.jpg)
let’s code!
![Page 28: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/28.jpg)
![Page 29: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/29.jpg)
http://www.ibs.comhttp://www.ibs.com
![Page 30: Four Platforms, One Codebase](https://reader034.fdocuments.us/reader034/viewer/2022052504/54c8793d4a79596a508b45a9/html5/thumbnails/30.jpg)
Contact
Rob Gibbens
github: http://github.com/RobGibbens/MvvmDemotwitter: @RobGibbensemail : [email protected]