As many of my readers know, I’ve been neck deep in the Windows Phone. More recently, I’ve been digging into Windows 8 development as well. On my most recent trip, I spent quite a bit of time with the BUILD tablet. Good news is that it’s a pretty good piece of hardware. Even though it’s not ARM, I am still getting a good four hours of battery life. This version of Windows 8 is early but I do think there are some things that Windows 8 should learn from what they’ve done with the Windows Phone. Here is a short list of what I think the team should look at on the phone:
In-App Back Button
On the phone, the back button represents a major way to navigate in an application. In Windows 8, you can swipe back but that doesn’t take you back to the last page in an application, it takes you to the last Metro-style app. I know you can swipe up to show the ‘ApplicationBar’ and it can have a back button, but I think this is a mistake. The phone learned that users want a single back button that works everywhere…it’s more intuitive.
Hold Back Button
In Mango (7.5), you can hold the back button to get a list of the recently run apps. We need something similar on Windows 8. When looking for an app I am (was) running, just using the back swipe is not good enough. It’s too hard to tell what I was doing. I find myself going through the swipe-back list twice to find what I wanted (I find the app, but I just passed it so I slow down the 2nd time).
Simple Live Tile Management
The way that Live Tiles can be dragged and ordered on the phone works really well. People can pick it up fast. On Windows 8, I find myself confused about where the tile is going to end up. Is it in a list where it’s last? Can I drag it between two? I don’t get it. I love the grouping and the different sized tiles, but the management of it isn’t intuitive to me.
Anyone who knows me knows that a Windows Phone app that doesn’t use good InputScopes makes me crazy. The same is true for Win8. My problem is that there don’t seem to be any contextual keyboards (so far) on Windows 8. The layout of the default keyboard hides too many keys I want. And if they would embrace InputScope so that keys would appear that are contextually important – I’d be a lot happier with text input.
Related to the Input Scope issue is that fact that auto-correct seems to be missing completely. If it’s going to be a touch interface, you have to have integrated autocorrect (with a single dictionary). It needs to be integrated across the OS, not tacked on to WinRT (e.g. should work everywhere, not just in Metro Apps). Period. End of story!
While not everyone loves the copy/paste gestures on the phone, they work. We need another solution than the Ctrl-C/Ctrl-V solution I am using currently. Again, it needs to be integrated across the OS, not tacked on to WinRT (e.g. should work everywhere, not just in Metro Apps).
I am not letting Windows Phone off the hook either. One of the things that I think Win8 gets right are “Contracts”. Contracts are the ability for system-wide verbs to be implemented by producers and consumers. A good example of this is Search. You can implement the “You can search my app’s data” contract so that the search bar in Win8 includes your application in the list of apps to search. You can also implement the “You can search from my app” contract (the other side of that contract). There are a handful of these: Search, Share, Picker are three well known ones. There are apt to be more.
On Windows Phone we get some of this through Tasks and Choosers, but that really means that our applications can consume OS-level verbs (e.g. take a picture, get me an address). But contracts are what we really should have. I should be able to say “Share this from my app” as well as “Share through my app”. When an app wants to share a link, we should present them with a set of apps that can share information so I don’t have to have Twitter integration at the OS level. I could say, “Share This Link” and the user could pick to share it via Rowi instead of the Twitter integration.
What do you think the two could learn from each other?