Thursday, March 25, 2010

Windows Phone 7 Series



Last week I attended MIX10, Microsoft’s annual web developer conference, at the Mandalay Bay in Las Vegas.  Below are a few notes I took during sessions on Microsoft’s new Windows Phones, due to hit the market during the “holidays” in 2010.
I foresee three strengths over its future nemesis, Apple’s iPhone:
  1. Windows Phone will benefit from an enormous pool of .NET-proficient developers that are skilled in Silverlight web development,
  2. Multiple hardware vendors will provide competition in the market place and also a variety of form factors,
  3. Xbox Live experience for gamers!

Hardware

  • Simplified specs to make it easier for OEMs.
  • Microsoft will write all device drives.
  • 6.6GB hard drive.
  • 250 MB RAM.
  • 8GB Flash Drive.
  • Supports up to 4 touch contacts.
  • Resolutions: 800x480 and 480x320 (later).
  • CPU: ARMv7 Cortex/Scorpion or better.
  • Three Buttons: Start/Search/Back.
  • A-GPS.
  • Compass.
  • Accelerometer.
  • Vibration.
  • GPU: Supports DirectX9.
  • Hardware Vendors: Asus, LG & Samsung.

User Experience

  • Office applications (i.e. Outlook, Excel and Word) will be bundled with Phone.
  • Uses “metro” visual style.
    • Design philosophy invented for the phone that includes, white foreground, dark background, page animations and left-to-right sliding panoramic views.
    • Inspired by transportation signs.
    • Text is truncated at sides to prompt the user to slide the screen left/right.  Microsoft uses the term “panoramic view” to describe this layout style.
    • Absence of unnecessary UI.
    • Touch targets are larger than visual elements.
  • Supports most social networking services via the Windows Live aggregator.
  • Gesture support: tap, double tap, touch and hold, flick and pinch and stretch.
  • Phone requires Windows Live authentication.

Browser

  • Does not support Flash or Silverlight web applications!  Great, no ads!

Mapping

  • The Bing Silverlight map control is bundled with the Windows Phone SDK.
    This, of course, does not exclude third party mapping controls.
  • The Windows Phone SDK will include access to free geocoding, reverse geocoding and routing services.
  • When an app requests the location of the Phone, it must specify the required accuracy (i.e. low, medium or high).  The phone will then decide the method to use to return the required accuracy.  The Phone can use wi-fi, cell phone towers, GPS or any combination.  The GPS receiver is generally less desirable due its power usage and the time required to get a fix.

Developer Experience

  • Developer tools are “free forever”.
  • Must have Microsoft Visual Studio 2010 (on Windows Vista or 7).
  • Apps are tested using a device emulator or can be published to Windows Phone (connected via USB).
  • Apps can be developed using Silverlight or XNA (both using C#).
  • Apps have access to devices (e.g. compass, accelerometer, location and camera).
  • Recommended touch target ≥9mm with ≥2mm separation between UI elements.
  • Textboxes can be assigned “input-score” such as email, telephone number, url or simply text.  Each scope will automatically launch a specific virtual keyboard.
  • Scrollviews support flick scrolling out-of-the-box.
  • Accelerometers provide force detection in three dimensions.
  • Developers have access to microphone input as a WAV stream with only 10ms latency.
  • Can only render one MediaElement at a time. That is, it is not possible to play two videos at the same time.
  • App developers have unlimited isolated storage, that is, the Silverlight “sandbox” is only limited to the size of available disk.
  • App developers are encouraged to use the page navigation (introduced in Silverlight 3) to increase performance (reduce unnecessary page reloading).
  • There is only one foreground app.
  • Background apps continue to run but with limited resources.
  • The phone may kill background apps at any time.
  • Apps are informed of foreground/background switching so they can load/save session state.
  • Only HTTP/HTTPS protocol supported.
  • SL Apps can use XNA API (except display).  For example, a SL app can use the XNA API to play music.
  • Developers have access to a user’s stored music, photos and videos.

Applications

  • Apps are developed using Visual Studio 2010, Expression Blend and XNA Studio.
  • Apps published to Windows Phone Marketplace must first be certified, checked and signed by Microsoft.
  • App framework designed for easy install and removal.  Apps cannot execute code during install/uninstall time.
  • Apps can add support for “trial software” similar to games on Xbox Live Arcade.
  • Robust security models.  The phone verifies an app is signed and certified (i.e. un-tampered) before execution.
  • Both SL and XNA apps can apply for Xbox Live certification.  This will allow gamers to receive achievements.
  • Apps do not have access to user’s Windows Live account information, only a unique device id.

Push Notifications

  • When a Windows Phone receives a notification, it is displayed as an unobtrusive toast popup.
  • When a user clicks on a toast popup, the phone will automatically start (and switch) to the associated app.
    for example, email notification, weather update, new SMS message
  • Notification infrastructure managed by Microsoft.
  • Notifications from third parties services must be sent via Microsoft’s notification server.
  • Notifications NOT guaranteed to be received (e.g. bandwidth constraints)

Silverlight Apps

  • Microsoft: Emphatically “not Silverlight light”.
  • API extended to communicate with peripherals (e.g. GPS, microphone, compass, camera, accelerometer)
  • Display is 100% hardware accelerated

XNA

  • For 2D/3D applications like games.
  • Uses looping redraw programming model.
  • Game publishers can apply for “Xbox Live” status (i.e. earn achievements)
  • Display is 100% hardware accelerated

Other

  • Phone and PC can be wireless synchronized.
  • Microsoft would not comment on support for speech-to-text or text-to-speech.
  • Microsoft will allow users to remotely lock or wipe lost/stolen phones!

No comments:

Post a Comment