00 cross platform development with mono connect at #wp7au

Post on 12-Jan-2016

221 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

00

Cross Platform Development with Mono

Connect at http://is.gd/wpteched

#wp7au

Cross Platform Development with Mono

Nick Randolph

WPH331

Agenda

Mobile Landscape Cross platform choices .NET Framework and Mono Platform architectures

iOS Android Windows Phone / Windows 8

Separation of concerns with MVVM

Cross Platform Choices

Build native for every platform Build for 1 or 2 platforms

eg Instagram: iOS and Android only Build mobile web site Build mobile web application Build hybrid application

eg PhoneGap Build for reuse

eg Mono

Application Platform Choices

UXFeatures

Cost

Native

Web Site

Web App

Native 1 or 2

Hybrid

Mono

iOS• iPhone, iPad• Objective-C• C/C++• XCode

(Interface Builder)

Android• Phone, Slate• Java • C/C++• Eclipse

(Android designer)

Platforms and Technologies

Windows• Windows Phone,

Windows 8• XAML/C#• C/C++, HTML5• Visual Studio

(Blend)

.NET Framework and Mono

.NET Abstraction across the underlying platformCode compiled to MSIL with runtime JIT

Windows Microsoft .NET FX Other platforms Mono

Mono for iOS and Android

Derivatives of core Mono project Xamarin

MonoDevelop (OSX only) Xcode integration

MonoDevelop (OSX or Windows)Visual Studio integration (Windows

only)Android SDK integration

Windows Phone

Navigation Pages Uri based navigation with backstack

Design Layout in XAML Expression Blend

Page Lifecycle Application Events Page Methods

demo

Windows Phone

Design in Expression BlendWire up events/code in Visual Studio

iOS

Navigation ViewControllers + Views Push new instances onto navigation controller

Design Layout is stored in nib/xib Interface Builder

Lifecycle Initialisation methods (eg awakeFromNib) Methods for page events (eg viewDidAppear)

demo

MonoTouch

MonoDevelop + XcodeOverview of Design and Development Environment

Android

Navigation Activities + Views Activities launched as Intents

Design Layout is stored in axml MonoDevelop/VS Integrated Designer

Lifecycle Actvities events

demo

Mono for Android

Visual Studio + Mono for Android PluginOverview of Design and Development Environment

Separation of Concerns

Visual v's Logic division (MVVM) View how the content is presented ViewModel what content is being presented Model how data is stored, and accessed

demo

Windows Phone DataBinding

Separation of design (Blend) from code (Visual Studio)

Navigation

Navigation typically tied to platform implementation

View Implements actual navigation operation

ViewModel Invoke navigation

Need an abstraction (eg INavigator) that permits platform specific implementations

demo

Navigating between ViewModels

Hey, get off my UI Thread

User Experience is Paramount Don’t do long running operations on UI Thread

Background operations Callback when done

Again, platform specific mechanism for re-joining the UI Thread

Need an abstraction (eg IDispatcher) that permits platform specific implementations

demo

Dispatcher

Device features

Devices expose similar features Contacts, Camera, Location….

Need platform specific code to access them Xamarin.Mobile

Third party components

Many third party component manufacturers Telerik, Infragistics, DevExpress

Components are platform specific (and should be!!) Need to be able to integrate into mono applications Need to generate bindings to incorporate native

components

demo

Device Features and Third Party ComponentsXamarin.MobileInfragistics iOS Grid

Ramping up for Windows Phone 8

Windows Phone Developer Bloghttp://windowsteamblog.com/windows_phone

Related Content

WPH331, WPH234, WPH322, WPH323, WPH332, WPH333

Exhibition Hall – demo pods

70-599 Pro: Designing and Developing Windows Phone 7 Applications

Find Me Later At @btroam #wp7au

Track Resources

http://dev.windowsphone.com

http://wp.msdeveloper.com.au

http://windowsteamblog.com/windows_phone

http://wpdownunder.com

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the

part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

top related