One of the more intriguing aspects of the recent Windows Phone 8.1 leak is that this platform might support the creation of so-called Universal apps, similar to those in iOS, that run across both tablets (Windows RT 8.1 in this case) and smart phone (Windows Phone 8.1). With due deference to the game "Portal," however, I can report that Universal apps are a lie. At least from what I can tell.
To understand what I mean, you need to understand a bit about Visual Studio, Microsoft's awesome software development environment. In Visual Studio parlance, each project you create represents a single application (or similar unit), like a Windows Phone app, a Windows desktop application, or whatever. But Visual Studio is also a team-capable and professional developer suite. So each project you create is also contained in something called a solution. And you can have multiple projects within a solution. For example, you might create a complex application that includes a project for the application itself plus separate projects for a service library, class library, or whatever. And each could be written in different languages, and by different developers.
So what's this Universal app stuff?
With previous versions of Windows 8.x/RT and Windows Phone, Microsoft advised developers who wanted to duplicate an app across each platform that they could create Visual Studio solutions with separate projects for Windows 8.x/RT and Windows Phone apps. There could then be a third project that contained shared code, since there is some crossover between the APIs used by the different platforms (WinRT for PCs and tablets and WinPRT for Phone).
With the SDK that will accompany Windows Phone 8.1, Visual Studio picks up what appears to be a set of new project types for something called Universal apps. There are separate projects for a blank app, a hub app, a portable (i.e. cross-platform) class library, and a portable Windows Runtime component. But all this really is is a formalization of Microsoft's previous advice. What you get, as before, is a single solution with separate projects for the Windows 8.x/RT app, Windows Phone app, and shared code.
In other words, nothing has really changed. Here's how such a solution—with two separate apps and a shared code module—looks in Visual Studio.
Will the Windows 8.x and Phone APIs, SDKs and platforms merge even more going forward? Of course. But I wish Microsoft had held on to the name Universal apps for the time when such a thing was truly possible. That name suggests something far more than what is possible today, or in this coming release.
P.S. If you not familiar with my "Portal" reference, please refer to this Know Your Meme entry. And then go play some Portal. Great game.
P.P.S. If you're a developer and know more about this stuff than I do, let me know if I missed anything. I'd love to think this system is more sophisticated than I understand.