I took some time to look at the videos of Metro/Windows 8 and also download the Developer Preview. Plenty of information is already available at the MSDN website. Probably the best of the presentations is the one given by Jensen Harris - 8 traits of great Metro style apps. Taking these 8 great traits point by point I'd like to give you my impressions as a long time iOS and Mac developer.
- Metro style design
- Fast and fluid
- Snap and scale beautifully
- Use the right Contracts
- Invest in a great Tile
- Feel connected and alive
- Roam to the cloud
- Embrace Metro principals
Design guidelines are nothing new in the Apple world. And they aren't really new in the Windows world either although definitely not as clearly communicated or followed by Windows developers before now. Metro's interface dictates a certain look and feel which needs to be followed in order to keep the beauty of the design seen in the demos. Metro keeps the idea of a Start screen which is really just the equivalent of the Springboard App you see on iOS when you unlock the device. In some other ways the Metro interface seems even more restrictive than iOS in what developers are allowed to do. The design tradeoffs were made in the name of ease of use and if they result in a better user experience then that is fine. It is not clear whether the rules will be enforced as drastically in the Windows App Store as Apple's rules are enforced.
Animation plays a huge role in modern touch interfaces and has been present in OS X too for some time and as touch gestures have been added to OS X Lion we see more and more of this kind of feedback which gives the feeling of direct manipulation. Metro is no different in this regard and apparently a lot of support for animating the screen swipes and dragging tiles is built-in. What I haven't discovered yet is how well animation is integrated into the API itself. With iOS and OS X, Core Animation is, as the name implies, part of the core of the operating system itself. This means that it is always there and available to be used. It remains to be seen whether animation is as deeply integrated into the Windows 8 API. Because the legacy Windows API is still there and supported this is definitely a question that needs answering.
Snap and scale is just Microsoft's language for supporting different orientations and sizes. Scaling the interface is something that iOS programmers have been dealing with since the introduction of the iPad, and orientation changes even before that. One thing mentioned in the talk is semantic zoom, where the zoomed out view is not simply a pixel scaled representation of the zoomed in view but gives the user different information and options. This is actually nothing new in user interface design but it is nice to name it and support it with API. Frankly the reason semantic zooming is used so little on iOS at the moment is because it is just so easy to zoom views thanks in large part to Apple's APIs. But some built-in support for semantic scaling/zooming makes senses and is a nice innovation of Metro. The other nice feature of Metro is the ability to have two Apps share the screen. This becomes even more useful in the next topic.
Contracts might have been called a smart clipboard. Certainly OS X desktop has plenty of support for detecting and promising data types so that applications can share data. What has stopped this kind of support from passing to iOS is security considerations for the most part. iOS supports passing URLs between Apps but not a general way of finding out what Apps on the device can handle certain data types. The best you can do is hope that some App will handle the URL scheme. And Metro's ability to split the screen allows the receiving App to participate in the act of sharing. This looks like a great idea on the face of it and the one possible problem would be security. If this feature doesn't become a way for Apps to inject viruses into each other then it will be one of the strengths of Metro.
Tiles blow away icons with badges. There is no doubt about this. But of course they take up space. If iOS were to go this route we'd have fewer Apps on our home screen. Having a tile that gives the user some feedback of what is going on right now in your App could be really useful for some types of Apps. In fact some Apps wouldn't need more than a tile. In a way a tile is just another view and amounts to another form of semantic zooming.
This is another way of saying that most Apps these days are really connected to the internet. And there is nothing new here except that perhaps Windows developers need this drilled into their heads.
What can I say about Azure except "iCloud"? Yes, imitation is the sincerest form of flattery. And Microsoft has historically been a very flattering company....
This catch all topic for everything else. Metro will have an App Store. It has sandboxed Apps. And it takes away the "chrome" as Jensen says several times. If Windows developers don't do this Metro won't make a dent in the marketplace. And really it deserves a place I'd say.
My conclusion after looking at all of the materials in the last day or so?
Things haven't changed that much at Microsoft. There were several times in the video where "other tablets" were mentioned when clearly the only other tablet is Apple's iPad. But this is a Microsoft tradition - to pretend that Apple does not exist. It is a tactic that served Microsoft well in the early nineties when most people hadn't even used a Macintosh and would simply assume that Microsoft (and Bill Gates) had invented the GUI single handedly. In fact they did invent a lot of new acronyms for things that could be expressed in plain english by anyone familiar with the Macintosh, but that was about all. However not breaking with that tradition now just seems plain silly. People have seen and used the iPad and it is obvious to them what is happening this time around. They know who is the leader and who is the follower. And the millions of people who start using iCloud this fall are not going to mistakenly believe Azure is something new and different just because Microsoft says so.
The bottom line is that the SDK for Metro uses WinRT and a small subset of Win32 and .NET APIs. Plus Apps in C++ can use DirectX. That and the fact that you can still have legacy Apps dangling out there shows me that Microsoft still has too much invested in Windows and is trying to please two different groups. Microsoft has been hurt by its unwillingness to break from the past which is a direct result of being used in businesses (run mainly by accountants) that want to run legacy systems forever. Meanwhile they have to compete in a world were users are fed up with the experience of dealing with these legacy systems and want the new coolness. So what do they do? They graft on the new coolness on top of the old crap. Will that work? It might if the programming APIs are up to the job. Kudos to Microsoft that they have added a Metro template or two to Visual Studio but I, for one, am never going to waste two weeks doing what can be accomplished in 20 minutes with better tools and APIs.
Metro itself might show up on tablets sans the old Windows interface. This is because x86 code won't run on ARM tablets. But it is still an open question whether or not developers can just recompile their old stuff for the new processor. If they make a clean break (and there are hints they might) there is still the issue of API and how difficult will it really be to program anything but the simplest Metro Apps without having to wade back into the muck and mire of Win32.
In a year or so we will know. I think some of the Metro features are really nice and if Metro is successful it will make Apple improve in some areas. Google now has a new user experience to copy and had better get busy because if Microsoft is successful I am pretty sure Metro's market share will come predominately from Android and not Apple's iOS.