Biz & IT —

Windows Phone 7 “Mango” for developers: one heck of an upgrade

Today was Windows Phone 7 day at Microsoft's MIX11 developer conference. The …

Windows Phone 7

On the second day of its MIX11 Web and Phone developer conference, Microsoft talked Windows Phone 7. The first look at the next major revision to the platform was given at February's Mobile World Congress. Windows Phone 7 "Mango" will bring multitasking, IE9, and Twitter integration, among other things. Today, Microsoft gave a decidedly developer-oriented look at just what Mango would have to offer.

The improvements to the platform were split into two kinds—opportunity, and capabilities. Under the first banner were a raft of software and ecosystem improvements to give applications better exposure and platform integration. Windows Phone 7 application availability is being broadened, with wider international rollouts—the developer program is being expanded to allow development and commerce in 35 countries—and greater support for carrier billing and advertising.

Opportunity

On the software side, Marketplace is set to be revamped. Each application's individual page will use a panoramic view to make it less cramped and more accessible, and the Marketplace itself will have a dedicated games portal. A facility to distribute beta software via Marketplace is also being developed. Finding installed applications will be easier, as the long alphabetical listing of installed programs will gain a search feature and alphabetic jump lists similar to those already used in the contacts hub.

The most exciting work on this front is with deep linking to applications. On Mango, applications will be able to register as Bing Search Extras, which will allow them to hook into the phone's Bing application to allow direct application access. For example, if you search for movies and then select The Source Code in the Bing application and have the IMDB application installed, you'll be able to go straight into the IMDB app's page for that film.

The Mango IMDB application shows off Bing Search Extras integration

Similar deep linking will be possible from the home screen. For example, an application such as the Amazon app might allow direct linking to its barcode scanner functionality, or a Twitter application might let you jump straight to the "send a Tweet" page.

These features together help bring applications to the forefront of the platform, while also ensuring that they act as part of the integrated phone experience.

Multitasking and Live Agents

On the capabilities front, there was a lot to show. Mango's most hotly anticipated feature is undoubtedly multitasking, and the news on this front was a little mixed. The good news is that multiple applications can be in memory simultaneously, and fast switching between those applications will be done using the webOS-like card-based UI shown off at MWC. Background audio is explicitly enabled, opening up the platform to a range of new streaming media applications. Applications will also be able to download files in the background.

However, this is not the universal, unrestricted multitasking that some might have hoped for. Scenarios such as VoIP and instant messaging, which require long-running background network connections, won't be feasible with the new multitasking model. Nor will it be a good fit for turn-by-turn navigation software. Microsoft acknowledges the desirability of these scenarios, but is taking a stance similar to the one Apple took: there's no good way to do it while still keeping the user in control and retaining respectable battery life. It's obviously an area the company will improve—one of the things that Microsoft is getting out of the Nokia deal is access to Nokia's excellent mapping data—but it's not going to be a Mango feature.

Filling that gap to an extent will be Live Agents. The current Windows Phone 7 platform allows applications to update their tiles on the home screen and receive push notifications, but to do this, the applications must run a program on a server somewhere and send notifications to Microsoft's push notification server. This works, but it's a little awkward; it means setting up servers (though cloud services like Azure help this), and means writing code for a rather different (non-Silverlight) environment. Live Agents will allow developers to write small background tasks will run on the phone itself, that can pull notifications and respond to events such as gaining a WiFi connection or being plugged into power.

APIs, Silverlight, and the Mango SDK

Beyond multitasking, the phone's APIs will be substantially less limited. Currently, developers have no direct access to the camera, little access to the sensors, no ability to interact with the calendar or contacts, no network access beyond HTTP/HTTPS, and many other restrictions. Most of these limits will disappear with Mango. Some 1500 new APIs will be offered, opening the door to augmented reality, in-application barcode scanning, and full network access. Proper socket support alone will enable a wide range of new applications, including instant messaging and chat (though the aforementioned multitasking constraints will still be an issue). As well as offering access to sensors (the accelerometer, compass, and location sensors in particular), Microsoft is also providing a high-level sensor API that performs the (often complicated) mathematical processing of the raw sensor data to give applications convenient, easy-to-use access to this hardware.

The Mango Amazon application shows off programmatic camera access in its barcode scanner

More broadly, the platform is being described as equivalent to Silverlight 4. The original Windows Phone 7 was more or less based on Silverlight 3, with a few features irrelevant to phones removed, and a few extra phone-specific capabilities added. With Mango, Silverlight 4 will be the baseline. Applications will also be able to combine Silverlight and XNA into a single application, something not currently possible. This will make developing menus and other user interface elements used in games much easier. Data storage is another gripe on the current platform; with Mango, Microsoft is including SQL Server Compact Edition, giving applications a convenient place to store and query structured data.

Finally, a bunch of low-level architectural improvements are going to arrive with Mango. Multithreading changes to improve touch responsiveness, and a more modern garbage collector to reduce memory usage and performance overheads will both give both new and existing applications a healthy speed boost, consolidating the performance fixes already delivered in NoDo.

The phone software itself is not the only thing that matters to developers: the toolchain used to actually create applications is also important. This, too, is seeing a lot of improvement. The Mango SDK will include rich emulation for sensor inputs, allowing the virtual, emulated phone to be rotated, shaken around, and located anywhere in the world, making sensor-dependent applications far easier to develop and test. Microsoft also showed off powerful new profiling features, to allow performance problems to be more readily identified and resolved.

Hardware, a new browser, and shipping

Microsoft was tight-lipped about some aspects of Mango, however. There will be an updated hardware platform for Mango—however, the only feature that the company confirmed would be added was a gyroscope. If the Mango hardware platform will include anything more—such as a front-facing camera, NFC, or a faster CPU or GPU baseline—Microsoft isn't talking about it just yet. Nor was the company willing to show off any other improvements that the Mango software might include—MIX is a developer event, and developer features were the focus, with consumer-facing improvements receiving little attention.

One thing that consumers will like, however, is the new browser. Though the current browser is serviceable, it's weaker than its counterparts on other platforms. That's set to change: as announced at MWC, Mango will include Internet Explorer 9, and, just as with its desktop equivalent, hardware acceleration is an essential part of the browser. Microsoft showed off a quick demo of the browser's performance, and it was substantially quicker in the demo than both the iPhone's Safari and the Android browser. Whether this performance lead will remain by the time Mango ships is, of course, another matter.

As for when that shipping date will actually be, Microsoft said "Fall", with the SDK shipping in May. Giving developers access to real—non-emulated—Mango handsets remains an open issue. The company says that it is looking into ways to give developers early access to firmware, but is still unable to promise that developers will be able to get real hardware access in advance of the end-user rollout. Though the new, vastly improved emulator will go some way towards redressing this need, nothing beats proper device testing.

Developer momentum on Windows Phone 7 is already incredibly strong—no doubt a testament to the substantial .NET experience and capable development environment—with, depending on which press release you read, slightly less than, or more than, 13,000 applications and games already available for the platform. Mango will offer developers a wealth of extra features and richer capabilities, and though a few gaps remain, it answers almost every demand that developers have made. For both users and developers alike, Mango can't come soon enough.

Channel Ars Technica