Original Link: http://www.anandtech.com/show/2969/windows-phone-7-series-the-anandtech-guide
Windows Phone 7: The AnandTech Guideby Brian Klug on March 21, 2010 12:00 AM EST
Microsoft MIX 2010 has drawn to a close, and with it comes our concluding wrap-up of everything that there is to discuss about Windows Phone 7 Series (henceforth WP7S).
Let's start at the beginning - WP7S does away completely with everything Windows Mobile. That means Windows Mobile applications won't run on WP7S, hardware running Windows Mobile won't run WP7S (including HTC's HD2), and Windows Mobile is no longer being actively developed. Existing hardware will get support for corporate clients, and the developer tools will remain, but they won't be actively developed. Consider Windows Mobile officially banished from the Microsoft kingdom, and you get the perspective. To give you an example of just how banished Windows Mobile is, there was virtually no discussion of porting applications from Windows Mobile to WP7S - this is a completely different platform. Microsoft wants developers to forget about Windows Mobile and immediately start thinking WP7S. The sense of urgency is because Windows Phone 7 Series will ship before the end of the year ("Holiday 2010").
Microsoft has tossed out the Windows CE-derived, aging UI of Windows Mobile. In its place, it has created a typographically-driven "user experience" that takes taken nods from Windows Media Center, the Xbox Dashboard, Zune HD interface, and urban signage. It calls this style "metro."
Metro - "It's about content and typography"
Instead of standalone application icons, WP7S uses "tiles." In practice, these are almost the same thing, except developers can both change the icon and dominant text to notify the user at-a-glance of status changes or updates. Tiles are supposed to be animated and dynamic. Tiles then launch into sessions and pages. The user interface bleeds off the sides - Microsoft wants people to navigate right to left across a page, teasing the user with elements from neighboring sections. Tiles are rearranged on start page much the same way they are on iPhone OS - pressing and holding levitates a tile, from which point you can either delete the tile (by clicking a broken heart) or drag and rearrange.
Tiles have feelings too...
Optionally, you can launch applications from a comprehensive list view as well.
The UI can be loosely customized, but right now it boils down to four different "accent" colors - which are the tile and UI highlighting colors - and "light" or "dark" for an either black text on white, or white text on black experience. Part of this customization is to leverage the battery-saving properties of AMOLED screens which consume far less power with white text on a black background.
Next are what Microsoft is calling "hubs." These are usually double-wide tiles, and serve as sort of an application for organizing your applications. For example, instead of having a lot of standalone applications which edit or modify photos spread throughout the launcher, you can optionally also launch them through the photo hub right alongside where you view pictures. Another example would be the way apps like Last.fm can themselves be launched from within the music + video hub, right alongside your Zune collection and play history. So far, there are hubs for people, pictures, office, music + video (Zune), marketplace, and games.
Note "apps" to the right. Microsoft is hip.
What each of the hubs do is pretty self explanatory. People is where you'll find all your exchange and local contacts, Pictures is for albums and slideshows, Office includes Excel, Word, and OneNote documents, and Music + Video bundles Zune music and videos alongside other media on WP7S. Marketplace is WP7S' take on an application store, and Games has tight integration with Microsoft's cloud services, including Xbox LIVE. More on that later.
Platform Architecture, Multitasking, and User Experience
There's a bit of confusion circulating around what form background processing or "multitasking" exists in on Phone 7 Series. A distinction needs to be made about multitasking at the OS level, background processing from the point of view of a standard marketplace-installed application, and multitasking as presented to the end user. To fully understand the situation, we need to talk about the software architecture. Let's dive into the details.
WP7S' Software Architecture
First off, WP7S itself is a fully fledged multitasking operating system. Applications are called "sessions," and inside each session are other processes, called "pages." WP7S uses a state-based model to allow pages to be restored to the state they were at previously. When you leave a particular page or session, WP7S generally leaves the process running, until the dominant page with focus requests resources that require the old page to be terminated. At this point, the state of the prior page is saved temporarily. This process is called "dehydrating" the application. When you return, the page is "rehydrated" with the state data from before, allowing you to return:
The infamous slide illustrating state-saving, and suspended process killing
But the other side of the story is that a select number of first-party applications are allowed to be persistent, and truly run in the background. These are specific use scenarios that have been highlighted which Microsoft believes make sense. Those include loading a website in the background, playing music from the first party Zune music player, and allowing the phone to continue in the background. Other third-party applications, however, can be killed after suspension.
So the WP7S platform itself supports simultaneous process multitasking, but not for marketplace-installed third party applications. It's as simple as Charlie Kindel put it, "in this release, you cannot write code that will run in the background." So although multitasking is there, it isn't something that will be made accessable to third party developers. If you don't believe me, check out this demo screenshot from Istvan Cseri's awesome WP7S architecture deep dive presentation:
Two sessions, three pages, all running. Multitasking is there, you just can't use it. Yet.
It's even more compelling to see it in real time:
I asked Istvan after his demonstration flat-out whether there was any way that third party devs could enable multitasking for their programs. Be that setting a flag for persistent background execution, obtaining certification through additional marketplace vetting, or a lightweight executable. Pandora has become the perfect example of the kind of multitasking users pine for; streaming radio running in the background, with the same persistence as the first-party music player. I asked whether this use scenario would be possible on the WP7S platform scheduled for release holiday 2010. The answer was as clear as it was disappointing: no.
So you're probably wondering, why can't third party developers write applications that run persistently in the background? For now, it's because Microsoft isn't sure how to allow it without the potential for battery-draining to happen. Power users like AnandTech readers are able to make the distinction between a dead battery caused by the platform being poorly written, and poor battery life caused by running an application in the background. But ultimately, Microsoft is worried that your average end user won't see the distinction, instead faulting the entire platform as having poor battery life and power management.
Charlie Kindel, Microsoft's leading Windows Phone 7 Series evangelist, shared an anecdote several times about how a leading competitor's phone allowed for implicit multitasking (leaving applications running unless explicitly closed) which led to a poor end user experience, and dead battery for his daughter.
If you've ever used a Windows Mobile phone, you're probably completely familiar with that scenario. And it goes beyond just battery life; there's also the question of how best to allocate resources when other things are using CPU cycles and memory in the background. That kind of gradually-degrading performance is another Windows Mobile-ism Microsoft is dead serious about not letting happen. There's also the fact that existing SoCs are barely powerful enough to make running a single application feel quick. It won't be until we get multicore Cortex A9 or Intel Moorestown class hardware before we have the horsepower to multitask without a tangible performance impact.
I pitched an idea to Andre that he seemed receptive to while we talked about the reaction tech community had to the no third party multitasking announcement. As it stands now, multitasking isn't being included almost entirely as a design decision; Microsoft wants to get it right the first time so that the end user, out-of-box experience isn't like the one Charlie Kindel's daughter had. Its concern is that the lowest common denominator of users will attribute the rapid decrease in battery life to a platform or hardware problem, not just the sad reality of how quickly constant radio traffic and access to the audio stack can drain the battery.
What I argued is that users need to be empowered to make the decision between unitasking and multitasking themselves. They need a clear and obvious visualization about what the current power demands on the hardware are, and a prediction of how long the device will last based on that current use scenario. The analogous comparison is so obvious, I'm surprised nobody has made it yet: the laptop. For years now, users have been given direct control over whether they want to sacrifice battery life for performance, or performance for battery life. The obvious next step is to both extend this profile-based decision making to the mobile phone, and the problem will solve itself. I argue that if notebook users can do it and fully comprehend it, mobile phone users can as well.
Users already are forced to shape their expectations for both call quality and data throughput based on cellular signal visualizations (a far more nebulous metric than an unambiguous power report from the hardware). I argued that this same visualization and feedback should be passed onto the user for battery life and power draw so they can shape expectations and make decisions about what's best for them. Andre said he'd pass my thoughts on. It could be that this generation of ARM hardware doesn't have the metal taped-out to report power use in realtime, but in time, its offerings (and offerings from intel) must. Even then, it isn't as simple as enabling power reporting on the SoC, carriers think they know what's best for the user and are eager to value-add with their own performance and battery targets. It will be an uphill battle to wrangle control out of their hands, and into users'.
Three Kinds of Notifications
Fitting in directly after multitasking are notifications, which Microsoft hopes developers heavily leverage even after multitasking becomes viable. There are three primary methods of notifications baked into WP7S thus far.
The first is a nod to WebOS' less intrusive method of sliding notifications in at the bottom. Instead, notifications slide in from the top ala Android. These are called "toast" notifications, since they're animated like toast popping out of a toaster. Funny, right? The next is notification through tiles. Developers can push new images to the tile, as well as new text atop the tile, letting users know something has changed. A frequent demo was illustrating that the smiley atop the SMS application changes as new messages arrive, in addition to the counter. Lastly, in-application notifications where the dialog slides down revealing new information. We've seen this last kind of notification in virtually every implementation; it isn't so much a true notification as it is a page event.
Top left - Tile. Bottom Left - Toast. Right - In-App.
All three of these notification schemes fully leverage a backend push notification service, similar in architecture to iPhone OS' push notifications. This is what Microsoft wants developers to use to mitigate the lack of background processing, very similar to the message Apple has been communicating for some time now. It doesn't cover all the bases or every possible use scenario, but does save battery and allow a way for third party applications to alert users.
Interestingly, the incoming phone call situation is another notification still being finalized. We've seen briefly what the notification looks like, and at present it appears to look like a larger "toast."
The State of Cut and Paste
Microsoft stated explicitly and rather abruptly during a Q&A session during day two of MIX10 that there will be no copy and paste support in Windows Phone 7 Series. The annoucement was as simple and unambiguous as that; current plans are that Windows Phone 7 Series hardware shipping holiday 2010 will not have cut and paste support.
This is relatively ironic, considering Windows CE and Windows Mobile have had copy and paste support since day one. Furthermore, Windows Mobile users long cited lack of copy and paste support as a fundamental shortcoming present in other competing OSes. Obviously, having no support for clip-boarding or copy and paste is a step backwards. At this point it's a decision backed up by what Microsoft cites as a number of use studies which show people don't really use copy and paste. Microsoft left the door open slightly, noting that it "isn't sure when it will be added," but then later clarified and noted that it would likely not be included in the current release.
The reasons for this decision are ultimately puzzling. Microsoft cites a number of use studies mentioned earlier where users generally focus on a few predictable forms of information: addresses, phone numbers, or snippets from a web page. Instead of letting users copy and paste this information, it's hoping that users long-press on context-highlighted text and take action from there. "People often want to take an address and view it on a map, highlight a term in the browser, and do a search or copy a phone number to make a call. Instead of the user manually doing a copy and paste in these scenarios, we recognize those situations automatically and make them happen with just one touch," said Casey McGee, a senior marketing manager in Microsoft's Mobile Communications Business group.
The implementation is relatively similar to what we've seen already on iPhone OS. Text the OS recognizes as being a semantic match for either a phone number or address is highlighted. Tapping on those launches either the dialer, or Bing maps, as expected.
Note the orange text - these are clickable
Longer presses on almost anything result in another dialog appearing. From here, you can forward through SMS or email if the selection is text (or a URL), or save to the photo library or MMS if it is a picture.
Microsoft hopes this intelligent data-recognition process mitigates lack of copy and paste, but in practice there are many more use scenarios where true copy and paste support is advantageous.
Marketplace and Third Party Applications
The Windows Phone Marketplace is the exclusive way for users to install applications on WP7S - though corporate developers building applications for a few hundred people were promised their own alternative before launch. The marketplace hub itself is, for all intents and purposes, very similar to Apple's App Store marketplace model. There's one-time billing method entry, support for updates, categories, featured and rated applications, and everything we've grown used to expecting from an "App Store."
However, there are a few notable and important exceptions. First off, the marketplace will be the exclusive place to purchase LIVE enabled games, music, and third party applications. Virtually everything you can buy on the phone will be sold through marketplace.
Next on the list is that marketplace will allow an API for developers to distribute trials of their software. Developers can design whatever trial expiration criteria suits them; during sessions examples such as elapsed time, level based, or number of application launches were tossed around. After the trial expires, the marketplace works just like you'd expect it to - users can be upsold either directly through the application, or the marketplace directly. This is a boon for try before you buy shopping, which is still absent from Apple's App Store, leading popular developers to create "lite" titles. Of course, in that scenario, user data is lost when migration from lite to full versions takes place. Because the trial marketplace application in most cases is the full version (just with trial checks inside), user data will not be lost when a user upgrades to the full version.
In addition, carriers can sideload and preload applications on WP7S. This is the "Contoso" menu item in the above picture (Pocket PC and Windows Mobile users should be familiar with the reference). Letting carriers value-add through both sideloading and preloading their own branded applications is a mixed bag. On one hand, it's a bargaining chip WP7S has to bring to the table when OEMs sit down and negotiate bringing hardware to a specific carrier. On the other, it ultimately leads, again, to a fractured user experience. Out of the box, applications available on one carrier will not be available on the other. At present, no carrier has truly offered a compelling application, but it isn't farfetched to see something like that happening eventually. There's also of course the stigmata attached to buying a phone preloaded with a bevy of carrier-branded applications. There's a perception that a clean wiped device is exclusive or higher-end - it's the OS X and iPhone effect here - and Microsoft will have to be careful about what it allows carriers to preload to avoid overwhelming end users or damaging its brand.
But what carriers are really going to like is the optional way the marketplace can bill app purchases. In addition to traditional credit card billing, billing through the mobile operator is now an option, one which will no doubt appease carriers even more worried about becoming "dumb pipes." No details were disclosed during MIX10, but there's no doubt some revenue sharing that will take place between Microsoft and carriers should they go this route. Developers still get the disclosed 70% revenue share either way.
Third party applications will present themselves primarily as "tiles" on the main launch page (note that third-party applications can only be single-wide tiles; double wides are reserved for first-party applications). Additionally, tiles can also extend themselves through appropriate "hubs." This is where Microsoft hopes to begin to chip away at the application-centric design other platforms are built around. An example given was how WP7S' colorize application both exists as a tile, and an entity within the pictures hub - it can be launched in either place since ultimately it modifies pictures.
The remainder is all the details. Marketplace application submission will begin this coming summer, illustrating that Microsoft wants a strong catalog of applications at launch beyond what we've already seen. At present, the marketplace will support application sales in 30 markets worldwide, illustrated below. There's still a $99 yearly fee to be part of the development program and submit applications, although developers can collect revenue even after their yearly subscription has expired. In addition, debugging on a hardware of your choice (rather than the emulator) will require an unlock through a registration process with Microsoft.
Marketplace - Application Vetting
Marketplace also comes with the caveats attached to a uniform application distribution model, not the least of which includes a validation, vetting, and digital signature process for all applications. Let's be clear - WP7S only runs signed code, and to get that signature, you'll need validation. Each time you run the application, WP7S will check that application's signature against the marketplace, both to check that it's valid, and that hasn't been revoked. Yes, marketplace has an application kill-switch.
Application Submission Workflow
There are three major categories of testing criteria thus far. Microsoft is calling them "test criteria pillars":
- Technical Validation
- Applications are reliable
- Applications are resource friendly
- Applications are free of malicious software
- Applications do not interfere with phone functionality
- Policy Validation
- Meets Microsoft standard for global content policies
- Meets application type guidelines
- Market Validation
- Evaluated against regional policies - is it legal to sell in this market?
- Localization review
They've strongly emphasized that this process will be completely open, that an NDA will not be required to see the application provider agreement, and that they will "publish everything about how the marketplace works." I was on the edge of my seat the whole time for more specific details or a screenshot of a developer access panel with clearly marked status steps, but no such details came. I get the feeling they're still trying to strike some kind of balance between policy requirements and openness that actually fosters useful and innovative applications. Microsoft insists that this kind of application vetting is necessary to deliver "really good end user experiences." Part of that is only allowing "developers with the best intentions" into the marketplace.
There's also the disturbing "content policies" smell test under policy validation. This is a nod to the arguably draconian policies that recently resulted in sweeping deletion of softcore porn applications from Apple's App Store. Microsoft is apparently taking a similar route of having applications pass a content test for validation - at a PG-13 rating. Sorry folks, that means no softcore porn applications in the marketplace.
As far as turnaround time from submission to approval to marketplace presence ready-for-purchase, Microsoft is hoping to meet a 5 day turnaround time for 98% of content. Thus far, they've been successfully meeting that bar for Windows Mobile's "Windows Marketplace for Mobile," hopefully there's equally little friction for WP7S' "Windows Phone Marketplace."
So on one hand, Microsoft is pinky-swearing they won't be evil and will actually tell you what they're doing during application approval, but on the other, haven't given any specific examples. This is another circumstance where the details just haven't been fleshed out yet. Time will tell exactly how open this process is, and whether in practice it's any different than Apple's controversial App Store model. Microsoft has already launched a large number of partners, and demonstrated at least 14 third party applications already in development, which you can see in the gallery below.
Gaming on Windows Phone 7 Series
On the last day of MIX10 I got a very special chance to sit down for a little over an hour with Andre Vrignaud (who works with the Advanced Technology Group at Microsoft on Xbox LIVE) and an ASUS-built WP7S prototype. We proceeded to have a discussion about the future of the platform with a copy of it in front of us.
Unbranded ASUS hardware - Back
The first thing we did was fire up a copy of the XNA-framework-leveraging gaming title, "The Harvest." If you haven't noticed already, this simple yet compelling game demo has become the paradigm example Microsoft has selected to advocate two core features it hopes make WP7S a compelling gaming platform. I've gone over this previously, but bear with me. First is the power of code re-use across what Microsoft is calling the "three-screens" users interface with: TV (through Xbox 360), the desktop (Games for Windows), and now WP7S.
3 Screens, Frameworks
The Harvest reuses 90% of its code between the three platforms, as well as virtually all the artwork and textures, and was developed in 3 weeks by developer Luma Arcade. With the exception of the input paradigm, which is different from Xbox to PC to WP7S, this is virtually the exact same game running at the exact same resolution across all three screens. Second is the power of leveraging cloud services already offered by Microsoft like Xbox LIVE for seamless integration across those three screens. That means the same avatar, same friends, same communication tools, and potentially even persistent gamestates across them.
I managed to get continuous video of the device booting (so we can see the boot splash screen), a bit of interface, and 80% of the level:
I snagged what I believe to be the first photo of WP7S' boot splash screen.
Apologies for the depth of focus at the top; unfortunately the build details aren't visible. Most I can make out are the words "Region," "Build," "BIOS," and "[...] 29, 2010." If you want to pick apart the original image, you can find it in the gallery. Either way, it isn't really important since there were so many different builds of WP7S running around the entire conference.
The first thing that struck me while playing with the demo was how little justice any of the videos I've seen so far do the title; it looks fabulous. That's likely a function of the dot pitch of the 800 x 480, 3.7" display well exceeding the spatial resolution of the video hardware media venues (myself included) are using to record the phone. I think it's safe to say it looks above the quality of titles I've seen on any Android hardware or the iPhone 3GS. And this is without any custom programmable shaders to boot! More on that later. My point is that there's something lost in all of these demonstrations until you really get to sit down and try the hardware yourself.
Qualitatively, this hands-on felt smoother and like it had a higher average framerate than in the demonstration video from the keynote in our previous article. Pay attention specifically to how framerate remains largely unaffected when the achievement unlock bar transitions down and back up. Now compare that to the previous video. It didn't feel nearly as laggy here.
Next up was Goo Splat, a Zune HD game written in XNA Game Studio 3.1 which was ported to XNA Game Studio 4.0 and WP7S. What's important here is that the title leverages four point multitouch. Why four point when all apps predominantly use a maximum of two? To afford developers the flexibility to make games and other software leveraging much more complicated input schemes. And to of course support creatures with more index fingers and thumbs.
It's fair to say that porting games from XNA GS 3.1 to XNA GS 4.0 will be a lot easer than trying to play multitouch games while recording them at the same time.
Andre and I talked about what casual gamers can expect to get out of WP7S. FPS titles are still the bread and butter of both console and PC gaming, but I asked about what genres he thinks will really leverage the unique set of strengths and weaknesses present on a handset. His answer was asynchronous gaming, and I think this is largely where cloud service integration will shine. Users check their phones when they have time - in line, waiting at a bus stop, walking, or while being idle. It's in these few moments of downtime that Andre (and the rest of the XNA team) hopes will live an asynchronus game of scrabble or turn based strategy against another opponent with a WP7S device.
This is where the potential of leveraging Xbox LIVE's existing userbase, as well as WP7S really could shine. I asked Andre if a Gold subscription was required to get in on WP7S gaming, and his answer was no - all WP7S games will work with a free silver account.
The Browser: Somewhere Between IE7 and IE8
I mentioned earlier that there were a ton of different builds of the WP7S running around on the ASUS-built phone hardware during MIX10. I think that's almost an understatement; I can mentally count at least three different builds from visual clues alone. If you watched the videos, you likely heard me allude to the "squeeze" effect that's been added to the tiles in the newer builds of the phone I saw on Monday. In these, the tiles compress like a spring, slightly, when you reach the end of the stacked list. The hardware demo I got hands-on with was a game demo phone, not an overall UI demo phone. This explains why it lacks the newer squeeze effect in the UI and was just a tad rougher around the edges in some places, but had all the game demos installed.
The other unfortunate consequence of this hardware being a game demo phone was that it lacked a SIM. Undeterred, I hastily popped the SIM out of my phone, which Andre graciously (and surprisingly) installed for me.
A paperclip, a paperclip, my kingdom for a paperclip!
I wasn't allowed to grab any photos of the phone with its battery cover off, though there's probably not much to be learned except for this phone's IMEI.
A few seconds later, and we had signal and were on AT&T's network. I fired up the browser first. WP7S ironically chose nyt.com as the default start page, likely a nod to Apple's prodigious use of the New York Times webpage in early iPhone marketing to demonstrate that it had a real browser. Initially, all of the status icons at the very top are hidden except for the current time. They gracefully slide down when this upper region is tapped. This is just another example of Microsoft's "Metro" less-is-more philosophy at work. Note the G to the right of the two signal bars; I'm speculating that G stands for GPRS, which partially explains why cellular data was so slow. I should note that AT&T's 3G and EDGE services were extremely slow in Las Vegas the entire time, and even worse at the conference venue. I rarely saw speeds above 150 kilobits/s on 3G or EDGE, if at all. I fully attribute the browser loading slowness to network connectivity.
It's difficult to get a good feel for the browser without a better network connection. There was also a bit of difficulty getting the screen to register my zoom out gesture. Throughout the conference, false touches on the demo hardware abounded. I did notice that this demo device had a plastic film atop the screen, which could have been a contributing factor. Whatever the case, touch recognition still needs - and likely will get - tweaking across the platform.
We eventually gave up doing a lot of things I wanted to do online because of how slow the network connectivity was. I didn't get a chance to run any browser standards compliance tests in person, however the emulator includes Internet Explorer. Sadly, WP7S' browser still doesn't pass the Acid2 or Acid3 tests:
Acid2 and Acid3 tests, respectively
I pulled the user agent out, which is: Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0). Picking this apart, we can see that it's reporting itself as Trident/3.1, which is essentially Internet Explorer 7.0. This mirrors what I was told by some of the Microsoft engineers in-person, that the browser was somewhere between IE 7 and IE 8.
No Maps, Just Search
I browsed to Bing.com in the browser, and saw its relatively spartan mobile version:
Even Microsoft acknowledged that their mobile version of Bing needs work.
We moved on to the first-party Bing search application. You'll notice there's no maps tile on the home screen; this is because Microsoft really wants you to use search as your portal for finding everything. I'm told the search context includes everything on your phone, maps, and on the web. I'm told that search will include the scope of local SMS/MMS, and email as well. Microsoft wants you to use Bing search on the phone so much that they've mandated a hardware button dedicated for launching it.
Bing does its best to guess what kind of results are most relevant based on the search. The most common example was the difference between searching something like "sushi," (which should return locations of sushi restaurants first), and something destined for the web, like a website. To try that, I first tried searching AnandTech:
Bing Search Page
Search pivoted to the Web results category first, and returned us at the top of the list.
I then searched "Mexican Restaurant" in the hopes that it would return contextual, location-augmented results first. Search successfully pivoted to local first. Note again that in this video there are a places where images and maps should have appeared, but didn't because of the slow network. I'm also confident that I saw Bing maps on the platform, including the blue circle for our present location. Textures just didn't load in time due to the slow network.
Contextual search at launch will work for a wide variety of subjects including movies, celebrities, flights, and everything else that works through Bing search through the web.
Integration here was everything you'd expect it to be. Search results appear under a variety of categories: Web, Local, and News. Tapping on an entry under local then pivots to the relevant results about the location entity, in this case reviews and information about the location.
What I really noticed here is how easy it was to navigate between three separate applications (maps, Internet Explorer, and Bing search) without being constrained. You'll notice that although this isn't multitasking, we're able to use the back button to transition from, say, the browser seamlessly back to search results. Or from a relevant location entry in the search results, to its location on the map, and back. These are discrete "applications" but manifest themselves seamlessly atop each other.
Hands on With WP7S - Phone and SMS
This being a phone, it's surprising how little there is to talk about with regards to the dialer, phone, and messaging applications. I've been paying especially careful attention to what Microsoft is ready to show of the call in progress screens, incoming call dialogs, and the dialer. Of note is that all of the interface demos shown thus far completely circumnavigate the dialer; calls thus far have been entirely initiated from contacts, search, or contextually linked numbers in UI. The reason is that although the dialer is there, it isn't finished. You can't fault Microsoft for not showing something that isn't done yet. At the same time, it needs to get the same kind of re-thinking that the rest of the UI got between Windows Mobile and WP7S.
We've seen a handful of glances of the call in progress screen, but these vary from build to build. Notably, we can see the carrier string at the top right, although in one build it humorously shows "AT&T/Cingular Wireless," despite Cingular no longer existing under that name. On newer builds, it reads simply "AT&T."
This is blurry because it was up for all of 3 seconds
As far as the "text" SMS/MMS application goes, the interface in here is reasonably well fleshed out, but still not finished enough that Microsoft would let me get away with a photo or two of it. Our demo phone showed an interesting error message about failing to back data up to the cloud, but this was entirely because the phone hadn't had a SIM in it until 10 minutes prior. I did get a brief chance to play with the interface, and it has nice landscape to portrait transitions and the same sort of look as the rest of the interface, but I didn't get a chance to actually send or receieve messages.
These are the things that are likely going to be first on the list for WP7S Microsoft developers to tackle in the remaining months before launch. This basically wraps up the hands-on I had with the platform. You can check out the gallery below for all the photos we've got. Now let's dive into the rest of the details.
Office and Email Integration
Microsoft will tightly bundle its Office suite with WP7S. So far, we've seen examples of Outlook, OneNote, Word, Excel, PowerPoint, and SharePoint up and running. Of course, these have all been given a healthy dose of "metro" UI inspiration, with the selection of typograhpically-dominant pivots at the top, content down below. Of course, Office itself is a hub, although Outlook will exist outside as its own email application. Interestingly, the focus of the Office suite is no longer creating and editing documents, but quickly viewing and adding comments to prexisting documents synced or emailed. This shift in focus Microsoft is attributing to its own user feedback and research - they claim most users simply use Office to quickly glance at their documents. We'll see how close to the truth that is as time progresses. As an aside, I honestly have to wonder whether this data was generated from the same user demographic that can't be trusted with multitasking because they leave every application open...
We got the chance to see excel on its own, populated with real data as well as a relatively complicated chart. In addition, there have been a number of shots of Outlook out by itself. Outlook's focus is now on what the WP7S team is calling "email triage" - quickly being able to select and manage a number of messages at once. We only saw bits and pieces of Office at MIX10, and it's obvious that most of the suite isn't done yet. Microsoft has promised to unveil more about Office this June.
Of course every WP7S device is also a Zune. Microsoft expects you to use their first-party media player for music, video, and also sync. The integration is nothing new here for users who have already tried a Zune HD - it integrates with your Zune Pass, and lets you download music over cellular data or WiFi. Of course, only the Zune player is allowed to play music in the background at launch, although it isn't farfetched to see Pandora and other streaming music venues integrate their services in time through the "music + video" hub.
More importantly, however, is that WP7S will sync through Zune software - not ActiveSync. In addition, WP7S will try and sync with a desktop running the Zune software periodically over WiFi. Microsoft cites additional research data showing that users often leave their photos on the phone and neglect to sync them back to the desktop. It hopes to mitigate that by enabling sync over WiFi and automatically backing photos and media up to the desktop.
Given our transistor filled nature, one of our major concerns was discovering what System on Chip (SoC) lies at the heart of WP7S. This is especially the case given the strict, uniform hardware requirements stipulated for virtually all hardware manufacturers (it's like an iPhone made by 4 different companies?).
The basic hardware requirements are (as we mentioned earlier) the following:
- Capacitive Touch
- 4 or more contact points
- A-GPS, Accelerometer, Compass, Light, Proximity
- 5 megapixels or more, flash required, camera button required
- Common detailed specs, Codec Acceleration
- 256 MB RAM or more, 8 GB Flash or more
- No external storage support (no SD cards)
- DirectX 9 acceleration
- ARMv7 Cortex/Scorpion or better
- Two Supported Displays
- 480 x 800 WVGA : Aspect Ratio 3:5
- 320 x 480 HVGA : Aspect Ratio 2:3
However, we've dug up some more hardware details that are entirely new. Microsoft told me personally they've definitely already chosen a particular SoC, but aren't ready to state what it is. There's a dialog that takes place between OEMs, Microsoft, and carriers to decide on both the clocks and optimal performance/battery target for the device. My understanding is that this dialog is ongoing, and that the software giant will make a final announcement when it's settled. Although Microsoft has not announced whether it's the case, Qualcomm has already made an announcement of its own that Snapdragon lies at the core. We should know soon, but Tegra or any other choices are looking highly unlikely at this point. Speculate all you want, no amount of pressing would get Microsoft to disclose what they've chosen. We'll just have to be patient.
Hopefully Microsoft has chosen its WP7S SoC with the future in mind - the landscape will likely have changed significantly by Q4 2010, and Snapdragon as we know it today will be old news. Both the single core 8X50A Snapdragon at 1.3 GHz, as well as the 8X72 dual core Snapdragon at 1.5 GHz will likely have made their debut and start arriving in products by Q4 2010. It's entirely possible that one of these is the choices, but we just don't know yet.
There's some interesting stuff going on with the GPU on WP7S. Although we don't know anything about the specific silicon, we know a lot about the software implementation that needs to be rounded up thoroughly.
Let's start from the beginning. Remember from the earlier article how WP7S runs code across two separate frameworks - Silverlight, and XNA? Each of these have their own set of hardware accelerated functions that directly leverage the GPU. Furthermore, you cannot mix and match Silverlight and XNA frameworks at present, something Microsoft hopes to eventually reconcile, but not, you guessed it, in this release.
GPU Acceleration - Silverlight
There is a clearly defined set of transforms and optimizations developers can make to leverage the GPU on the phone through Silverlight. The Silverlight performance team is striving to add more hardware accelerated primitives, but at present, hardware acceleration is limited to:
- JPEG Decoders (PNG decoders are not implemented yet)
- Media Decoders (Video codecs, e.t.c.)
- 4 Composition Transforms
- Render Transform
- Perspective Transform
- Opacity Transform
- Rectangular Clips
The real interesting story, however, is about pixel shaders. Though the Direct3D drivers and GPU support programmable pixel shaders, the only pixel shaders enabled and exposed to developers right now through Silverlight frameworks are blur and drop shadow shaders. These are fully hardware accelerated. Developers at present cannot write their own programmable shaders; there is no API for doing so. The Silverlight team is working hard to add additional hardware accelerated primitives, and eventually allow custom programmable pixel shaders for developers, but it likely won't be done in time for this release.
The UI thread framerate (which is essentially the device framerate we as end users care about) will be limited to 30 FPS, although the hardware is capable of in excess of 60 FPS. 30 FPS has been chosen by the WP7S team as the framerate cap for battery life concerns, and also threw in the age-old somewhat nebulous human eye response argument. Virtually all of the demos shown during MIX10 had the 30 FPS cap applied, and most if not all seemed visually smooth. There was some objection from a few developers to the 30 FPS cap, however the battery life concerns are very valid. That said, gamers are picky, and iPhone OS is capped at a faster 60 FPS - it might be worth it to sacrifice some battery if developers want that extra response.
An interesting consequence of how much the Silverlight UI is GPU accelerated, is that the emulator packaged as part of the CTP bundle at developer.windowsphone.com/ requires WDDM 1.1 for hardware acceleration on the desktop. Otherwise, everything is CPU-rendered in the emulator, resulting in some relatively laggy performance.
GPU Acceleration - XNA
Recall now that while the primary phone UI and most "normal" applications will run atop the Silverlight framework, games requiring twitchier response and wishing to leverage code reuse across PC, Xbox 360, and WP7S will run on the XNA framework. WP7S supports full hardware accelerated 3D with one exception - programmable shaders. Microsoft will eventually do so, it simply hasn't finished an API for doing so for launch. In its stead, however, XNA offers four configurable effects (which are themselves shaders) which it helps will mitigate lack of custom programmable shaders at least until it can provide a polished API. WP7S XNA developer Shawn Hargreaves blogs:
"Instead of programmable shaders, we augmented the existing BasicEffect with four new configurable effects: SkinnedEffect, EnvironmentMapEffect, DualTextureEffect, and AlphaTestEffect. These are designed to run efficiently on the mobile GPU hardware, and I think do a good job of providing enough flexibility for developers to create awesome looking games, while also meeting our goals of being able to ship a robust and well tested product on schedule."
The XNA title I demoed, "The Harvest," leverages these effects and came off looking extremely competitive as mentioned earlier. Remember the different aspect ratios and screen resolutions I was concerned about earlier?
Screen Resolutions - To Scale
Well, the XNA tools for WP7S incorporates support for an on-GPU hardware scaler. Developers can elect to detect whichever resolution the software is running on and render appropriately, or choose one, render at it across both, and scale appropriately. Touch input is even scaled appropriately as well. As a further boon, because 800 x 480 can still be challenging for mobile hardware, developers can render under resolution and scale up to 800 x 480 as a last resort.
I alluded briefly to the emulator included in the developer tools released on the first day of MIX10. Originally, this emulator only included an Internet Explorer tile, foregoing any of the other bundled applications due to the fact that they're nowhere close to being finalized. Recently though, an enterprising developer has managed to unlock the applications that are already bundled within the ROM dump, lending some insightful new perspective to everything we didn't see at MIX10.
Obviously, there are parts of the emulator that are very polished, and other parts that are still very alpha. It's important to not get the wrong idea about this being representative of the polish of any of WP7S, and Microsoft has already made the following statement to Cnet's Ina Fried:
"When we decided to provide a Windows Phone 7 Series Emulator as part of the tools, we anticipated that people would attempt to unlock and explore the code. We have been very clear that the emulator is based on early code and is not reflective of the final user experience. Windows Phone 7 Series is still under development. The UI has been disabled to avoid confusion and allow developers to focus on testing applications on the underlying platform. We continue to recommend that developers use the emulator as provided to avoid any issues and unpredictability that may be introduced by an unlocked version."
We dug through everything that was inside quite comprehensively and have put together a short walkthrough as well as screenshots of much of the platform that likely won't make it to release. Obviously, things like the task manager are important to Microsoft engineers, but won't be present in the final build. The same can be said for Speed Type, which appears to be a tool for the WP7S team to get feedback about the most common soft keyboard typing issues for building out an autocorrect database.
At the end of our discussion, I talked with Andre about the work the WP7S team has ahead of them. It's hard to not get excited about just how dramatic this platform reboot is, but there's obviously still much to be done before launch Q4 2010. What really stuck out in his response was one line - he mentioned that the Microsoft team is approaching WP7S with a "crawl, walk, run" philosophy. Right now, they're still at crawl.
That isn't to say the team is crawling forward, but rather that they're nailing down core things first and plan to rapidly deploy extra features later. They call these extra features "delighters," and although copy and paste and multitasking won't be among them at launch, it's very likely (if not critical) that they come later. I asked about whether they're going to update WP7S devices continually - the same way older Zune hardware saw software platform updates years later - he confirmed this would be the case. There's something very Apple-like about this approach; focusing on what you have time for, only delivering what's done, and steadily updating. It's a refreshing difference from the oft-uncertain upgrade path most Windows Mobile devices were left at.
WP7S will have a hard case to make this holiday, against heavily entrenched competition - the same competition which will very likely have compelling updates of their own rolled out by Q4 2010. We'll likely see iPhone OS 4.0 before the year is over, and more flagship devices and software updates from Android. Microsoft needs to plan and develop for the future, and they're already behind - but they know it. The team will have to finalize and carefully decide on the remainder of their Marketplace criteria, get a number of carriers on board, nail their launch hardware with OEMs, build a large catalog of applications ready for launch, and keep their third party developers excited. The WP7S dev team knows it has this hard work cut out for them, but what we've seen so far is a promising and compelling deviation from the past. They've demonstrated they're not afraid to purge themselves of the old, and start anew.
It's a philosophy that's radical for Microsoft, a company that has built its empire on backwards compatibility. To have a key OS team within Microsoft accepting the fact that sometimes you need to douse the place, light a match and walk away is huge. That's exactly what Windows Phone 7 Series feels like. I only hope that the rest of Microsoft is willing to do the same, if necessary.