It's been a big week for Microsoft. Monday saw the arrival of its first tablet, and Wednesday, the latest iteration of its phone OS. Like Surface, it's a big bet for the Redmond giant, as it's the point where Windows Phone finally becomes a Windows phone.
The new Window Phone start screen, in an early build of Windows Phone 7.8
Let me say that again: a Windows phone. That's a big leap forward, and a huge change for anyone who's been building Windows Phone applications.
The language Microsoft uses is "shared core". What that means is that Windows Phone 8 will use the Windows kernel — and many of the Windows WinRT APIs. Applications will be able to use familiar calls for security and for networking, for file system access, for device drivers, and for graphics. You'll be able to use native C++ code alongside C# and XAML — and you can mix and match development technologies — so an application may use a C++ business logic layer alongside a C# user interface. That same C++ layer can be common across Windows Phone 8 and Windows 8 (and Windows Server and Azure) using what Microsoft calls Portable Class Libraries, which can be developed in Visual Studio 2012 and used across application projects.
Using a common driver model is a huge change, and it's one that could have far wider implications for the platform — including the possibility of decoupling elements of device updates from operator approvals (imagine Nokia being able to send out camera updates or Samsung delivering new NFC features). Instead of having to invent its own wheel every time a new piece of hardware comes along, hardware OEMs will be able to use the same driver for phone and for PC (as long as it's been compiled for ARM). That means there are going to be economies of scale, with the same hardware in a Windows RT tablet appearing in Windows Phone devices.
Despite the shared kernel and APIs, Windows Phone isn't just going to install and run any Windows application, even a Metro-style Windows 8 one. For one thing the two platforms will still target very different screen sizes and types, with Windows 8 delivering landscape experiences and Windows Phone focusing on portrait. Screen resolutions on Windows Phone, even with the two newer 16:9 and 15:9 aspect ratio views, will be lower than on the desktop.
Windows Phone's new tiles get access to much more screen real estate
Game developers will quickly take advantage of the native code features, but there's going to be a period of flux for utility and casual application developers. With Windows Phone 7.5 development supported in Visual Studio 2012, it's likely that Silverlight/HTML5 development will still remain popular, if only due to the number of current devices in use. Those same applications will run on both Windows Phone 7.5 and on Windows Phone 8 — with Windows Phone 8 downloads pre-compiled in the Windows Phone Marketplace, using the Engine .NET tooling. Although apps won't necessarily run faster on Windows Phone 8, they will launch faster, as they won't need to be run through the .NET JIT every time you want to run. It's also something that comes for free, in a future update to the Marketplace.
Windows Phone 8 will also introduce two new background agents, giving both VOIP and location-based applications the option of working with background services. The VOIP agent will handle incoming voice, video and chat sessions, while the background location agent will handle working with location data while applications are suspended — working with cloud services to support notifications. Background agents are one of the more innovative features in Windows Phone, as they allow applications to be tombstoned and for key functions to continue running in a low power state. Other options include APIs for the new NFC hardware, and the Wallet secure storage tool (and for in-app purchases), as well as access to speech recognition and to Nokia Maps (itself replacing Bing Maps).
Microsoft is packing developer features into Windows Phone 8, and it's pretty clear there are more to come. There's also an update to existing Windows Phone devices on the way, in the shape of Windows Phone 7.8. It brings in the new start screen with its configurable tiles, and possibly some of the new Windows Phone 8 capabilities. Microsoft isn't giving any details of 7.8 beyond demonstrating the new start screen on a Nokia Lumia device with a very early build of the OS. We had a brief hands-on session with the device, and found it easy enough to use — the tools for resizing tiles were obvious, and simple to use.
Resizing tiles in Windows Phone 7.8
Today's event was billed as a "sneak peek", and that's all we got. We saw new features, and got a feel for how they are being implemented. It's all very impressive, and moves the Windows Phone platform in a very interesting direction. However there's a lot to be done — much of which is around developer evangelism and getting the tools and SDKs into the hands of developers (along with devices). Microsoft has said it will be giving developers more information and early tooling over the summer, when we should get an opportunity for a deeper dive into the Windows phone.