50
7 Bruce D. Kyle ISV Architect Evangelist Microsoft Windows Phone 7 Unleashed Session I

Windows Phone 7 Unleashed Session 1

Embed Size (px)

DESCRIPTION

Special thanks to Daniel Egan. This presentation provides an introduction to Windows Phone 7, helps developers decide which user controls (Pivot, Panorama), user interface concerns, and step to get your app in Marketplace.

Citation preview

Page 1: Windows Phone 7 Unleashed Session 1

7

Bruce D. KyleISV Architect EvangelistMicrosoft

Windows Phone 7

Unleashed

Session I

Page 2: Windows Phone 7 Unleashed Session 1

Session 1 : Getting Started

Page 3: Windows Phone 7 Unleashed Session 1

Session 1 Agenda

WP7 – Phone Overview Application Architecture Application Life cycle Hardware Foundation Application Bar Panorama and Pivot Red Threads MVVM Marketplace

Page 4: Windows Phone 7 Unleashed Session 1

A different kind of phone,designed for a life in motion

Philosophy

Customer

Design

Experience

Platform

Page 5: Windows Phone 7 Unleashed Session 1
Page 6: Windows Phone 7 Unleashed Session 1

The Windows Phone Design System Codename “Metro”

Page 7: Windows Phone 7 Unleashed Session 1

Integrated Experiences

PEOPLE OFFICE

MARKETPLACE

PICTURES MUSIC+VIDEO

GAMES

Page 8: Windows Phone 7 Unleashed Session 1

Standardized Hardware Foundation

Capacitive touch4 or more contact points

SensorsA-GPS, Accelerometer, Compass, Light, Proximity

Camera5 mega pixels or more, flash required, camera button required

MultimediaCommon detailed specs, Codec acceleration

Memory256MB RAM or more, 8GB Flash or more

GPUDirectX 9 acceleration

CPUARMv7 Cortex/Scorpion or better

800

WV

GA

/ 4

80 H

VG

A

480 WVGA / 320 HVGA

Hardware buttons | Start, Search, Back

Page 9: Windows Phone 7 Unleashed Session 1

Session 1 : The Architecture

Building the Foundation

Page 10: Windows Phone 7 Unleashed Session 1

Software Architecture

KernelHardware BSP

App Model UI Model Cloud Integration

Applications

App managementLicensingChamber isolationSoftware updates

Shell frame Session managerDirect3DCompositor

Xbox LIVEBingLocationPush notificationsWindows Live ID

Your App UI and logic

A-GPS Accelerometer Compass Light ProximityMedia Wi-Fi Radio Graphics

SecurityNetworkingStorage

Frameworks

Silverlight XNAHTML/

JavaScriptCLR

Hardware Foundation

Page 11: Windows Phone 7 Unleashed Session 1

Windows Phone Microsoft confidential.

Windows Phone 7 Frameworks Details

Common Base Class Library

Collections ComponentModel Configuration

DiagnosticsReflection IO

Security Threading

Runtime Resources Globalization TextLocation Net

ServiceModel Linq

Application Object

Silverlight Presentation and Media

XNA Frameworks for Games

Windows Phone Frameworks

NavigationShapes Markup Media

Controls Drawing IsolatedStorage

AudioMedia GraphicsInput

Drawing GamerServices

Content

PhoneApplicationPage

PushNotification

WebBrowserControl

SensorsPhoneApplicationFra

me

CameraDevice

IntegrationLaunchers &

ChoosersWindows Phone

Controls

Page 12: Windows Phone 7 Unleashed Session 1

Cloud Integration

• Built-in user experiences and APIs integrated with key Microsoft services• Familiar API frameworks for interacting with existing Web 2.0 services• Rich support for incorporating custom web services into app-specific experiences

Microsoft Services

Existing Web Services

Windows Phone

Cloud integration client services

Frameworks

Your Web Service

Notification ServiceLocation Service

Custom Web Service

Windows Phone

Application

Page 13: Windows Phone 7 Unleashed Session 1

Sessions and back stackGroups together sequences of

pages corresponding to a user’s activity across apps

UI Model: Familiar Web Concepts

Shell frameRequests pages, renders UI,

and handles navigation across apps

Phone applicationProvides UI as XAML pages

connected into cross-app flows by URI’s

History and tabsGroups together sequences of HTTP resources corresponding to a user’s activity across sites

Web browserRequests HTTP resources, renders them, and handles navigation across sites

Web applicationProvide media represented as HTTP resources linked by URL’s

App bar

System tray

Page 14: Windows Phone 7 Unleashed Session 1

Session 1 : Page Types

Building the Foundation

Page 15: Windows Phone 7 Unleashed Session 1

Splash Screen Not really a page… Just a jpg

Page 16: Windows Phone 7 Unleashed Session 1

Single Page

Page 17: Windows Phone 7 Unleashed Session 1

Application Bar Automatically added to new page

But commented out Can be done in XAML or code behind Two Parts

ApplicationBarIconButton (Limit 4) ApplicationBarMenuItem

You can set the opacity (0.0 – 1.0) Automatically Rotates and Adjusts

Page 18: Windows Phone 7 Unleashed Session 1

Application Bar

Best Practices Use instead of your own menu

system Use the default system theme color Use Opacity of .0 , .05, 1 If Opacity is < 1 Screen is Full :

Otherwise Screen will be shorter Do not use an Icon button for Back Don’t use more than 5 Menu items

( between 14 and 20 characters)

Page 20: Windows Phone 7 Unleashed Session 1

Panorama

Page 21: Windows Phone 7 Unleashed Session 1

Panorama

Page 22: Windows Phone 7 Unleashed Session 1

Panorama

Page 23: Windows Phone 7 Unleashed Session 1

Pivot

Page 25: Windows Phone 7 Unleashed Session 1

Pivot or Panorama??

Page 26: Windows Phone 7 Unleashed Session 1

Getting Started• Orientation• Keyboard Input• Application Bar• Panorama• Pivot• Splash Screen

Demo

Page 27: Windows Phone 7 Unleashed Session 1

Session 1 : Red Threads

Page 28: Windows Phone 7 Unleashed Session 1

Red Threads Optimize for “life maximizers” Red Threads

A thread or a theme that runs throughout the entire user experience

Three Red Threads Personal Relevant Connected

Page 29: Windows Phone 7 Unleashed Session 1

Red Threads

Personal Your Day, your way Present information that is

pertinent to user Consider this almost as if every

WP7 application should be like a dashboard the filters information down to your role

Page 30: Windows Phone 7 Unleashed Session 1

Red Threads

Relevant Your people, your location Show information pertinent to

the environment the user is currently in

An example would be a locator for sporting events around the user based on GPS

Page 31: Windows Phone 7 Unleashed Session 1

Red Threads

Connected Your stuff, your piece of mind Application should be able to

interact with networked information (Cloud, online services) BUT not be dependent on this

Make sure the user experience is high even in a disconnected state

Page 32: Windows Phone 7 Unleashed Session 1

Session 1 : MVVM

Model View View Model

Page 33: Windows Phone 7 Unleashed Session 1

MVVM MVVM stands for

Model View View-Model

Page 34: Windows Phone 7 Unleashed Session 1

What's MVVM?

• an architectural pattern created by John Gossman from WPF team

• is a variation of MVC pattern• is similar to Martin Fowler’s

PresentationModel pattern• WPF Data Binding & Commanding

View ViewModel Model

Page 35: Windows Phone 7 Unleashed Session 1

Motivation and benefits

• Testabiltiy ( ViewModel is easier to unit test than code-behind or event driven code)

• Clear separation between User Experience designer and developer

• Increases the "Blendability" of your view• Model never needs to be changed to support changes to the view• ViewModel rarely needs to be changed to support changes to the

view• No duplicated code to update views

Page 36: Windows Phone 7 Unleashed Session 1

MVVM

• View knows ViewModel• ViewModel knows Models• But not vice versa.

View ViewModel Model

Page 37: Windows Phone 7 Unleashed Session 1

Model Typical class that covers a database Could be a WCF Service and its client

reference

Page 38: Windows Phone 7 Unleashed Session 1

ViewModel Provides data to and from the View Responds to both the View and the

Model Informs the View of changes in the

data Reusable (at least much more than

code behind a form)

Page 39: Windows Phone 7 Unleashed Session 1

ViewModel Knows nothing about the View Does not “push” data into the view

TextBox1.Text = object.Name()

Page 40: Windows Phone 7 Unleashed Session 1

View Uses Binding to “subscribe” to the

ViewModel Interprets business data and state of

ViewModel to the human Nothing but Presentation - XAML No or minimal code-behind

Page 41: Windows Phone 7 Unleashed Session 1

Cons of MVVM

• lack of standardization so everyone has own favor

• For simple UI, M-V-VM can be overkill

View ViewModel Model

Page 42: Windows Phone 7 Unleashed Session 1

MVVM Light Toolkit

Page 43: Windows Phone 7 Unleashed Session 1

Third Party Support

• Prism• MVVM Light• Caliburn• Silverlight FX

Page 44: Windows Phone 7 Unleashed Session 1

Session 1 : Marketplace

Page 45: Windows Phone 7 Unleashed Session 1

Application Marketplace

Enhanced Discovery• Easy to find great

applications, games• Fun to browse the

marketplace

Simple, Reliable Acquisition• Try before you buy• Buying and downloading

content is a breeze• Payment flexibility

(MO billing and credit card)

• Easy application updates

Page 46: Windows Phone 7 Unleashed Session 1

Test Criteria Pillars

technical validation

policy validation

market validation

http://go.microsoft.com/?linkid=9730558

Page 47: Windows Phone 7 Unleashed Session 1

Publishing Process

Application and Game Submission

Sign

Windows Phone 7 Deployment Service

.xap

.dll

Appsubmission

AppPackaging &Validation

.xap

.dll

.xap

.dll

.xap

.dll

ApplyTest

Criteria

Marketplace

AddMetadata

.xap

.dll

.xap

.dll

.xap

.dll

.xap

.dll

Upload Application (XAP)Meta Data (Icons, descriptions, icons)Check for size (< 500 mb)Recommended size < 20 MB for OTA

Check Application code (No Native API)Check if Type SafeNo Debug SymbolsCheck for Phone CapabilitiesCheck languages

Add Metadata and repackage application.

Check the app works (does it crash, hang, etc..)Start splash in 1 secondAccept user input 19 secondsTest for malicious code

Sign XAP and appears on Marketplace

Page 48: Windows Phone 7 Unleashed Session 1

Device Unlock for Application Development

Unlock retail devices for developmentManage registered devices through thedeveloper portal3 devices/year1 device/year students

api

Page 49: Windows Phone 7 Unleashed Session 1

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

Page 50: Windows Phone 7 Unleashed Session 1

Live Tiles