We've called them Metro apps, then when a lawsuit meant that Microsoft couldn't use the name, we called them Modern or Windows Store apps. But now they've finally got a new official name, and it looks like it's one that's going to stick. Let's give a big welcome, then, to the Universal app. They're going to be big. That's because, as Terry Myerson and Joe Belfiore made very clear at the Windows 190 unveiling, with the expansion of WinRT APIs and support for windowed WinRT apps on the desktop, Universal apps are the future of Windows development.
First revealed in April at Build 2014, the initial iteration of the Universal app allows developers to share code between Windows 8.1 and Windows Phone 8.1. The Universal app model builds on the common core that Microsoft has developed for its main operating systems, and is more flexible than its original code-sharing technology, Portable Class Libraries. It's proved popular with developers working across phones and tablets, but with the release of Windows 10 Universal apps are set to be the preferred way of building Windows apps - from Internet of Things to phones to tablets to desktops to games consoles to wall displays.
The heart of the Universal app model is simple: write your core code once and then give it an appropriate user interface. It's been clear for years that the "write once, run everywhere" model just doesn't work. We may want to use the same app functionality on a PC as we would on a phone or on a tablet, but we want to use that app very differently on each device. That means a different user experience, and very different interaction models.
Where the Universal model gets interesting is in its cross-platform support. You're not limited to working with Microsoft operating systems thanks to Xamarin's support for Universal projects in its tools, particularly its Visual Studio plug-ins. Thanks to Xamarin you can use your Universal libraries and code in iOS, MacOS, and Android apps - letting you tune user experiences for a much wider range of end users.
Another aspect of Microsoft's Universal app story is its store, which gives developers one place to upload and sell apps. While there's some confusion around the difference between Universal and Linked apps, it really shouldn't make any difference to end users (if at all). Where Universal apps share code, and can be sold on either or both Windows and Windows Phone, Linked apps are treated as one for billing purposes, but don't have to have common code (though they can share back end services to pass information between devices).
So a game like Halo: Spartan Assault is a linked app, with different versions on Xbox, on Windows 8.1, and on Windows Phone, all sharing scores and achievements through Xbox Live. Linked apps are able to bundle pricing; so if you have the Windows Phone version of a linked app, there's the option of a special price for the Windows 8.1 version, or even of a single bundle that lets you download both versions for one price. It's all up to the developer; the end user won't know the difference between Universal and Linked apps.
Sign up for Computerworld eNewsletters.