51
Dev WP7 – IRL Johan Lindfors

Develop for WP7 IRL

Embed Size (px)

DESCRIPTION

A presentation delivered at DevSum11 in Stockholm 2011-05-18. Topic is around developing Windows Phone 7 applications and what I've learned in the process of building and publishing both XNA and Silverlight applications.

Citation preview

Page 1: Develop for WP7 IRL

Dev WP7 – IRL

Johan Lindfors

Page 2: Develop for WP7 IRL

agenda

• inspiration

• planering

• design

• utveckling

• publicering

Page 3: Develop for WP7 IRL

phoneBeat

Page 4: Develop for WP7 IRL
Page 5: Develop for WP7 IRL

file | new start inspiration Customer Design Experience Plaform

Page 6: Develop for WP7 IRL
Page 7: Develop for WP7 IRL

www.windowsphoneapplist.com

Page 8: Develop for WP7 IRL

Design Inspiration Utveckling

Page 9: Develop for WP7 IRL

Design Inspiration Utveckling

Page 10: Develop for WP7 IRL

file | new start inspiration planering Design Experience Plaform

Page 11: Develop for WP7 IRL

cocktail flow

Page 12: Develop for WP7 IRL

facebook

Page 13: Develop for WP7 IRL

usa today

Page 14: Develop for WP7 IRL

runkeeper

Page 15: Develop for WP7 IRL

harbor master

Page 16: Develop for WP7 IRL
Page 17: Develop for WP7 IRL

file | new Start inspiration planering design Experience Plaform

Page 18: Develop for WP7 IRL

“Marketing by not asking any questions

first!“

– Percy Nilegård

Page 19: Develop for WP7 IRL

ho

hen

hy

here

hat

Page 20: Develop for WP7 IRL

planera & fokusera

• gör en sak riktigt, riktigt bra

• inga kruseduller

• förhindra misstag

• ”don’t make me think”

Page 21: Develop for WP7 IRL
Page 22: Develop for WP7 IRL

Who – personer som tränar

What – registrera träningstillfällen

When – efter att de tränat klart

Where – på gymmet

Why – för att dela med sig och tävla

Page 23: Develop for WP7 IRL

file | new Start Philosophy planering design utveckling Plaform

Page 24: Develop for WP7 IRL

metro

• design för utvecklare

• struktur, enkelhet, innehåll

• text

• rörelse

Page 25: Develop for WP7 IRL

pivot eller panorama?

Page 26: Develop for WP7 IRL

www.jeff.wilcox.name/2011/03/metro-design-guide-v1/

Page 27: Develop for WP7 IRL
Page 28: Develop for WP7 IRL
Page 29: Develop for WP7 IRL
Page 30: Develop for WP7 IRL
Page 31: Develop for WP7 IRL
Page 32: Develop for WP7 IRL
Page 33: Develop for WP7 IRL

file | new Start Philosophy Customer design utveckling publicering

Page 34: Develop for WP7 IRL

mvvm

• prism

• caliburn micro

• mvvmlight

• ultralight.mvvm

Page 35: Develop for WP7 IRL

demo

Page 36: Develop for WP7 IRL

nätverk

• asynkrona anrop

• webclient eller httpWebRequest

• async ctp

Page 37: Develop for WP7 IRL

demo

Page 38: Develop for WP7 IRL

lagra data

• isolatedstorage

• serialisering

• xml/json/binärt

• inställningar

Page 39: Develop for WP7 IRL

demo

Page 40: Develop for WP7 IRL

lokalisering

• cultureinfo

• resurser

• kod

• xaml

Page 41: Develop for WP7 IRL

demo

Page 42: Develop for WP7 IRL

prestanda

• uppfattad vs verklig

• använd rörelse

• trådhantering

• analysera och optimera

• testa på en riktig enhet

Page 43: Develop for WP7 IRL

file | new Start Philosophy Customer Design utveckling publicering

Page 44: Develop for WP7 IRL

marketplace

• testa, testa, testa

• lokal struktur

• uppdateringar

• auto-publicering

Page 45: Develop for WP7 IRL
Page 46: Develop for WP7 IRL

tripeaks solitaire

• fabrication games

• äkta 3D

• all kod i objective-c

Page 47: Develop for WP7 IRL

-(BOOL) animate { if([self animation] == nil) { [self draw]; return NO; } else { BOOL animationDone = [[self animation] animate]; [self draw]; if (animationDone) { x += [[self animation] currentX]; y += [[self animation] currentY]; z += [[self animation] currentZ]; rotation += [[self animation] currentRotation]; [animations removeObjectAtIndex:0]; } return animationDone; } }

Page 48: Develop for WP7 IRL

public bool Animate() { if (this.Animation == null) { this.Draw(); return false; } else { bool animationDone = this.Animation.Animate(); this.Draw(); if (animationDone) { x += this.Animation.CurrentX; y += this.Animation.CurrentY; z += this.Animation.CurrentZ; rotation += this.Animation.CurrentRotation; animations.RemoveAt(0); } return animationDone; } }

Page 49: Develop for WP7 IRL

public bool Animate(GraphicsDevice graphics, BasicEffect effect) { if (this.Animation == null) { this.Draw(graphics, effect); return false; } else { bool animationDone = this.Animation.Animate(); this.Draw(graphics, effect); if (animationDone) { x += this.Animation.CurrentX; y += this.Animation.CurrentY; z += this.Animation.CurrentZ; rotation += this.Animation.CurrentRotation; animations.RemoveAt(0); } return animationDone; } }

Page 50: Develop for WP7 IRL