windows phone app development overview
DESCRIPTION
TRANSCRIPT
Windows Phone AppDevelopment Overview
Alan MendelevichAdDuplex Founder
[email protected]://devblog.ailon.orgTwitter: @ailon
Hardware Specification 2010
Display480x800 QVGA320x480 HVGA (future)
Capacitive touch4 or more contact points
Camera5 mega pixels or more
Hardware buttonsStart, Search, Back
GPUDirectX 9 acceleration
CPUARMv7 Cortex/Scorpion or better
Memory256MB RAM or more8GB Flash or more
MultimediaCodec acceleration
SensorsA-GPS, Accelerometer, Compass, Light
Metro Principles
• Clean, light, open, fast• Celebrate typography• Alive & in motion• Content not chrome• Authentically digital
Touch Target Sizes
• Minimum recommended touch target size – 9mm (~90 px)
• Minimum spacing between touchable elements – 2mm
• Visible element size – 60-100% of touch surface
Application Bar
• Up to 4 buttons• Only the main
actions• Use slide out
menu for less important items
17
Panorama
• “Rich” content• Leads user to
the next screen
• Starting point for multiple destinations
Flavors of Applications
High performance game framework
Rapid creation of multi-screen 2D and 3D games
Rich content pipeline Mature, robust, widely
adopted technology spanning Xbox 360, Windows, and Zune
Modern XAML/event-driven application UI framework
Rapid creation of visually stunning apps
Metro-themed UI controls
500,000 developers spanning Windows and web
Free Powerful Tools
• http://create.msdn.com– Visual Studio 2010 Express–Windows Phone Emulator– Silverlight– XNA Game Studio 4.0–Microsoft Expression Blend for Windows
Phone– .NET Framework 4
Silverlight 4+
• Based on Silverlight 4• Plus specific modules (phone
functions, sensors, etc.)• XAML + C# (or VB.NET)• Optimized for performance on
smaller, less powerful devices
XAML
• eXtensible Application Markup Language• XML based• Used in WPF and Silverlight• Declaratively describes UI, animations,
etc.
Theming
• Users can switch system colors– Select black or white
background– Select “accent” color
• Standard Silverlight controls automatically adapt to selected theme
• Preset styles
27
Navigation• Navigation is page
based– Similar to web
navigation– Pages are identified by
URIsprivate void hyperlinkButton1_Click( object sender, RoutedEventArgs e){ NavigationService.Navigate( new Uri("/SecondPage.xaml", UriKind.RelativeOrAbsolute) );}
Back Button
• Returns to the previous page– UI shouldn’t duplicate this functionality
• The behavior could be overridden when going to the previous page isn’t logical– Closing a pop-up dialog, etc.– Can’t be used for actions absolutely
unrelated to “returning”, like shooting, etc.
Application Bar
• Use AppBar instead of a custom menu system
• Up to 4 buttons + menu• Buttons for most
important tasks only• White color on the
transparent background (without circle)
Orientation support
• Pages can be vertical, horizontal or change orientation automatically
• Set via SupportedOrientations property• PortraitOrLandscape value – automatic
orientation switching
Data Binding
• Automatically binds object properties• Separation of concerns
(design/development)–MVVM pattern
Pivot and Panorama
• The best starting point for apps
• Complies with Metro out of the box
• Present information in easily digestible portions
Pivot vs. Panorama
• Can be used to display more information
• Supports programmatic switching
• LoadingPivotItem and UnloadingPivotItem events for delayed content loading
• Effective use of screen real estate
• More impressive• Background images
automatically stretched
• Horizontal PanoramaItem for vizualization of content of different width
Pivot Panorama
Launchers and Choosers
• Each app runs in its own sandbox and can’t accept system resources or other apps
• Launchers and Choosers mitigate this by allowing indirect access to these features
Application Lifecycle
running
deactivated
dormant
activated
Phone resources detachedThreads & timers suspended
Fast App Resume
Save State!State preserved!IsAppInstancePreserved == true
Restore state!IsAppInstancePreserved == false
Resuming .. .
Tombstone the oldest app
Tombstoned
Publishing ProcessApplication 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
Summary
• Modern mobile platform• Metro design language• Silverlight or XNA or Silverlight+XNA• Centralized app Marketplace
Additional resources
• App Hub– http://create.msdn.com
• Programming Windows Phone by Charles Petzold– http://www.charlespetzold.com/phone/
• Twitter - #wpdev