The next major release of the Windows Phone OS is still codenamed “Mango”. This morning (New Zealand time), at the MIX conference in Las Vegas, Microsoft has taken the wraps off some the developer details underneath new features in Mango.
The position I take on Mango is this: everyone knows there are features missing from the current version of WP7. Features like multitasking, camera streams, sockets, and more. It would be crazy for Microsoft to not add these high-demand features to WP7 as quickly as possible. This morning we can see that they are certainly adding these features, they’ve thought them through very carefully, and they are further along with implementation than many people predicted.
So what did we see? Here’s a run-down:
Multitasking: We saw Joe Belfiore demonstrate fast app switching at Mobile World Congress a few months back. Now we’ve seen how developers can take advantage of this, along with some seriously awesome managed background tasks to enable devs to keep apps connected and up to date, without the impact on memory and battery life that is so obvious with “full” multitasking. I can tell you after spending a month with a decent Android phone, one of my most-used apps was a background app killer. Not so with WP7.
IE9 for Windows Phone: HTML5 compliant, GPU accelerated. Finally a first-class mobile browser to consume all of those sites our iPhone loving friends have built.
Additional sensor and runtime access: Additional sensor APIs are being added in WP ‘Mango’, including camera stream access to enable augmented reality scenarios, compass and gyro APIs to enable more advanced detection of motion, and the ability to use socket connections to move beyond HTTP. These are all so “duh” obvious that I won’t go into any more details. Watch the keynote and additional sessions at MIX.
Structured storage: Personally, I’ve been totally happy with serialising my own objects, but for people desperate for a database, Microsoft are adding the ability to package and deploy SQL CE databases onto the Windows Phone platform, and use LINQ to SQL to access the data. Additionally, devs will be able to use contact and appointment APIs to access the user’s address book and calendar on the device (provided the user consents to providing access to the app).
XNA/Silverlight integration: You may not see this now, but this is an absolute killer feature. Any XNA developer will tell you that rendering text (e.g. highscore tables) to the screen is just ugly legwork. With Mango, Microsoft will be breaking down the walls separating Siverlight and XNA, making it easier for developers to build 3D-modeled applications that can overlay Silverlight forms and strings. Think about it: Silverlight’s brilliant XAML layout language, binding, and simple internationalisation story, on top of XNA’s productive 3D environment. Is this not the most developer friendly game platform on the market today?
Tooling investments: Microsoft also demonstrated additional capabilities around the Profiling tooling (initially demoed at PDC10 by Scott Guthrie), as well as showing off new enhancements to the Windows Phone Emulator, allowing developers to manipulate sensor data (i.e., GPS, accelerometer) into the emulator. Slick stuff.
Custom Ringtones: Buried among the 1,500 new API calls are new options for developers to save audio files as custom ringtones. I’m thinking this is a large nod to carriers who make stupid amounts of money from $5 ringtones.
Multiple, and local live tiles: Previous to Mango, the only way to update a custom tile was via a server-based push notification. Not tricky, but a lot of infrastructure overhead for simple apps. Mango now allows developers to update tiles locally (from the aforementioned background agents), and also allows more than one live tile per app. A demonstration showed multiple flight statuses from a travel app, each in their own tile.
If any of that interests you (and I reckon any self-respecting developer should be interested), have a look at the completely free tools at create.msdn.com. It’s worth a crack right?