Windows Phone 7 Unleashed Session 1

Post on 13-May-2015

1.337 views 0 download

Tags:

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.

Transcript of Windows Phone 7 Unleashed Session 1

7

Bruce D. KyleISV Architect EvangelistMicrosoft

Windows Phone 7

Unleashed

Session I

Session 1 : Getting Started

Session 1 Agenda

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

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

Philosophy

Customer

Design

Experience

Platform

The Windows Phone Design System Codename “Metro”

Integrated Experiences

PEOPLE OFFICE

MARKETPLACE

PICTURES MUSIC+VIDEO

GAMES

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

Session 1 : The Architecture

Building the Foundation

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

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

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

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

Session 1 : Page Types

Building the Foundation

Splash Screen Not really a page… Just a jpg

Single Page

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

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)

Panorama

Panorama

Panorama

Pivot

Pivot or Panorama??

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

Demo

Session 1 : Red Threads

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

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

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

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

Session 1 : MVVM

Model View View Model

MVVM MVVM stands for

Model View View-Model

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

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

MVVM

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

View ViewModel Model

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

reference

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)

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

TextBox1.Text = object.Name()

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

Cons of MVVM

• lack of standardization so everyone has own favor

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

View ViewModel Model

MVVM Light Toolkit

Third Party Support

• Prism• MVVM Light• Caliburn• Silverlight FX

Session 1 : Marketplace

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

Test Criteria Pillars

technical validation

policy validation

market validation

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

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

Device Unlock for Application Development

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

api

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

Live Tiles