Architecting & Developing for Windows Phone Philipp Bauknecht - - PowerPoint PPT Presentation

architecting
SMART_READER_LITE
LIVE PREVIEW

Architecting & Developing for Windows Phone Philipp Bauknecht - - PowerPoint PPT Presentation

Architecting & Developing for Windows Phone Philipp Bauknecht CEO & Software Architect medialesson GmbH Session Outline WP7 Basics Design Patterns Unit T ests Application Lifecycle Localization Coming up:


slide-1
SLIDE 1

Architecting & Developing for Windows Phone

Philipp Bauknecht CEO & Software Architect medialesson GmbH

slide-2
SLIDE 2

Session Outline

  • WP7 Basics
  • Design Patterns
  • Unit T

ests

  • Application Lifecycle
  • Localization
  • Coming up: Mango!
slide-3
SLIDE 3

WP7 Basics

slide-4
SLIDE 4

Hardware Foundation

Capacitive touch

4 or more contact points

Sensors

A-GPS, Accelerometer, Compass, Light, Proximity, Gyro

Camera

5 mega pixels or more

Multimedia

Common detailed specs, Codec acceleration

Memory

256MB RAM or more, 8GB Flash or more

GPU

DirectX 9 acceleration

CPU

Qualcomm MSM7x30, MSM8x55 800Mhz or higher

Hardware buttons | Back, Start, Search

slide-5
SLIDE 5

Development Platforms

Apps

  • Silverlight 3.x
  • XAML UI Framework
  • .NET
  • Metro Design
  • Rapid Application Development

Games

  • Performance for 2D & 3D games
  • Mature technology for PC & XBOX 360
slide-6
SLIDE 6

Design Patterns

slide-7
SLIDE 7

Why use design patterns?

  • Separation of concerns
  • Colaboration
  • Blendability
  • Lookless view logic
  • No duplicated code to update views
  • T

estability

slide-8
SLIDE 8

MVVM – Model View ViewModel

  • It„s just pattern!
  • Build into Silverlight & WPF
  • Can be extended with frameworks & helpers
slide-9
SLIDE 9

MVVM pattern

Model View ViewModel

DataBinding

slide-10
SLIDE 10

MVVM communication

View ViewModel

DataBinding Commands Messages

Model

slide-11
SLIDE 11

MVVM communication

View ViewModel View ViewModel View ViewModel

Messages Messages + callback

slide-12
SLIDE 12

MVVM commands

  • “Point of entry” for a method
  • Can be data bound
  • ICommand interface
  • Execute method
  • CanExecute method
  • CanExecuteChanged event
slide-13
SLIDE 13

MVVM messaging

  • Communication between ViewModels and

Views  loose coupling

  • Should be simple by default
  • Possible to open filtered channels
  • To a target Type (or an Interface)
  • With a Token
slide-14
SLIDE 14

Demo

slide-15
SLIDE 15

Unit T ests

slide-16
SLIDE 16

Demo

slide-17
SLIDE 17

Application Lifecycle

slide-18
SLIDE 18

Activated Event User completes the launcher/ chooser or presses the back button Deactivated Event

Application Lifecycle - T

  • mbstoning
  • r

Closing Event Launcher, chooser, start button or lock screen Back Button Running Launching Event User launches your appliation

slide-19
SLIDE 19

Demo

slide-20
SLIDE 20

Localization

slide-21
SLIDE 21

Demo

slide-22
SLIDE 22

Coming up: Mango!

slide-23
SLIDE 23

New Features

slide-24
SLIDE 24

Image by bangdoll@flickr

Multitasking XNA Silverlight Integration Performance Database Access Integration with the phone Enhanced Phone Framework Marketplace Services Sockets Complete the push notification and Tile experience

slide-25
SLIDE 25

Multitasking Themes

  • Fast Application Resume
  • Ability to resume applications that the user has recently used
  • Apps stay in memory unless memory is needed for other apps
  • *Every* app should do this
  • Background Agents
  • Ability to run your code in the background
  • Audio, Timed or on Idle
  • Notifications
  • Ability to create alarms and reminders
  • UX and behavior is the same as the phone Alarms

and Calendar items

  • Background Transfer Service
  • Application can queue up transfers in the background
slide-26
SLIDE 26

Integrating with the Phone

Camera

Access to the pipeline No need to capture the image to flash Networking Sockets Connection Manager control

Sensors

GPS

Accelerometer

Compass Gyro Spatial Framework

Data

SQL CE Phone Contacts Phone Calendar

Launchers & Choosers

Bing Maps E-mail Phone Number Address Chooser

Controls

Frame and Page Navigation improvements

Performance Open Source

  • n CodePlex
slide-27
SLIDE 27

Expanding the Phone Framework

Push Notifications

Deep Toast More control over notifications

Phone Extras

Search Music Photos

Tiles

Signature user experience for Windows Phone Complete Framework Multiple Tiles

slide-28
SLIDE 28

Silverlight Investments

Silverlight 4

RichTextBox Implicit Styles Clipboard API

Performance

Memory Management Input on Render Thread Profiler Instrumentation

International

Reading/Writing

  • f all Mango

Languages Big deal if you are writing an app for Asia

slide-29
SLIDE 29
slide-30
SLIDE 30

Better T

  • oling
slide-31
SLIDE 31

T

  • ols Investments

.NET

Performance Generational GC Serialization SIMD – Vector Profiler

Tools

New Template for Multitasking Debugging Background Agents Isolated Storage Explorer Profiler

Emulator

Sensors and Location in Emulator

Multi Touch in Emulator Screen shot Ingestion Tool

slide-32
SLIDE 32

Greater Reach

slide-33
SLIDE 33

Creation & Commerce

Now supporting 16 more languages

Helló világ Hallo, verden Hallo mensen Hej verden Olá mundo Hej världen 전 세계 여러분 안녕하세요 Cześć ludzie Всем привет ハローワー ルド 世界您好 Ahoj světe Moi maailma Γεια σου κόσμε

slide-34
SLIDE 34

More countries for app creation…from 30 More countries for app creation…from 30 to 38

Creation & Commerce

slide-35
SLIDE 35

More countries for app commerce…from 16

Creation & Commerce

More countries for app commerce…from 16 to 35

slide-36
SLIDE 36

Q&A

slide-37
SLIDE 37
  • bauknecht@medialesson.de
  • @grillphil
  • facebook.com/philipp.bauknecht
  • de.linkedin.com/in/philippbauknecht

Let„s stay in touch!