nnug trondheim 30.09.2010 - windows phone 7

57
Windows Phone 7 Jonas Follesø NNUG Trondheim, 30. september 2010

Upload: jonas-folleso

Post on 01-Nov-2014

1.023 views

Category:

Technology


3 download

DESCRIPTION

Introduksjon til Windows Phone 7 som plattform. Presentert på NNUG møte i Trondheim 30.09.2010.

TRANSCRIPT

Page 1: NNUG Trondheim 30.09.2010 -  Windows Phone 7

Windows Phone 7

Jonas Follesø

NNUG Trondheim, 30. september 2010

Page 2: NNUG Trondheim 30.09.2010 -  Windows Phone 7

ABOUT ME

JONAS FOLLESØ[email protected]

http://jonas.follesoe.no

@follesoe

Page 3: NNUG Trondheim 30.09.2010 -  Windows Phone 7

AGENDA:- WP7 PLATFORM- PHONE APIs- TDD- BLEND 4- DEMOS!

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/2

07

92

78

7@

N0

0/2

24

86

23

39

1/

Page 4: NNUG Trondheim 30.09.2010 -  Windows Phone 7

WINDOWS PHONE 7

A FRESH START!

Page 5: NNUG Trondheim 30.09.2010 -  Windows Phone 7

XNA FOR GAMES

SILVERLIGHT FOR APPS

Page 6: NNUG Trondheim 30.09.2010 -  Windows Phone 7

KNOW SILVERLIGHT?

THEN YOU KNOW WP7!

Page 7: NNUG Trondheim 30.09.2010 -  Windows Phone 7

HELLO WORLD

DEMO

Page 8: NNUG Trondheim 30.09.2010 -  Windows Phone 7

METRO DESIGN

LANGUAGE

Page 9: NNUG Trondheim 30.09.2010 -  Windows Phone 7
Page 10: NNUG Trondheim 30.09.2010 -  Windows Phone 7
Page 11: NNUG Trondheim 30.09.2010 -  Windows Phone 7
Page 12: NNUG Trondheim 30.09.2010 -  Windows Phone 7
Page 13: NNUG Trondheim 30.09.2010 -  Windows Phone 7
Page 14: NNUG Trondheim 30.09.2010 -  Windows Phone 7

PIVOT CONTROL

Page 15: NNUG Trondheim 30.09.2010 -  Windows Phone 7

HUB CONTROL

Page 16: NNUG Trondheim 30.09.2010 -  Windows Phone 7

BLEND 4DEMO

Page 17: NNUG Trondheim 30.09.2010 -  Windows Phone 7

LAUNCHERS & CHOOSERS

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/m

ad

_hou

se_p

hoto

gra

ph

y/

44

40

87

13

80

/

• CameraCaptureTask• EmailAddressChooserTask• EmailComposeTask• MarketplaceDetailTask• MarketplaceHunTask• MarketplaceReviewTask• MarketplaceSearchTask• MediaPlayerLauncher• PhoneCallTask• PhoneNumberChooserTask• PhotoChooserTask• SaveEmailAddressTask• SavePhoneNumberTask• SearchTask• SmsComposeTask• WebBrowserTask

Page 18: NNUG Trondheim 30.09.2010 -  Windows Phone 7

LAUNCH BUILT IN APP WITH SOME DATA

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/2

86

34

33

2@

N0

5/4

05

47

66

77

0/

Page 19: NNUG Trondheim 30.09.2010 -  Windows Phone 7

private void smsCompose_Click(object sender, RoutedEventArgs e){ var smsCompose = new SmsComposeTask(); smsCompose.To = "97706660"; smsCompose.Body = "Hello NNUG!"; smsCompose.Show();}

Page 20: NNUG Trondheim 30.09.2010 -  Windows Phone 7

LAUNCH BUILT IN APP TO CHOOSE

SOME DATA

Page 21: NNUG Trondheim 30.09.2010 -  Windows Phone 7

private void choose_Click(object sender, RoutedEventArgs e){ var emailChooser = new EmailAddressChooserTask(); emailChooser.Completed += emailChooser_Completed; emailChooser.Show();}

private void emailChooser_Completed(object sender, EmailResult e){ if(e.TaskResult == TaskResult.OK) email.Text = e.Email;}

Page 22: NNUG Trondheim 30.09.2010 -  Windows Phone 7

CHOSER & LAUCHER

DEMO

Page 23: NNUG Trondheim 30.09.2010 -  Windows Phone 7

EXECUTION MODEL &

TOMBSTONING

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/9

81

09

48

@N

05

/15

83

50

67

87

/

Page 24: NNUG Trondheim 30.09.2010 -  Windows Phone 7

NO MULTI TASKING

BUT...

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/n

3p

tun

3r/

33

76

69

74

90

/

Page 25: NNUG Trondheim 30.09.2010 -  Windows Phone 7

FAST ACTIVATION &

DEACTIVATION

GIVES IMPRESSION OF

APP RUNNING IN

BACKGROUND

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/ci

rox/3

63

28

41

94

/

Page 26: NNUG Trondheim 30.09.2010 -  Windows Phone 7

PAGE STATE• Poisition of ScollViewer• Content of TextBox• State of other UI elements

• OnNavigatedTo & OnNavigatedFrom

Page 27: NNUG Trondheim 30.09.2010 -  Windows Phone 7

APP STATE• State not associated with

spesific page

• Managed by PhoneApplicationService

Page 28: NNUG Trondheim 30.09.2010 -  Windows Phone 7

PERSISTENT DATA

• Data shared by all instances of app

• Save and loaded from Isolated Storage

Page 29: NNUG Trondheim 30.09.2010 -  Windows Phone 7

TRANSIENT STATE

• Data for instance of application

• Stored in State dictionary

• Similar to cache

Page 30: NNUG Trondheim 30.09.2010 -  Windows Phone 7

Launching Running

Closing Deactivating Activating

Chooser/Task/Other

Page 31: NNUG Trondheim 30.09.2010 -  Windows Phone 7

PUSH NOTIFICATIONS

WHEN APP IS NOT RUNNING

Page 32: NNUG Trondheim 30.09.2010 -  Windows Phone 7

TWO TYPES OF

NOTIFICATIONS

Page 33: NNUG Trondheim 30.09.2010 -  Windows Phone 7

WP7 PUSH NOTIFICATIONS

Microsoft Push

Notification

Services

Your Web Applicatio

n

PUSH CLIENT

Notification Namespaces

Push Library

Your WP Application

1Open Channel

2 Hand off channel

URL

3 Pushmessage

4Push message

Page 34: NNUG Trondheim 30.09.2010 -  Windows Phone 7

PUSH NOTIFICATION

S DEMO

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/ko

zlosk

i/2

30

65

10

52

0/

Page 35: NNUG Trondheim 30.09.2010 -  Windows Phone 7

private void open_Click(object sender, RoutedEventArgs e){ var channel = HttpNotificationChannel.Find("NNUG");

if (channel == null) { channel = new HttpNotificationChannel("NNUG"); }

channel.ChannelUriUpdated += channel_ChannelUriUpdated; channel.ShellToastNotificationReceived += channel_ShellToastNotificationReceived; channel.Open();}

Page 36: NNUG Trondheim 30.09.2010 -  Windows Phone 7

private void channel_ShellToastNotificationReceived

(object sender, NotificationEventArgs e){ foreach (var text in e.Collection) output.Text += text + "\r\n";}

Page 37: NNUG Trondheim 30.09.2010 -  Windows Phone 7

ISOLATED STORAGE

FOR SIMPLE DATA STORAGE

Page 38: NNUG Trondheim 30.09.2010 -  Windows Phone 7

NOSQLFOR WP7?

Page 39: NNUG Trondheim 30.09.2010 -  Windows Phone 7

ISOLATED STORAGE

DEMO

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/om

arr

un

/46

72

53

12

53

/in

/ph

oto

stre

am

Page 40: NNUG Trondheim 30.09.2010 -  Windows Phone 7

ACCELEROMETER

DEMO

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/h

ow

zey/2

88

04

55

76

2/

Page 41: NNUG Trondheim 30.09.2010 -  Windows Phone 7

LOCATION AWARENESSIS KEY WHEN

ON THE GO

Page 42: NNUG Trondheim 30.09.2010 -  Windows Phone 7

SAME API IN .NET 4 &

WP7

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/p

hoto

gra

ham

/19

83

24

03

1/

Page 43: NNUG Trondheim 30.09.2010 -  Windows Phone 7

private void start_Click(object sender, System.Windows.RoutedEventArgs e){ var watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); watcher.PositionChanged += watcher_PositionChanged; watcher.Start();}

private void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e){ var location = e.Position.Location; var lat = location.Latitude; var lon = location.Longitude;}

Page 44: NNUG Trondheim 30.09.2010 -  Windows Phone 7

TDD

FUNDAMENTALPRACTICE

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/m

ad

_hou

se_p

hoto

gra

ph

y/

44

40

87

13

80

/

Page 45: NNUG Trondheim 30.09.2010 -  Windows Phone 7

TDDDEMO

Page 46: NNUG Trondheim 30.09.2010 -  Windows Phone 7

FLIGHTS NORWAY

MONITORARRIVALS AND

DEPARTURES

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/sv

en

werk

/2

18

18

49

28

0/

Page 47: NNUG Trondheim 30.09.2010 -  Windows Phone 7

RESTSERVICES

WITH FLIGHT INFORMATION

http://flydata.avinor.no/http://open.bekk.no/2009/12/13/hva-skjer-nar-man-gir-bort-flydata-gratis/

Page 48: NNUG Trondheim 30.09.2010 -  Windows Phone 7

MVVM

PATTERN FOR BINDABLE UI

Page 49: NNUG Trondheim 30.09.2010 -  Windows Phone 7

Data Model

VIEW

XAML

Code-BehindEvent

Handlers

APP LOGIC IN CODE BEHIND IS HARD TO TEST

AND MAINTAIN

Page 50: NNUG Trondheim 30.09.2010 -  Windows Phone 7

Data Model

VIEW

XAML

Code-Behind

VIEW MODEL

State + Operations

Change notification

Data-binding and commands

SEPARATE USINGMVVM

Page 51: NNUG Trondheim 30.09.2010 -  Windows Phone 7

MVVM SHOULD BE LIGHT WEIGHT

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/tr

eeh

ou

se1

97

7/2

89

24

17

80

5/

Page 52: NNUG Trondheim 30.09.2010 -  Windows Phone 7

http://mvvmlight.codeplex.com/

Page 53: NNUG Trondheim 30.09.2010 -  Windows Phone 7

FLIGHTS NORWAY

DEMO

Page 54: NNUG Trondheim 30.09.2010 -  Windows Phone 7

DEMO

WP7 TWITTER CLIENT

Page 55: NNUG Trondheim 30.09.2010 -  Windows Phone 7

SUMMARY:- WP7 PLATFORM- PHONE APIs- TDD- BLEND 4- DEMOS!

htt

p:/

/ww

w.fl

ickr

.com

/ph

oto

s/2

07

92

78

7@

N0

0/2

24

86

23

39

1/

Page 56: NNUG Trondheim 30.09.2010 -  Windows Phone 7

FORK ME ON GITHUB

http://github.com/follesoe/FlightsNorway

http://github.com/follesoe/FrontEnd2010

Page 57: NNUG Trondheim 30.09.2010 -  Windows Phone 7

BEKK CONSULTING ASSKUR 39, VIPPETANGEN. P.O. BOX 134 SENTRUM, 0102 OSLO, NORWAY.

WWW.BEKK.NO

Jonas FollesøSenior Consultant+47 977 06660

[email protected]@follesoe.no