Windows Phone 7 Unleashed Session 1


Published on

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.

Published in: Business, Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • 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
  • InstallationApp codePhone capabilitiesLanguageCertification:- ReliabilityPerformanceSecurity
  • Windows Phone 7 Unleashed Session 1

    1. 1. Bruce D. Kyle<br />ISV Architect Evangelist<br />Microsoft<br />Windows Phone 7Unleashed<br />Session I<br />
    2. 2. Session 1 : Getting Started<br />
    3. 3. Session 1 Agenda<br />WP7 – Phone Overview<br />Application Architecture<br />Application Life cycle<br />Hardware Foundation<br />Application Bar<br />Panorama and Pivot<br />Red Threads<br />MVVM<br />Marketplace<br />
    4. 4. A different kind of phone,designed for a life in motion<br />Philosophy<br />Customer<br />Design<br />Experience<br />Platform<br />
    5. 5.
    6. 6. The Windows Phone Design System Codename “Metro”<br />
    7. 7. Integrated Experiences<br />PEOPLE<br /> OFFICE<br /> PICTURES<br /> MUSIC+VIDEO<br /> MARKETPLACE<br /> GAMES<br />
    8. 8. Standardized Hardware Foundation<br />Capacitive touch<br />4 or more contact points<br />800 WVGA / 480 HVGA<br />Sensors<br />A-GPS, Accelerometer, Compass, Light, Proximity<br />Camera<br />5 mega pixels or more, flash required, camera button required<br />Multimedia<br />Common detailed specs, Codec acceleration<br />Memory<br />256MB RAM or more, 8GB Flash or more<br />GPU<br />DirectX 9 acceleration<br />CPU<br />ARMv7 Cortex/Scorpion or better<br />480 WVGA / 320 HVGA<br />Hardware buttons | Start, Search, Back<br />
    9. 9. Session 1 : The Architecture<br />Building the Foundation<br />
    10. 10. Software Architecture<br />Applications<br />Your App UI and logic<br />Frameworks<br />Silverlight<br />XNA<br />HTML/JavaScript<br />CLR<br />App Model<br />UI Model<br />Cloud Integration<br />Xbox LIVE<br />Bing<br />Location<br />Push notifications<br />Windows Live ID<br />App management<br />Licensing<br />Chamber isolation<br />Software updates<br />Shell frame <br />Session manager<br />Direct3D<br />Compositor<br />Kernel<br />Hardware BSP<br />Security<br />Networking<br />Storage<br />A-GPS Accelerometer Compass Light Proximity<br />Media Wi-Fi Radio Graphics<br />Hardware Foundation<br />
    11. 11. Windows Phone 7 Frameworks Details<br />Windows Phone Frameworks<br />Camera<br />Device Integration<br />Launchers & Choosers<br />Windows Phone Controls<br />PhoneApplicationPage<br />PushNotification<br />WebBrowserControl<br />Sensors<br />PhoneApplicationFrame<br />Silverlight Presentation and Media<br />XNA Frameworks for Games<br />Controls<br />Drawing<br />IsolatedStorage<br />Drawing<br />GamerServices<br />Media<br />Graphics<br />Shapes<br />Markup<br />Media<br />Navigation<br />Audio<br />Content<br />Input<br />Application Object<br />Common Base Class Library<br />IO<br />Runtime<br />Resources<br />Globalization<br />Text<br />Net<br />Reflection<br />Location<br />Diagnostics<br />Collections<br />ComponentModel<br />Configuration<br />Security<br />ServiceModel<br />Linq<br />Threading<br />
    12. 12. Cloud Integration<br />Windows Phone<br />Your Web Service<br />Custom Web Service<br />Windows Phone Application<br />Existing Web Services<br />Notification Service<br />Location Service<br />Microsoft Services<br />Frameworks<br />Cloud integration client services<br /><ul><li>Built-in user experiences and APIs integrated with key Microsoft services
    13. 13. Familiar API frameworks for interacting with existing Web 2.0 services
    14. 14. Rich support for incorporating custom web services into app-specific experiences</li></li></ul><li>UI Model: Familiar Web Concepts<br />Web application<br />Provide media represented as HTTP resources linked by URL’s<br />Phone application<br />Provides UI as XAML pages connected into cross-app flows by URI’s<br />System tray<br />Shell frame<br />Requests pages, renders UI, and handles navigation across apps<br />Web browser<br />Requests HTTP resources, renders them, and handles navigation across sites<br />App bar<br />Sessions and back stack<br />Groups together sequences of pages corresponding to a user’s activity across apps<br />History and tabs<br />Groups together sequences of HTTP resources corresponding to a user’s activity across sites<br />
    15. 15. Session 1 : Page Types<br />Building the Foundation<br />
    16. 16. Splash Screen<br />Not really a page… <br />Just a jpg<br />
    17. 17. Single Page<br />
    18. 18. Application Bar<br />Automatically added to new page<br />But commented out<br />Can be done in XAML or code behind<br />Two Parts<br />ApplicationBarIconButton (Limit 4)<br />ApplicationBarMenuItem<br />You can set the opacity (0.0 – 1.0)<br />Automatically Rotates and Adjusts<br />
    19. 19. Application Bar<br />Best Practices<br />Use instead of your own menu system<br />Use the default system theme color<br />Use Opacity of .0 , .05, 1<br />If Opacity is < 1 Screen is Full : Otherwise Screen will be shorter<br />Do not use an Icon button for  Back<br />Don’t use more than 5 Menu items ( between 14 and 20 characters)<br />
    20. 20. Panorama<br />
    21. 21. Panorama<br />
    22. 22. Panorama<br />
    23. 23. Panorama<br />
    24. 24. Pivot<br />
    25. 25. Pivot<br />
    26. 26. Pivot or Panorama??<br />
    27. 27. Demo<br />Getting Started<br /><ul><li>Orientation
    28. 28. Keyboard Input
    29. 29. Application Bar
    30. 30. Panorama
    31. 31. Pivot
    32. 32. Splash Screen</li></li></ul><li>Session 1 : Red Threads<br />
    33. 33. Red Threads<br />Optimize for “life maximizers”<br />Red Threads<br />A thread or a theme that runs throughout the entire user experience<br />Three Red Threads<br />Personal<br />Relevant<br />Connected<br />
    34. 34. Red Threads<br />Personal<br />Your Day, your way<br />Present information that is pertinent to user<br />Consider this almost as if every WP7 application should be like a dashboard the filters information down to your role<br />
    35. 35. Red Threads<br />Relevant<br />Your people, your location<br />Show information pertinent to the environment the user is currently in<br />An example would be a locator for sporting events around the user based on GPS<br />
    36. 36. Red Threads<br />Connected<br />Your stuff, your piece of mind<br />Application should be able to interact with networked information (Cloud, online services) BUT not be dependent on this<br />Make sure the user experience is high even in a disconnected state<br />
    37. 37. Session 1 : MVVM<br />Model View View Model<br />
    38. 38. MVVM<br />MVVM stands for <br />Model<br />View<br />View-Model<br />
    39. 39. What's MVVM?<br /><ul><li>an architectural pattern created by John Gossman from WPF team
    40. 40. is a variation of MVC pattern
    41. 41. is similar to Martin Fowler’s PresentationModel pattern
    42. 42. WPF Data Binding & Commanding</li></ul>View<br />ViewModel<br />Model<br />
    43. 43. Motivation and benefits<br /><ul><li>Testabiltiy ( ViewModelis easier to unit test than code-behind or event driven code)
    44. 44. Clearseparationbetween User Experience designer and developer
    45. 45. Increases the "Blendability" of your view
    46. 46. Model never needs to be changed to support changes to the view
    47. 47. ViewModel rarely needs to be changed to support changes to the view
    48. 48. No duplicated code to update views</li></li></ul><li>MVVM<br /><ul><li>View knows ViewModel
    49. 49. ViewModelknows Models
    50. 50. But not vice versa.</li></ul>View<br />ViewModel<br />Model<br />
    51. 51. Model<br />Typical class that covers a database<br />Could be a WCF Service and its client reference<br />
    52. 52. ViewModel<br />Provides data to and from the View<br />Responds to both the View and the Model<br />Informs the View of changes in the data<br />Reusable (at least much more than code behind a form)<br />
    53. 53. ViewModel<br />Knows nothing about the View<br />Does not “push” data into the view<br /> TextBox1.Text = object.Name()<br />
    54. 54. View<br />Uses Binding to “subscribe” to the ViewModel<br />Interprets business data and state of ViewModel to the human<br />Nothing but Presentation - XAML<br />No or minimal code-behind<br />
    55. 55. Cons of MVVM<br /><ul><li>lack of standardization so everyone has own favor
    56. 56. For simple UI, M-V-VM can be overkill</li></ul>View<br />ViewModel<br />Model<br />
    57. 57. MVVM Light Toolkit<br />
    58. 58. Third Party Support<br /><ul><li>Prism
    59. 59. MVVM Light
    60. 60. Caliburn
    61. 61. Silverlight FX</li></li></ul><li>Session 1 : Marketplace<br />
    62. 62. Application Marketplace<br />Enhanced Discovery<br /><ul><li>Easy to find great applications, games
    63. 63. Fun to browse the marketplace</li></ul>Simple, Reliable Acquisition<br /><ul><li>Try before you buy
    64. 64. Buying and downloading content is a breeze
    65. 65. Payment flexibility (MO billing and credit card)
    66. 66. Easy application updates</li></li></ul><li>Test Criteria Pillars<br />technical validation<br />policy validation<br />market validation<br /><br />
    67. 67. Publishing Process<br />Upload Application (XAP)Meta Data (Icons, descriptions, icons)<br />Check for size (< 500 mb)<br />Recommended size < 20 MB for OTA<br />Check Application code (No Native API)Check if Type SafeNo Debug Symbols<br />Check for Phone Capabilities<br />Check languages<br />Application and Game Submission<br />.xap<br />.xap<br />.xap<br />.xap<br />.xap<br />.xap<br />.xap<br />.xap<br />.dll<br />.dll<br />.dll<br />.dll<br />.dll<br />.dll<br />.dll<br />.dll<br />App<br />Packaging &<br />Validation<br />App<br />submission<br />Marketplace<br />Windows Phone 7 Deployment Service<br />Apply<br />Test <br />Criteria<br />Add<br />Metadata<br />Sign<br />Add Metadata and repackage application.<br />Sign XAP and appears on Marketplace<br />Check the app works (does it crash, hang, etc..)<br />Start splash in 1 second<br />Accept user input 19 secondsTest for malicious code<br />
    68. 68. Device Unlock for Application Development<br />api<br />Unlock retail devices for development<br />Manage registered devices through the<br />developer portal<br />3 devices/year<br />1 device/year students<br />
    69. 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.<br />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. <br />MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.<br />
    70. 70. Live Tiles<br />