Special thanks to Daniel Egan. This presentation provides an introduction to Windows Phone 7, helps developers decide which user controls (Pivot, Panorama), user interface concerns, and step to get your app in Marketplace.
3. Session 1 Agenda WP7 – Phone Overview Application Architecture Application Life cycle Hardware Foundation Application Bar Panorama and Pivot Red Threads MVVM Marketplace
4. A different kind of phone,designed for a life in motion Philosophy Customer Design Experience Platform
8. Standardized Hardware Foundation Capacitive touch 4 or more contact points 800 WVGA / 480 HVGA Sensors A-GPS, Accelerometer, Compass, Light, Proximity Camera 5 mega pixels or more, flash required, camera button required 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 480 WVGA / 320 HVGA Hardware buttons | Start, Search, Back
9. Session 1 : The Architecture Building the Foundation
10. Software Architecture Applications Your App UI and logic Frameworks Silverlight XNA HTML/JavaScript CLR App Model UI Model Cloud Integration Xbox LIVE Bing Location Push notifications Windows Live ID App management Licensing Chamber isolation Software updates Shell frame Session manager Direct3D Compositor Kernel Hardware BSP Security Networking Storage A-GPS Accelerometer Compass Light Proximity Media Wi-Fi Radio Graphics Hardware Foundation
11. Windows Phone 7 Frameworks Details 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 Media Graphics Shapes Markup Media Navigation Audio Content Input Application Object Common Base Class Library IO Runtime Resources Globalization Text Net Reflection Location Diagnostics Collections ComponentModel Configuration Security ServiceModel Linq Threading
18. Application Bar Automatically added to new page But commented out Can be done in XAML or code behind Two Parts ApplicationBarIconButton (Limit 4) ApplicationBarMenuItem You can set the opacity (0.0 – 1.0) Automatically Rotates and Adjusts
19. Application Bar Best Practices Use instead of your own menu system Use the default system theme color Use Opacity of .0 , .05, 1 If Opacity is < 1 Screen is Full : Otherwise Screen will be shorter Do not use an Icon button for Back Don’t use more than 5 Menu items ( between 14 and 20 characters)
33. Red Threads Optimize for “life maximizers” Red Threads A thread or a theme that runs throughout the entire user experience Three Red Threads Personal Relevant Connected
34. Red Threads Personal Your Day, your way Present information that is pertinent to user Consider this almost as if every WP7 application should be like a dashboard the filters information down to your role
35. Red Threads Relevant Your people, your location Show information pertinent to the environment the user is currently in An example would be a locator for sporting events around the user based on GPS
36. Red Threads Connected Your stuff, your piece of mind Application should be able to interact with networked information (Cloud, online services) BUT not be dependent on this Make sure the user experience is high even in a disconnected state
51. Model Typical class that covers a database Could be a WCF Service and its client reference
52. ViewModel Provides data to and from the View Responds to both the View and the Model Informs the View of changes in the data Reusable (at least much more than code behind a form)
53. ViewModel Knows nothing about the View Does not “push” data into the view TextBox1.Text = object.Name()
54. View Uses Binding to “subscribe” to the ViewModel Interprets business data and state of ViewModel to the human Nothing but Presentation - XAML No or minimal code-behind
55.
56. For simple UI, M-V-VM can be overkillView ViewModel Model
67. Publishing Process Upload Application (XAP)Meta Data (Icons, descriptions, icons) Check for size (< 500 mb) Recommended size < 20 MB for OTA Check Application code (No Native API)Check if Type SafeNo Debug Symbols Check for Phone Capabilities Check languages Application and Game Submission .xap .xap .xap .xap .xap .xap .xap .xap .dll .dll .dll .dll .dll .dll .dll .dll App Packaging & Validation App submission Marketplace Windows Phone 7 Deployment Service Apply Test Criteria Add Metadata Sign Add Metadata and repackage application. Sign XAP and appears on Marketplace Check the app works (does it crash, hang, etc..) Start splash in 1 second Accept user input 19 secondsTest for malicious code
68. Device Unlock for Application Development api Unlock retail devices for development Manage registered devices through the developer portal 3 devices/year 1 device/year students
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, maanufacturers 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.
The Smart Design starts with what we call the “Metro” Design Language – not a language like developers would think of – but a natural language for expressing designs. The inspiration for the WP7 UX was based on signage around Metro Rail stations – clean, clear, easy to read information that you can take in quickly. We also refer to this as “glanceable” information – information you can take in at just a glance.It’s not about the fancy chrome, gradient fills or shiny, inactive icons – it’s about the information you need right now to get back to your “life in motion”…
Hubs are viewports into phone functionality – the phone UX is not about hosting applications, it’s about hosting experiences<build>There are 6 hubs in WP7 – developers can integrate their software into them
Windows Phone 7 Series has a very detailed hardware specification to ensure a consistent user experience for consumers across network providers. This way, phone customers will be able to continue using their existing service provider but get the same UX as everyone else. The consistent hardware and software platform also ensures that Microsoft can, through a centralized Windows Update mechanism, manage updates and patching to the phone platform in a consistent way, across providers.Highlights of slide: Detailed hardware spec to ensure a consistent user experience for consumersSingle display at launch, smaller display in future (lower price point for easier adoption)All capacitive touch devices – no more stylus!3 buttons only – not 5, not 1 – but 3Memory is minimum configuration, more is allowed
Connecting applications with data via Cloud Services One of the “3 screens” in our strategyYours: services that you write for your application, specific to your application, or part of a larger application deploymentTheirs: services built by 3rd parties (Netflix, US Government, SAP, etc) over open protocols (e.g. SOAP, REST, ODATA) for you to use in your S+S application.Ours: services built by Microsoft used with your phone (e.g. Notification, Update, Location), and applications you write for your phone (e.g. Xbox Live)
Building Silverlight-based UX navigation is similar to Web-based navigation:Navigation is from Page to PagePages are described as relative URIs (i.e. “/DetailsPage.xaml”)QueryString can be used (i.e. “/DetailsPage.xaml?id=123”)Back button is integrated and “smart” compared to the browser’s back button