Download presentation
Presentation is loading. Please wait.
Published byPablo Herald Modified over 10 years ago
1
Cross Platform Mobile Development with.NET Greg Shackles Senior Software Engineer OLO Online Ordering greg@gregshackles.com
2
MARQUEE SPONSOR
3
PLATINUM SPONSOR
5
GOLD SPONSOR
11
SILVER SPONSORS
12
Who is this guy? Greg Shackles greg@gregshackles.com gregshackles.com Twitter: @gshackles Google+: plus.tl/gshacklesplus.tl/gshackles github.com/gshackles
13
C# To Go http://shackl.es/CSharpToGo
14
Market Share (US)
15
Platform Languages
16
Cross Platform Solutions and many more…
17
Spoiler Alert
18
Different Platforms are…Different !=
20
.NET to the Rescue!
21
What is Mono? Implementation of the.NET CLR Open source Cross platform Supports most of.NET 4.0 mono-project.com
22
MonoTouch Bindings to CocoaTouch.NET – LINQ, generics, etc (Moonlight) AOT compilation Linker Memory management Integrates with Interface Builder ios.xamarin.com
23
Mono for Android Wraps Java/Android API.NET – LINQ, generics, etc (Moonlight) Linker Visual Studio 2010 or MonoDevelop android.xamarin.com http://xamarin.com/androidbeta
24
Mono for Android Architecture Android/Managed Callable Wrappers JNI bridges to talk between Android and Mono
25
Mono for Android API.NET events replace listener interfaces Action replaces Runnable Enumerations Properties Attributes and tooling generate configuration Uses standard Android resource files
26
Why?
28
Sharing
29
Reusability Story UI C# Runtime Platform Silverlight Business Logic.NET WP7 iOS Mono Android MonoTouch Mono for Android
30
Platform Comparison UI Tooling – IDE – Designer – Emulator Multitasking / Lifecycle Storage – File system – Database Shared Resources
31
Comparison: Views WP7iOSAndroid Format XAMLXIBXML Screen PhoneApplicationPageUIViewControllerActivity Layout StackPanelN/A(manual)LinearLayout List ListBoxUITableViewListView List Item ListBox.ItemTemplateUITableViewCellView Data Source BindingUITableViewSourceBaseAdapter
32
Comparison: Navigation Windows Phone 7 NavigationService.Navigate( new Uri("/NextPage.xaml?id=42", UriKind.Relative))); iOS NavigationController.PushViewController( new NextController(42), true); Android var intent = new Intent(); intent.SetClass(this, typeof (NextActivity)); intent.PutExtra(id", 42); StartActivity(intent);
33
Code Sharing Techniques Link files Preprocessor directives #if MONOTOUCH Messaging (publish/subscribe) Abstraction Third party libraries – sqlite-net – TinyIoC / TinyMessenger – MonoMobile.Extensions
34
NYC Code Camp App
35
App Architecture Entities DataAccess Libraries Messaging ViewModels CC.Core.MonoTouch CC.Core.MonoAndroid CC.Core.WP7 CodeCamp.Core App.MonoTouch App.MonoAndroid App.WP7
36
Questions? 15% Discount - Expires 10/31 https://store.xamarin.com/?discount=NYC-Code-Camp-6
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.