SlideShare a Scribd company logo
1 of 54
Philip Wheat Architect Evangelist -Startups  Microsoft Corporation philwh@microsoft.com An Introduction to Windows Phone 7 Development Juan De Abreu VP -Delivery Director Common Sense jdeabreu@getcs.com
#CSwebinar
Agenda Introduction Overview of the Phone Demo like crazy! Marketplace Q&A #CSwebinar
A different kind of phone, designed for a life in motion Philosophy Customer Design Experience Platform #CSwebinar
Different, for good reasons Smart Design Integrated Experiences Photo by: Andrew Butitta, Founder, Talisman Digital Photography #CSwebinar
#CSwebinar
Integrated experiences  OFFICE  PICTURES  MUSIC+VIDEO  MARKETPLACE  GAMES PEOPLE #CSwebinar
WINDOWS PHONE 7 Let’s see the phone already! demo #CSwebinar
Hardware Architecture Capacitive touch 4 or more contact points Sensors A-GPS, Accelerometer, Compass, Light, Proximity Camera 5 mega pixels or more, flash required, camera button required 800 WVGA / 480 HVGA Multimedia Common detailed specs, Codec acceleration Memory 256MB RAM or more, 8GB Flash or more GPU DirectX 9 acceleration CPU ARMv7 Cortex/Scorpion or better Hardware buttons | Start, Search, Back 480 WVGA / 320 HVGA #CSwebinar
Elements of the application platform Tools Runtime – On “Screen” Phone Emulator Sensors Media Data Location Samples Documentation Xbox LIVE Notifications Phone Guides Community .NET Framework managed code sandbox Packaging and Verification Tools SCREEN CLOUD Portal Services Cloud Services Notifications App Deployment Registration Marketplace Validation MO and CC Billing Location Identity Feeds Certification Business Intelligence Maps Social Publishing Update Management #CSwebinar
Windows Phone 7 Framework Windows Phone Frameworks Camera Device Integration Launchers & Choosers Windows Phone Controls PhoneApplicationPage PushNotification WebBrowserControl Sensors PhoneApplicationFrame Silverlight Presentation and Media XNA Frameworks for Games Controls Drawing IsolatedStorage Drawing GamerServices Navigation Shapes Markup Media Audio Media Graphics Content Input Application Object Common Base Class Library Diagnostics Reflection IO Runtime Resources Globalization Text Location Net Collections ComponentModel Configuration Security Threading ServiceModel Linq #CSwebinar
XAML Fundamentals #CSwebinar
Resources and Styles 4 Elements have a dictionary of resources identified by Key Can store arbitrary objects, not just UI objects {StaticResource} XAML directive does hierarchical lookup Code can access local element’s Resources dictionary resources styles Styles contain setters for Properties and Values Styles can derive from other styles Styles are applied explicitly by key or implicitly Can be changed dynamically to theme an application #CSwebinar
Built-in animation system Animation is driven by Storyboards Storyboard DoubleAnimation ColorAnimation PointAnimation etc animations can apply easing functions ~10 built-in (e.g. sine) + custom #CSwebinar
Common databinding system Elements have a DataContext Resolution of declarative bindings is done by hierarchically examining an element’s DataContext Grid Button #CSwebinar
Common databinding system #CSwebinar
Application Structure #CSwebinar
Application structure Applications are built like web sites Functionality is split into pages Forward navigation via links Backward navigation via Back Users can navigate across different applications Previous applications (pages) are in the back stack #CSwebinar
UI Model: Familiar Web Concepts Phone application Provides UI represented as XAML pages connected into cross-app flows by URI’s Web application Provide media represented as HTTP resources linked by URL’s Shell frame Requests pages, renders UI, and handles navigation across apps Web browser Requests HTTP resources, renders them, and handles navigation across sites Sessions and back stack Groups together sequences of pages corresponding to a user’s activity across apps History and tabs Groups together sequences of HTTP resources corresponding to a user’s activity across sites #CSwebinar
Frame and Page PhoneApplicationFrame Exposes the screen orientation property Exposes a client area where pages are rendered Reserves space for the system tray and application bar Receives Obscured / Unobscured PhoneApplicationPage Fills the entire content region of the frame Optionally surfaces its own application bar Handles Orientation  NavigatedTo  and NavigatedFrom #CSwebinar
Page Navigation Forward Uri uri = new Uri(“/Page2.xaml”,UriKind.Relative); NavigationService.Navigate(uri); Back NavigationService.GoBack(); Hardware Back Button Handle BackKeyPress, OnBackKeyPressthen Navigate to where you would like*** #CSwebinar
APPLICATION STRUCTURE Page navigation framework demo #CSwebinar
Controls #CSwebinar
Some old friends… Border Button Canvas CheckBox Grid HyperlinkButton Image ListBox MediaElement MessageBox ProgressBar RadioButton ScrollViewer TextBlock TextBox WebBrowser GestureServiceListener ContextMenu DatePicker TimePicker ToggleSwitch WrapPanel #CSwebinar
… and some new ones! Panorama Bing Map Pivot #CSwebinar
Controls support touch Mouse Events  Automatically converted for you SIP and WebBrowser control have gestures ScrollViewer Just like Silverlight So you now have FLICK and PAN for free! Raw  Gestures Manipulations #CSwebinar
Input #CSwebinar
Text input TextBox integrates with the software keyboard Software keyboard supports input scoping Key InputScopes:  EmailNameOrAddress Text Url Number Time TelephoneNumber PasswordBox has a 1 second delay #CSwebinar
INPUT SCOPES Utilizing the software input panel  a.k.a. the SIP a.k.a. the on-screen keyboard demo #CSwebinar
Sensors #CSwebinar
Accelerometer +Y Measures force applied on each axis over time Simple API 	As easy as X, Y, Z! -Z +X +Z -Y #CSwebinar
Location: Sources of Location GPS + Accuracy -  Power -  Speed -  Indoors -  Accuracy + Power + Speed -  Wilderness WiFi Location services +/- Accuracy +/- Power +/- Speed +/- Urban areas Cell towers #CSwebinar
Location services Smart device + cloud service Balance accuracy with time & power Consistent API across platforms No Emulator Support Reactive extensions for mocking #CSwebinar
SENSORS Accelerometer Location Services demo #CSwebinar
Launchers & Choosers #CSwebinar
Launchers & Choosers Launchers BingMapsTask MarketplaceLauncher MediaPlayerLauncher PhoneCallTask SaveEmailAddressTask SavePhoneNumberTask SearchTask EmailComposeTask SMSComposeTask WebBrowserTask Choosers CameraCaptureTask PhoneNumberChooserTask PhotoChooserTask EmailAddressChooserTask #CSwebinar
Launchers & Choosers demo #CSwebinar
Application Bar Toolbar Up to 4 icons Can set transparency level Slide up Menu can display more items Can declare in code or XAML Sample icons found under Program Filesicrosoft SDKsindows Phone7.0cons #CSwebinar
Application Bar Icons 48 pixels by 48 pixels  Black or White foreground, transparent background  Using alpha channel Circle will be added Choose icons with clear meanings Consider landscape mode  (y-axis mirror images) Don’t add a back or home button! #CSwebinar
APPLICATION BAR demo #CSwebinar
Tombstoning… …or, Application Lifetime Management #CSwebinar
A world of constant interruptions phone calls low battery lock screen reminders App switch txt msgs :-) #CSwebinar
Basic application lifetime ,[object Object]
App constructor
Startup event
Exit eventObscured by shell Moved to background #CSwebinar
Hidden by shell: OBSCURED ,[object Object]
Reminder
Battery lowGames enable user to resume What if they answer the phone? Game auto-pauses #CSwebinar
Moved to background: DEACTIVATED ,[object Object]
Open toast
Lock screenLoad state to continue where you left off User is back where they left off Assume your process is killed Save state for later use #CSwebinar
APPLICATION LIFETIME Activation, deactivation, and idle detection demo #CSwebinar
Push notification services #CSwebinar

More Related Content

What's hot

An Introduction to Using AWS and ASK to Build Voice Driven Experiences
An Introduction to Using AWS and ASK to Build Voice Driven ExperiencesAn Introduction to Using AWS and ASK to Build Voice Driven Experiences
An Introduction to Using AWS and ASK to Build Voice Driven ExperiencesAmazon Web Services
 
Getting Started with Amazon Lex - AWS Summit Cape Town 2017
Getting Started with Amazon Lex  - AWS Summit Cape Town 2017 Getting Started with Amazon Lex  - AWS Summit Cape Town 2017
Getting Started with Amazon Lex - AWS Summit Cape Town 2017 Amazon Web Services
 
An Overview of AI at AWS: Amazon Lex, Amazon Polly, Amazon Rekognition, Apach...
An Overview of AI at AWS: Amazon Lex, Amazon Polly, Amazon Rekognition, Apach...An Overview of AI at AWS: Amazon Lex, Amazon Polly, Amazon Rekognition, Apach...
An Overview of AI at AWS: Amazon Lex, Amazon Polly, Amazon Rekognition, Apach...Amazon Web Services
 
David Isbitski - Enabling new voice experiences with Amazon Alexa and AWS Lambda
David Isbitski - Enabling new voice experiences with Amazon Alexa and AWS LambdaDavid Isbitski - Enabling new voice experiences with Amazon Alexa and AWS Lambda
David Isbitski - Enabling new voice experiences with Amazon Alexa and AWS LambdaWithTheBest
 
AWS Summit Singapore - Get to Know Your Customers - Modern Data Architecture
AWS Summit Singapore - Get to Know Your Customers - Modern Data ArchitectureAWS Summit Singapore - Get to Know Your Customers - Modern Data Architecture
AWS Summit Singapore - Get to Know Your Customers - Modern Data ArchitectureAmazon Web Services
 
Chat Bots with Amazon Lex - AWS Summit SG 2017
Chat Bots with Amazon Lex  - AWS Summit SG 2017Chat Bots with Amazon Lex  - AWS Summit SG 2017
Chat Bots with Amazon Lex - AWS Summit SG 2017Amazon Web Services
 
Amazon Alexa Development Overview
Amazon Alexa Development OverviewAmazon Alexa Development Overview
Amazon Alexa Development OverviewJohn Brady
 
Introducing Amazon Lex – Service for Building Voice or Text Chatbots
Introducing Amazon Lex – Service for Building Voice or Text ChatbotsIntroducing Amazon Lex – Service for Building Voice or Text Chatbots
Introducing Amazon Lex – Service for Building Voice or Text ChatbotsAmazon Web Services
 
Alexa in 10 minutes
Alexa in 10 minutesAlexa in 10 minutes
Alexa in 10 minutesJames Burt
 
WKS403 Build an Alexa Skill using AWS Lambda
WKS403   Build an Alexa Skill using AWS LambdaWKS403   Build an Alexa Skill using AWS Lambda
WKS403 Build an Alexa Skill using AWS LambdaAmazon Web Services
 
Alexa Smart Home Skill
Alexa Smart Home SkillAlexa Smart Home Skill
Alexa Smart Home SkillJun Ichikawa
 
Voice enable all the things with Alexa
Voice enable all the things with AlexaVoice enable all the things with Alexa
Voice enable all the things with AlexaMark Bate
 
Amazon Alexa: our successes and fails
Amazon Alexa: our successes and failsAmazon Alexa: our successes and fails
Amazon Alexa: our successes and failsVyacheslav Lyalkin
 
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Lex (MAC304)
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Lex (MAC304)AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Lex (MAC304)
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Lex (MAC304)Amazon Web Services
 
Amazon Alexa - Introduction & Custom Skills
Amazon Alexa - Introduction & Custom SkillsAmazon Alexa - Introduction & Custom Skills
Amazon Alexa - Introduction & Custom SkillsAndré Maré
 

What's hot (20)

Amazon Echo
Amazon EchoAmazon Echo
Amazon Echo
 
Amazon Alexa Technologies
Amazon Alexa TechnologiesAmazon Alexa Technologies
Amazon Alexa Technologies
 
An Introduction to Using AWS and ASK to Build Voice Driven Experiences
An Introduction to Using AWS and ASK to Build Voice Driven ExperiencesAn Introduction to Using AWS and ASK to Build Voice Driven Experiences
An Introduction to Using AWS and ASK to Build Voice Driven Experiences
 
Getting Started with Amazon Lex - AWS Summit Cape Town 2017
Getting Started with Amazon Lex  - AWS Summit Cape Town 2017 Getting Started with Amazon Lex  - AWS Summit Cape Town 2017
Getting Started with Amazon Lex - AWS Summit Cape Town 2017
 
An Overview of AI at AWS: Amazon Lex, Amazon Polly, Amazon Rekognition, Apach...
An Overview of AI at AWS: Amazon Lex, Amazon Polly, Amazon Rekognition, Apach...An Overview of AI at AWS: Amazon Lex, Amazon Polly, Amazon Rekognition, Apach...
An Overview of AI at AWS: Amazon Lex, Amazon Polly, Amazon Rekognition, Apach...
 
David Isbitski - Enabling new voice experiences with Amazon Alexa and AWS Lambda
David Isbitski - Enabling new voice experiences with Amazon Alexa and AWS LambdaDavid Isbitski - Enabling new voice experiences with Amazon Alexa and AWS Lambda
David Isbitski - Enabling new voice experiences with Amazon Alexa and AWS Lambda
 
AWS Summit Singapore - Get to Know Your Customers - Modern Data Architecture
AWS Summit Singapore - Get to Know Your Customers - Modern Data ArchitectureAWS Summit Singapore - Get to Know Your Customers - Modern Data Architecture
AWS Summit Singapore - Get to Know Your Customers - Modern Data Architecture
 
Chat Bots with Amazon Lex - AWS Summit SG 2017
Chat Bots with Amazon Lex  - AWS Summit SG 2017Chat Bots with Amazon Lex  - AWS Summit SG 2017
Chat Bots with Amazon Lex - AWS Summit SG 2017
 
Amazon Alexa Development Overview
Amazon Alexa Development OverviewAmazon Alexa Development Overview
Amazon Alexa Development Overview
 
Introducing Amazon Lex – Service for Building Voice or Text Chatbots
Introducing Amazon Lex – Service for Building Voice or Text ChatbotsIntroducing Amazon Lex – Service for Building Voice or Text Chatbots
Introducing Amazon Lex – Service for Building Voice or Text Chatbots
 
Amazon Alexa Workshop
Amazon Alexa WorkshopAmazon Alexa Workshop
Amazon Alexa Workshop
 
Alexa in 10 minutes
Alexa in 10 minutesAlexa in 10 minutes
Alexa in 10 minutes
 
WKS403 Build an Alexa Skill using AWS Lambda
WKS403   Build an Alexa Skill using AWS LambdaWKS403   Build an Alexa Skill using AWS Lambda
WKS403 Build an Alexa Skill using AWS Lambda
 
Alexa Smart Home Skill
Alexa Smart Home SkillAlexa Smart Home Skill
Alexa Smart Home Skill
 
Voice enable all the things with Alexa
Voice enable all the things with AlexaVoice enable all the things with Alexa
Voice enable all the things with Alexa
 
Amazon Alexa: our successes and fails
Amazon Alexa: our successes and failsAmazon Alexa: our successes and fails
Amazon Alexa: our successes and fails
 
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Lex (MAC304)
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Lex (MAC304)AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Lex (MAC304)
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Lex (MAC304)
 
Deep Dive: Amazon Lex
Deep Dive: Amazon LexDeep Dive: Amazon Lex
Deep Dive: Amazon Lex
 
Amazon Alexa
Amazon AlexaAmazon Alexa
Amazon Alexa
 
Amazon Alexa - Introduction & Custom Skills
Amazon Alexa - Introduction & Custom SkillsAmazon Alexa - Introduction & Custom Skills
Amazon Alexa - Introduction & Custom Skills
 

Viewers also liked

Redes sociales2016
Redes sociales2016Redes sociales2016
Redes sociales2016Rafa Sirvent
 
Mobile Marketing Tips
Mobile Marketing TipsMobile Marketing Tips
Mobile Marketing TipsCommon Sense
 
Emperical research on mergers and corporate performance
Emperical research on mergers and corporate performance Emperical research on mergers and corporate performance
Emperical research on mergers and corporate performance Anand Adeppa
 
Mps 7. prestacion - entrega
Mps 7. prestacion - entregaMps 7. prestacion - entrega
Mps 7. prestacion - entregainnogeniero
 
폴라리스
폴라리스폴라리스
폴라리스jeryeryf
 
Posición de dedos
Posición de dedosPosición de dedos
Posición de dedosErikSeau
 
Science -south carolina landforms power point
Science -south carolina landforms power pointScience -south carolina landforms power point
Science -south carolina landforms power pointscrufman
 
Reforzamiento de word 2°
Reforzamiento de word 2°Reforzamiento de word 2°
Reforzamiento de word 2°ErikSeau
 
Leverage Azure and SQL Azure to build SaaS applications
Leverage Azure and SQL Azure to build SaaS applications Leverage Azure and SQL Azure to build SaaS applications
Leverage Azure and SQL Azure to build SaaS applications Common Sense
 
Lecture 16: Folksonomy and Tagging
Lecture 16:  Folksonomy and TaggingLecture 16:  Folksonomy and Tagging
Lecture 16: Folksonomy and TaggingJessica Laccetti
 

Viewers also liked (18)

Mps 1. servicio
Mps 1. servicioMps 1. servicio
Mps 1. servicio
 
Redes sociales2016
Redes sociales2016Redes sociales2016
Redes sociales2016
 
Mobile Marketing Tips
Mobile Marketing TipsMobile Marketing Tips
Mobile Marketing Tips
 
Torito’s king
Torito’s kingTorito’s king
Torito’s king
 
Emperical research on mergers and corporate performance
Emperical research on mergers and corporate performance Emperical research on mergers and corporate performance
Emperical research on mergers and corporate performance
 
Floresta tropical
Floresta tropicalFloresta tropical
Floresta tropical
 
Mps 7. prestacion - entrega
Mps 7. prestacion - entregaMps 7. prestacion - entrega
Mps 7. prestacion - entrega
 
Mps 5. personas
Mps 5. personasMps 5. personas
Mps 5. personas
 
PGC NEWSLETTER FOR 26 FEB, 2014
PGC NEWSLETTER FOR 26 FEB, 2014PGC NEWSLETTER FOR 26 FEB, 2014
PGC NEWSLETTER FOR 26 FEB, 2014
 
Andresito
AndresitoAndresito
Andresito
 
폴라리스
폴라리스폴라리스
폴라리스
 
Posición de dedos
Posición de dedosPosición de dedos
Posición de dedos
 
JEROME-hfesp
JEROME-hfespJEROME-hfesp
JEROME-hfesp
 
Science -south carolina landforms power point
Science -south carolina landforms power pointScience -south carolina landforms power point
Science -south carolina landforms power point
 
Reforzamiento de word 2°
Reforzamiento de word 2°Reforzamiento de word 2°
Reforzamiento de word 2°
 
Scribe insight 04 insight 7.9.0
Scribe insight 04   insight 7.9.0Scribe insight 04   insight 7.9.0
Scribe insight 04 insight 7.9.0
 
Leverage Azure and SQL Azure to build SaaS applications
Leverage Azure and SQL Azure to build SaaS applications Leverage Azure and SQL Azure to build SaaS applications
Leverage Azure and SQL Azure to build SaaS applications
 
Lecture 16: Folksonomy and Tagging
Lecture 16:  Folksonomy and TaggingLecture 16:  Folksonomy and Tagging
Lecture 16: Folksonomy and Tagging
 

Similar to How to develop a WP7 app?

Wp7 geek night intro developers - saschac
Wp7 geek night   intro developers - saschacWp7 geek night   intro developers - saschac
Wp7 geek night intro developers - saschacAberla
 
Windows Phone Development
Windows Phone DevelopmentWindows Phone Development
Windows Phone DevelopmentPuja Pramudya
 
Backbase Webinar: Next Level Mobile Banking
Backbase Webinar: Next Level Mobile Banking Backbase Webinar: Next Level Mobile Banking
Backbase Webinar: Next Level Mobile Banking Backbase
 
Backbase Webinar: Next Level Mobile Banking
Backbase Webinar: Next Level Mobile Banking Backbase Webinar: Next Level Mobile Banking
Backbase Webinar: Next Level Mobile Banking Backbase
 
Windows Phone 7 Architecture Overview
Windows Phone 7 Architecture OverviewWindows Phone 7 Architecture Overview
Windows Phone 7 Architecture OverviewBhavya Siddappa
 
Developing Applications with Windows Phone 7
Developing Applications with Windows Phone 7Developing Applications with Windows Phone 7
Developing Applications with Windows Phone 7Brad Tutterow
 
Windows phone7 By Subodh
Windows phone7 By Subodh Windows phone7 By Subodh
Windows phone7 By Subodh Prashant Singh
 
Introduction to the Windows Live Platform
Introduction to the Windows Live PlatformIntroduction to the Windows Live Platform
Introduction to the Windows Live PlatformClint Edmonson
 
An end-to-end experience of Windows Phone 7 development (Part 2)
An end-to-end experience of Windows Phone 7 development (Part 2)An end-to-end experience of Windows Phone 7 development (Part 2)
An end-to-end experience of Windows Phone 7 development (Part 2)rudigrobler
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSAmazon Web Services
 
Windows Phone 7 Overview
Windows Phone 7 OverviewWindows Phone 7 Overview
Windows Phone 7 OverviewJohn Alioto
 
NexGen Software Inc
NexGen Software IncNexGen Software Inc
NexGen Software Incpervinder
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperSam Basu
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSAmazon Web Services
 
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...RIA RUI Society
 
Pervasive Web Application Architecture
Pervasive Web Application ArchitecturePervasive Web Application Architecture
Pervasive Web Application ArchitectureUC San Diego
 
Leveraging the azure cloud for your mobile apps
Leveraging the azure cloud for your mobile appsLeveraging the azure cloud for your mobile apps
Leveraging the azure cloud for your mobile appsMarcel de Vries
 

Similar to How to develop a WP7 app? (20)

Wp7 geek night intro developers - saschac
Wp7 geek night   intro developers - saschacWp7 geek night   intro developers - saschac
Wp7 geek night intro developers - saschac
 
Windows Phone Development
Windows Phone DevelopmentWindows Phone Development
Windows Phone Development
 
Backbase Webinar: Next Level Mobile Banking
Backbase Webinar: Next Level Mobile Banking Backbase Webinar: Next Level Mobile Banking
Backbase Webinar: Next Level Mobile Banking
 
Backbase Webinar: Next Level Mobile Banking
Backbase Webinar: Next Level Mobile Banking Backbase Webinar: Next Level Mobile Banking
Backbase Webinar: Next Level Mobile Banking
 
Windows Phone 7 Architecture Overview
Windows Phone 7 Architecture OverviewWindows Phone 7 Architecture Overview
Windows Phone 7 Architecture Overview
 
Developing Applications with Windows Phone 7
Developing Applications with Windows Phone 7Developing Applications with Windows Phone 7
Developing Applications with Windows Phone 7
 
Windows phone7 By Subodh
Windows phone7 By Subodh Windows phone7 By Subodh
Windows phone7 By Subodh
 
Introduction to the Windows Live Platform
Introduction to the Windows Live PlatformIntroduction to the Windows Live Platform
Introduction to the Windows Live Platform
 
An end-to-end experience of Windows Phone 7 development (Part 2)
An end-to-end experience of Windows Phone 7 development (Part 2)An end-to-end experience of Windows Phone 7 development (Part 2)
An end-to-end experience of Windows Phone 7 development (Part 2)
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWS
 
AWS Summit Keynote
AWS Summit KeynoteAWS Summit Keynote
AWS Summit Keynote
 
Windows Phone 7 Overview
Windows Phone 7 OverviewWindows Phone 7 Overview
Windows Phone 7 Overview
 
Imp beta3
Imp beta3Imp beta3
Imp beta3
 
NexGen Software Inc
NexGen Software IncNexGen Software Inc
NexGen Software Inc
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone Developer
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWS
 
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
 
Pervasive Web Application Architecture
Pervasive Web Application ArchitecturePervasive Web Application Architecture
Pervasive Web Application Architecture
 
Leveraging the azure cloud for your mobile apps
Leveraging the azure cloud for your mobile appsLeveraging the azure cloud for your mobile apps
Leveraging the azure cloud for your mobile apps
 
Force Platform
Force PlatformForce Platform
Force Platform
 

More from Common Sense

How to scale up, out or down in Windows Azure
How to scale up, out or down in Windows AzureHow to scale up, out or down in Windows Azure
How to scale up, out or down in Windows AzureCommon Sense
 
Innovation in Outsourcing & Reserach
Innovation in Outsourcing & ReserachInnovation in Outsourcing & Reserach
Innovation in Outsourcing & ReserachCommon Sense
 
Webinar: How Microsoft is changing the game with Windows Azure
Webinar: How Microsoft is changing the game with Windows AzureWebinar: How Microsoft is changing the game with Windows Azure
Webinar: How Microsoft is changing the game with Windows AzureCommon Sense
 
How to scale up, out or down in Windows Azure - Webinar
How to scale up, out or down in Windows Azure - WebinarHow to scale up, out or down in Windows Azure - Webinar
How to scale up, out or down in Windows Azure - WebinarCommon Sense
 
The Azure Platform. Common Sense Webinar
The Azure Platform. Common Sense WebinarThe Azure Platform. Common Sense Webinar
The Azure Platform. Common Sense WebinarCommon Sense
 
Windows Azure PaaS - Webinar Common Sense
Windows Azure PaaS - Webinar Common SenseWindows Azure PaaS - Webinar Common Sense
Windows Azure PaaS - Webinar Common SenseCommon Sense
 

More from Common Sense (6)

How to scale up, out or down in Windows Azure
How to scale up, out or down in Windows AzureHow to scale up, out or down in Windows Azure
How to scale up, out or down in Windows Azure
 
Innovation in Outsourcing & Reserach
Innovation in Outsourcing & ReserachInnovation in Outsourcing & Reserach
Innovation in Outsourcing & Reserach
 
Webinar: How Microsoft is changing the game with Windows Azure
Webinar: How Microsoft is changing the game with Windows AzureWebinar: How Microsoft is changing the game with Windows Azure
Webinar: How Microsoft is changing the game with Windows Azure
 
How to scale up, out or down in Windows Azure - Webinar
How to scale up, out or down in Windows Azure - WebinarHow to scale up, out or down in Windows Azure - Webinar
How to scale up, out or down in Windows Azure - Webinar
 
The Azure Platform. Common Sense Webinar
The Azure Platform. Common Sense WebinarThe Azure Platform. Common Sense Webinar
The Azure Platform. Common Sense Webinar
 
Windows Azure PaaS - Webinar Common Sense
Windows Azure PaaS - Webinar Common SenseWindows Azure PaaS - Webinar Common Sense
Windows Azure PaaS - Webinar Common Sense
 

Recently uploaded

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 

Recently uploaded (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 

How to develop a WP7 app?

  • 1. Philip Wheat Architect Evangelist -Startups Microsoft Corporation philwh@microsoft.com An Introduction to Windows Phone 7 Development Juan De Abreu VP -Delivery Director Common Sense jdeabreu@getcs.com
  • 3. Agenda Introduction Overview of the Phone Demo like crazy! Marketplace Q&A #CSwebinar
  • 4. A different kind of phone, designed for a life in motion Philosophy Customer Design Experience Platform #CSwebinar
  • 5. Different, for good reasons Smart Design Integrated Experiences Photo by: Andrew Butitta, Founder, Talisman Digital Photography #CSwebinar
  • 7. Integrated experiences OFFICE PICTURES MUSIC+VIDEO MARKETPLACE GAMES PEOPLE #CSwebinar
  • 8. WINDOWS PHONE 7 Let’s see the phone already! demo #CSwebinar
  • 9. Hardware Architecture Capacitive touch 4 or more contact points Sensors A-GPS, Accelerometer, Compass, Light, Proximity Camera 5 mega pixels or more, flash required, camera button required 800 WVGA / 480 HVGA Multimedia Common detailed specs, Codec acceleration Memory 256MB RAM or more, 8GB Flash or more GPU DirectX 9 acceleration CPU ARMv7 Cortex/Scorpion or better Hardware buttons | Start, Search, Back 480 WVGA / 320 HVGA #CSwebinar
  • 10. Elements of the application platform Tools Runtime – On “Screen” Phone Emulator Sensors Media Data Location Samples Documentation Xbox LIVE Notifications Phone Guides Community .NET Framework managed code sandbox Packaging and Verification Tools SCREEN CLOUD Portal Services Cloud Services Notifications App Deployment Registration Marketplace Validation MO and CC Billing Location Identity Feeds Certification Business Intelligence Maps Social Publishing Update Management #CSwebinar
  • 11. Windows Phone 7 Framework Windows Phone Frameworks Camera Device Integration Launchers & Choosers Windows Phone Controls PhoneApplicationPage PushNotification WebBrowserControl Sensors PhoneApplicationFrame Silverlight Presentation and Media XNA Frameworks for Games Controls Drawing IsolatedStorage Drawing GamerServices Navigation Shapes Markup Media Audio Media Graphics Content Input Application Object Common Base Class Library Diagnostics Reflection IO Runtime Resources Globalization Text Location Net Collections ComponentModel Configuration Security Threading ServiceModel Linq #CSwebinar
  • 13. Resources and Styles 4 Elements have a dictionary of resources identified by Key Can store arbitrary objects, not just UI objects {StaticResource} XAML directive does hierarchical lookup Code can access local element’s Resources dictionary resources styles Styles contain setters for Properties and Values Styles can derive from other styles Styles are applied explicitly by key or implicitly Can be changed dynamically to theme an application #CSwebinar
  • 14. Built-in animation system Animation is driven by Storyboards Storyboard DoubleAnimation ColorAnimation PointAnimation etc animations can apply easing functions ~10 built-in (e.g. sine) + custom #CSwebinar
  • 15. Common databinding system Elements have a DataContext Resolution of declarative bindings is done by hierarchically examining an element’s DataContext Grid Button #CSwebinar
  • 18. Application structure Applications are built like web sites Functionality is split into pages Forward navigation via links Backward navigation via Back Users can navigate across different applications Previous applications (pages) are in the back stack #CSwebinar
  • 19. UI Model: Familiar Web Concepts Phone application Provides UI represented as XAML pages connected into cross-app flows by URI’s Web application Provide media represented as HTTP resources linked by URL’s Shell frame Requests pages, renders UI, and handles navigation across apps Web browser Requests HTTP resources, renders them, and handles navigation across sites Sessions and back stack Groups together sequences of pages corresponding to a user’s activity across apps History and tabs Groups together sequences of HTTP resources corresponding to a user’s activity across sites #CSwebinar
  • 20. Frame and Page PhoneApplicationFrame Exposes the screen orientation property Exposes a client area where pages are rendered Reserves space for the system tray and application bar Receives Obscured / Unobscured PhoneApplicationPage Fills the entire content region of the frame Optionally surfaces its own application bar Handles Orientation NavigatedTo and NavigatedFrom #CSwebinar
  • 21. Page Navigation Forward Uri uri = new Uri(“/Page2.xaml”,UriKind.Relative); NavigationService.Navigate(uri); Back NavigationService.GoBack(); Hardware Back Button Handle BackKeyPress, OnBackKeyPressthen Navigate to where you would like*** #CSwebinar
  • 22. APPLICATION STRUCTURE Page navigation framework demo #CSwebinar
  • 24. Some old friends… Border Button Canvas CheckBox Grid HyperlinkButton Image ListBox MediaElement MessageBox ProgressBar RadioButton ScrollViewer TextBlock TextBox WebBrowser GestureServiceListener ContextMenu DatePicker TimePicker ToggleSwitch WrapPanel #CSwebinar
  • 25. … and some new ones! Panorama Bing Map Pivot #CSwebinar
  • 26. Controls support touch Mouse Events Automatically converted for you SIP and WebBrowser control have gestures ScrollViewer Just like Silverlight So you now have FLICK and PAN for free! Raw Gestures Manipulations #CSwebinar
  • 28. Text input TextBox integrates with the software keyboard Software keyboard supports input scoping Key InputScopes: EmailNameOrAddress Text Url Number Time TelephoneNumber PasswordBox has a 1 second delay #CSwebinar
  • 29. INPUT SCOPES Utilizing the software input panel a.k.a. the SIP a.k.a. the on-screen keyboard demo #CSwebinar
  • 31. Accelerometer +Y Measures force applied on each axis over time Simple API As easy as X, Y, Z! -Z +X +Z -Y #CSwebinar
  • 32. Location: Sources of Location GPS + Accuracy - Power - Speed - Indoors - Accuracy + Power + Speed - Wilderness WiFi Location services +/- Accuracy +/- Power +/- Speed +/- Urban areas Cell towers #CSwebinar
  • 33. Location services Smart device + cloud service Balance accuracy with time & power Consistent API across platforms No Emulator Support Reactive extensions for mocking #CSwebinar
  • 34. SENSORS Accelerometer Location Services demo #CSwebinar
  • 35. Launchers & Choosers #CSwebinar
  • 36. Launchers & Choosers Launchers BingMapsTask MarketplaceLauncher MediaPlayerLauncher PhoneCallTask SaveEmailAddressTask SavePhoneNumberTask SearchTask EmailComposeTask SMSComposeTask WebBrowserTask Choosers CameraCaptureTask PhoneNumberChooserTask PhotoChooserTask EmailAddressChooserTask #CSwebinar
  • 37. Launchers & Choosers demo #CSwebinar
  • 38. Application Bar Toolbar Up to 4 icons Can set transparency level Slide up Menu can display more items Can declare in code or XAML Sample icons found under Program Filesicrosoft SDKsindows Phone7.0cons #CSwebinar
  • 39. Application Bar Icons 48 pixels by 48 pixels Black or White foreground, transparent background Using alpha channel Circle will be added Choose icons with clear meanings Consider landscape mode (y-axis mirror images) Don’t add a back or home button! #CSwebinar
  • 40. APPLICATION BAR demo #CSwebinar
  • 41. Tombstoning… …or, Application Lifetime Management #CSwebinar
  • 42. A world of constant interruptions phone calls low battery lock screen reminders App switch txt msgs :-) #CSwebinar
  • 43.
  • 46. Exit eventObscured by shell Moved to background #CSwebinar
  • 47.
  • 49. Battery lowGames enable user to resume What if they answer the phone? Game auto-pauses #CSwebinar
  • 50.
  • 52. Lock screenLoad state to continue where you left off User is back where they left off Assume your process is killed Save state for later use #CSwebinar
  • 53. APPLICATION LIFETIME Activation, deactivation, and idle detection demo #CSwebinar
  • 55. Push notifications Server-initiated communication Enables key background scenarios Preserves battery life and user experience #CSwebinar
  • 56. Notification types 15 14 New photos online! Dallas, TX: Sunny and 80 degrees #CSwebinar
  • 57. Push notifications: data flow Tile Push client Toast Open push channel Return URI Data to App Data to toast Data to tile App Send URI to server Send push data to client Your service Push service Send push data to URI Event #CSwebinar
  • 58. PUSH NOTIFICATIONS Subscribing to and receiving push notifications demo #CSwebinar
  • 60. Deployment process Develop & Debug Submit& Validate Certify & Sign Windows Phone Application Deployment Service Marketplace #CSwebinar
  • 61.
  • 62.
  • 63. Buying and downloading content is a breeze
  • 64. Payment flexibility (MO billing and credit card)
  • 66. Further information http://create.msdn.commarketplace, downloads, tutorials, videos and more! http://microsoftplatformready.comget your $99 back! http://chriskoenig.net/WP7Resourcesframeworks, databases, control tooklits, sample downloads and more http://delicious.com/chriskoenig/wp7links to interesting WP7 content http://bit.ly/WP7Forumssupport forums for Windows Phone 7 #CSwebinar
  • 67. Calls to action 1 Install the Tools! 2 Start Coding! 3 Give us Feedback! #CSwebinar
  • 68. Thanks! How can we help? philwh@microsoft.com PhilWheat.net @pwheat jdeabreu@getcs.com Blog.getcs.com @jdeabreu #CSwebinar
  • 69. © 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.

Editor's Notes

  1. This presentation explains how to write Windows Phone 7 applications in Silverlight. It builds on top of assumed existing Silverlight skills (you should be familiar with things that can be done in Silverlight)
  2. Windows Phone is a whole new kind of phone, targeted specifically at consumers, who work hard every day to balance their work lives and their personal lives. These were the key focus areas for our design and development effortsNew philosophy on what the device needs to doFocus on the end user, not on enterprises Improved “glanceable” design paradigm with “Metro”Standardized experience across all devices, manufacturers and all carriersStrong developer platform for building rich, interactive applications on the phone – a key part of our “3-screens and a cloud” strategyWindows Mobile Phones were essentially PPCs that got phone capabilities added to them. This device has been redesigned from the ground-up to be easy to use, incorporate the things you do and care about, and give you the information you need quickly and easily.Depending on the size of the crowd, I also ask about the screen shot here and ask for their feedback.
  3. After talking to developers and customers since the Mobile World Congress, early 2010, it is clear that Windows Phone 7 is a different platform. It really begins with something called Smart Design. This is an important concept for Windows Phone 7, evolving around the Metro design language. Metro really defines the User Interface of phone. As an application or game developer you need to understand the Metro concept to assure that your applications create consistent experiences for end users.A big part of Windows Phone 7 is the idea of Integrated Experiences, bundling together things like:Xbox Live and Xbox gamingFull Microsoft Office integrationFull Zune experience on the phone
  4. 40 Years of Swiss and Swiss Influence DesignPrintPackageAligned with design direction for Metro UI
  5. Integrated Experiences:The market for Windows Phone 7 consists of consumers with both a personal life and a business lifeThe phone works great in the customer’s personal life as well as in their business lifeIntegrated Office functionality creates great experiences for business usePictures and Multimedia experiences are great for personal useGetting applications on the phone for end users is easy through MarketplaceDelivering applications to Marketplace is easy for Developers
  6. Same as the previous slide, but with more detailed components displayed. Just use this as another overview. On the next slides a number of individual items will be explained in more details.
  7. Flash is frame based – Silverlight is time based. Also talk about Render thread and double animation storyboards running on GPU.
  8. As you saw in the demo, the TextBox really integrates with the Operating System software keyboardThere is also a password obfuscation delay. When you enter data on a password textbox, you can see the entered character for a second before it turns into a dot. This is what you expect on a phone because entering passwords is kind of tricky when you are using the software keyboard.You also saw that built-in controls have gesture support. There are also new events available on controls that are called “Manipulation Events”. They are fired when manipulations are started and ended or when a particular delta is reached. Using these events on controls you are able to influence gestures.
  9. We start discussing the integration that applications have with the software keyboard and something called the ‘input scope’.The input scope is a hint to the software keyboard about how you want the keyboard to be shown to the user (when for instance entering text in a textbox). Can be specific for:Phone numberWeb addressEmail addressGeneric textSee separate demo script for a full explanation (Demo 2).
  10. The accelerometer is pretty much straight forward. You get force in units of gravity applied in every dimension over time. Every sample comes with an x, y and z force and a time stamp.If the device is just laying flat on a surface, it has -1 unit of gravity in the Z-direction.X and Y coordinates are similar to screen coordinates, Z gets into the device.When you shake the device, you will get readings containing values larger than 1 unit of gravity.
  11. There are three different ways to retrieve location on the phone:GPSLocation information very accurateRadio drains significant powerInitial reading slow (especially if the device has been moved over a long distance without GPX fixes)Does not work indoorsCell Tower LookupNot that accurate (depends on the distance between cell towers)No additional power requirements (assuming the phone radio is switched on already)Fast location retrieval (if the phone radio is switched on, you are already connected to tower(s))No 100% coverageWiFi LookupIn between GPS and Cell Tower in both accuracy, speed and battery consumptionWorks pretty good in larger citiesIndependent of physical location retrieval, one consistent API is used inside your application.The cloud can help getting more accurate location readings, based on other people having been at the same location (without the need for enabling GPS on a particular, individual device)Location services do not only retrieve Lat/Long readings, but can also resolve address information through reverse geocoding services.
  12. Location services are currently not supported on the emulator (there is not something like FakeGPS), but you can use a mock to ‘pretend receiving’ location dataLocation services combine smart software on the device with a backend service to balance accuracy of location with time / power it takes to get the locationFor some applications location down to city or zip code level is sufficientOther applications need read accurate location information up to a few yardsThe different location requirements can be specified, using a location API that is not only available on the phone, but also on the desktop (Windows 7, .NET Framework 4.0)Reactive Extensions, http://msdn.microsoft.com/en-us/library/ff431792(v=VS.92).aspx
  13. See separate demo script for a full explanation (Demo 5).
  14. This is just a list of all launchers and choosers that are available on Windows Phone 7.Again: A launcher starts an existing Operating System application and puts your application (temporarily) to the background.A chooser is a piece of Operating System functionality that can select some stored data and return it to your application.
  15. Why there is no exit buttonhttp://blogs.msdn.com/b/ptorr/archive/2010/08/01/exiting-a-windows-phone-application.aspxDon’t forget to mention PopUp Control.
  16. Unique to a Silverlight application on the phone is that a lot of things can happen while the user is working with your application.Phone calls will come in and text messages and the lock screen might be active if the user stops working with your application.All of this activity effects the way your application runs on the device.
  17. The application life time on a phone is basically similar to any other application. An application that is not running can be started, therefore becomes running and after some time it might be terminated, reentering the not running state.A phone application differs slightly from a ‘normal’ application. [Animate]While you are running on the phone two things can happen, each with their own behavior that we will cover in detail: The application can be obscuredThe application can be paused
  18. The behavior of an obscured application is not implemented in the MIX CTP, so we can’t show this on the device emulator. Each numbered item explains the situation after an animation:An application is runningSomething happens on the device (e.g. A phone call, a low battery warning, a calendar reminder)This means that the user cannot see your application anymoreIn this situation the OS tells you that it has been obscuredGives the app the opportunity to do somethingThe application keeps runningNo resources are being taken from the applicationAfter some time the event that happened on the device goes away (e.g. the user confirmed a dialog), resulting in an unobscured notification to your appThe application knows it is entirely visible againFor instance, if the application is a game, it can pause itself when it is obscured. However, anything that does not require user interaction can simply continue.Then when the application (game) becomes unobscured again, you could resume it.
  19. The next thing to investigate is what happens if your application is running and the user jumps to another application.Begin again with the situation where the application is runningThe user does something, for instance click the start button to run another applicationIn this situation, the application will receive a pause event, indicating that the application should stop doing what it is doing. The OS actually suspends the application in this case.If the user comes back to your application it will receive a resume event and can continue runningImportant: While you are suspended you should assume that your process is killed!! (it might not really happen, depending on resources used by your application and the resources needed by the application that is now running)When you enter the pause state, your application should save its state for future useThe paging model of an application can help here, if all your pages are stateless you don’t have to do anything in particularWhen the resume event happens, just go back to that state (could be a page) where you were when you were pausedThis approach guarantees that the user does not even know that your application was suspended and possibly killed
  20. Push notifications are a way to offload background processing from the device into the cloudNo need to use the battery, CPU cycles and memory on the deviceInitiated by the server to enable key background scenariosAKA ‘Smart Multitasking’Users can focus on the foreground application that has as much resources as possible availableYou (as a developer) can notify the user through the server if there is something they should know about or react upon
  21. There are three types of push notifications that you can use on a Windows PhoneNotifications that show up when your application is not running:Tile UpdateToast NotificationNotification that show up when your application is running:Possibility to immediately update your UITile UpdateImagine an application that gets photo feeds, for instance from a service like flickr. Currently the tile shows there are 14 pictures available[Animate]Something happens on the backend: new pictures become available. Through push notifications the tile can be updated[Animate]Toast NotificationImagine a weather application. The user has indicated that they want to be informed about weather updates. Currently the user is not using the weather application though.[Animate]You can send a toast to the device. It appears on the screen, regardless of what the user is doing on the device. If the user clicks on the toast, your application will be launched.[Animate]Push Notification while your application is runningInstead of polling for changes, you setup a push notification (meaning your application will wait for something to happen on the backend with no polling necessary). When something happens on the backend, the server will ping your application.[Animate]The application can take immediate action, for instance to display a newly received message to the user.
  22. Explain in a bit of detail how push notifications work (numbers correspond to next animation)Start with your application running on the deviceThe user indicates that they are interested in some notifications that your application can receiveYou are opening a push channel inside your application with the push clientThe push client returns a unique (per device and per application) URI to your applicationThe URI points to some live service hosted by Microsoft, somewhere in the cloudYour application sends that unique URI to your own back end serviceCan use any mechanismCan use any type of authenticationCan use custom protocolsYour service just sits somewhere in the cloud, waiting for something to happenIf something interesting happens ….Your service takes the event data and posts it to the unique URINo magic, just an ordinary http POSTThe Push Service takes the data you gave it and uses the URL to identify the device and the applicationThe data is send to the deviceDepending on the state of the device and the type of notification, the notification willAppear in the application (where you are responsible to display it to the user)Show up as a toast notification (the operating system takes care of this)Update a tile (the operating system takes care of this)
  23. Right now, you are going to show some code, because the whole mechanism of push notifications is much simpler than it actually sounds.See separate demo script for a full explanation (Demo 4).
  24. Develop your applicationDebug your applicationBeta program support to allow customers to help testing your applicationSubmit your applicationApplication will be certifiedFriction freeGuarantees good end user experienceProcess will be very transparentYou know what happens during certificationApplication will be available in the market place
  25. Marketplace is an integrated experience on the phoneUsed to acquire contentMusicVideosGamesApplicationsAllows friends to recommend stuff to youFun to useMeans it will be used a lotTry vs Buy (distinguish with one single API: boolIsTrial())Additional API that can take end users that run your app in trial mode immediately to the location on Marketplace where they can buy your applicationBilling flexibility (focus on the end user)End users like billing through Mobile Operators over credit card billingManaged by MicrosoftApplications will be updated through Marketplace as well.
  26. http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series