+ All Categories
Home > Documents > 00 Cross Platform Development with Mono Connect at #wp7au.

00 Cross Platform Development with Mono Connect at #wp7au.

Date post: 12-Jan-2016
Category:
Upload: olivia-rodgers
View: 220 times
Download: 0 times
Share this document with a friend
28
00 Cross Platform Development with Mono Connect at http://is.gd/wpteched #wp7au
Transcript
Page 1: 00 Cross Platform Development with Mono Connect at  #wp7au.

00

Cross Platform Development with Mono

Connect at http://is.gd/wpteched

#wp7au

Page 2: 00 Cross Platform Development with Mono Connect at  #wp7au.

Cross Platform Development with Mono

Nick Randolph

WPH331

Page 3: 00 Cross Platform Development with Mono Connect at  #wp7au.

Agenda

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

iOS Android Windows Phone / Windows 8

Separation of concerns with MVVM

Page 5: 00 Cross Platform Development with Mono Connect at  #wp7au.

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

Page 6: 00 Cross Platform Development with Mono Connect at  #wp7au.

Application Platform Choices

UXFeatures

Cost

Native

Web Site

Web App

Native 1 or 2

Hybrid

Mono

Page 7: 00 Cross Platform Development with Mono Connect at  #wp7au.

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)

Page 8: 00 Cross Platform Development with Mono Connect at  #wp7au.

.NET Framework and Mono

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

Windows Microsoft .NET FX Other platforms Mono

Page 9: 00 Cross Platform Development with Mono Connect at  #wp7au.

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

Page 10: 00 Cross Platform Development with Mono Connect at  #wp7au.

Windows Phone

Navigation Pages Uri based navigation with backstack

Design Layout in XAML Expression Blend

Page Lifecycle Application Events Page Methods

Page 11: 00 Cross Platform Development with Mono Connect at  #wp7au.

demo

Windows Phone

Design in Expression BlendWire up events/code in Visual Studio

Page 12: 00 Cross Platform Development with Mono Connect at  #wp7au.

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)

Page 13: 00 Cross Platform Development with Mono Connect at  #wp7au.

demo

MonoTouch

MonoDevelop + XcodeOverview of Design and Development Environment

Page 14: 00 Cross Platform Development with Mono Connect at  #wp7au.

Android

Navigation Activities + Views Activities launched as Intents

Design Layout is stored in axml MonoDevelop/VS Integrated Designer

Lifecycle Actvities events

Page 15: 00 Cross Platform Development with Mono Connect at  #wp7au.

demo

Mono for Android

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

Page 16: 00 Cross Platform Development with Mono Connect at  #wp7au.

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

Page 17: 00 Cross Platform Development with Mono Connect at  #wp7au.

demo

Windows Phone DataBinding

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

Page 18: 00 Cross Platform Development with Mono Connect at  #wp7au.

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

Page 19: 00 Cross Platform Development with Mono Connect at  #wp7au.

demo

Navigating between ViewModels

Page 20: 00 Cross Platform Development with Mono Connect at  #wp7au.

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

Page 21: 00 Cross Platform Development with Mono Connect at  #wp7au.

demo

Dispatcher

Page 22: 00 Cross Platform Development with Mono Connect at  #wp7au.

Device features

Devices expose similar features Contacts, Camera, Location….

Need platform specific code to access them Xamarin.Mobile

Page 23: 00 Cross Platform Development with Mono Connect at  #wp7au.

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

Page 24: 00 Cross Platform Development with Mono Connect at  #wp7au.

demo

Device Features and Third Party ComponentsXamarin.MobileInfragistics iOS Grid

Page 25: 00 Cross Platform Development with Mono Connect at  #wp7au.

Ramping up for Windows Phone 8

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

Page 26: 00 Cross Platform Development with Mono Connect at  #wp7au.

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

Page 27: 00 Cross Platform Development with Mono Connect at  #wp7au.

Track Resources

http://dev.windowsphone.com

http://wp.msdeveloper.com.au

http://windowsteamblog.com/windows_phone

http://wpdownunder.com

Page 28: 00 Cross Platform Development with Mono Connect at  #wp7au.

© 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.


Recommended