Microsoft debuts unified app development for phones, tablets, desktops, and Xboxes

Published by at

One of the more interesting aspects of the Build 2014 conference for developers was the principle of the unified Windows application. Can this really be a write-once run-everywhere (everywhere that is Microsoft)? Not quite, but it's as close as you can practically get and allows the Windows platform to be promoted as a single entity over all the platform options, which will be of benefit to Windows Phone.

Announced by David Treadwell from the Build stage, the principle is simple. The bulk of a developer's code will be the same for every Windows platform they target (primarily phone, tablet, desktop, and Xbox 360), and can be made available as a single entry in the Windows App Store.

It's a simple sounding step that has taken a lot of planning, coding, and disruption. There has also been a certain level of waiting for Moore's Law to kick in and allow tablets and smartphones to have the power to run a software kernel that is also suitable for home console gaming and desktop operation.

As mentioned, it's not quite a universal one-app-for-all approach, but it allows developers to reuse as much of their work as possible over each platform. While broad stroke examples can never convey the exact working, all the graphics and UI elements can be written as bespoke sections for each Windows variant, and the underlying mechanics of the project can be common across the new unified platform.

This allows for apps to take into account the Xbox controller, the keyboard on a Surface Pro 2, or the touch-screen on a smartphone. So the unique moments of an app are all still there, but the similarities are now ramped up for the benefit of all.

The approach should also bring this world of universality to Windows users. An application that is marked as 'universal' is a buy-once use-anywhere proposition. In the case of the recent Halo: Spartan Assault release, if you buy it once for your Windows Phone it would be available on your Surface. Assuming that a future version goes fully cross platform it would also be available on your Xbox or your desktop.

This principle also stretches to in-app purchasing. Buy something through a universal app, and it will be available across all installations, on all your devices. That presumably means shared status information and save-game files passing between the various installs as well, which is a bonus.

Just like the bundling of the variants in a universal app, this automatic sharing of resources is optional for developers, but I would hope that anyone who could make use of this option does take it up and uses the tools on offer to make for a better user experience. And I know I've zeroed in on games, but these options are available for all types of applications - not just leisure-based freemium driven titles, but for task managers, note takers, web clippers, sound editors, image manipulators, and more.

Of course, this isn't the first time Microsoft has spoken about this goal - bringing the various elements of the Microsoft family under one roof has long been stated as a goal for Redmond. Providing common functionality and UI elements for the developers has been part of that mission, and the implementation on show at Build 2014 appears to deliver that. Naturally we'll wait for the feedback from the regular developer before fully committing to putting a tick in the box.

In terms of apps in the real world, we'll need to wait a little bit longer. We've seen dabblings in this area from some apps (notably the Microsoft Solitaire Collections on Xbox Live from the Christmas release) but those were more a bit of a fudge to work between the platforms than using the common universal app tools on show today.

I'm sure that Microsoft is hoping to cross-pollinate its platforms as much as possible - even with the extra work required by developers to tweak each version, that's a lot less work than it would be to make a separate version for the phone, the desktop, and the Xbox.

And this is the temptation, and the promise, of a unified platform. It's almost (but not quite) write once, run anywhere. It's write mostly once and run on anything Microsoft. Now lets see if Microsoft can actually deliver the experience to developers, and if those developers will deliver the apps to users.