Writing about technology is often a balancing act. Some people want general tech news, while others want deep dives. When it comes to software and OS development, as a non-programmer I often find myself in over my head. That's why UWP is such a steamy mess to talk about for the "prosumer."
Today, I'm going to chip away at this monolith of a topic.
Who is UWP even for?
Before I try to explain what Microsoft's software development platform is for Windows 10, let's just get this out of the way: The term "UWP" is not a consumer-facing one, it's for developers.
At no point should a customer walk into Best Buy and inquire with the sales clerk about what UWP apps a PC can run. In fact, a rule of thumb in technology is if you must explain something to someone the product probably already failed.
On Windows Central, however, we jump back and forth between consumer news and how-tos and more informative articles discussing Microsoft's technology, OS development, and general computing trends. In our reporting, we must talk about UWP to understand Windows 10. For non-pro consumers, however, it should be simpler.
'Universal' does not mean run-everywhere
On a technical level, UWP is Microsoft's extension of the Windows Runtime platform that leverages the C++, C#, VB.NET, and XAML coding languages. There are a few main ideas behind UWP, which include:
- Universal API toolkit.
- Responsive design and scaling in apps.
- Universal controls, styles, input, and interactions.
- Cloud, A.I., and cognitive services.
- Single Store for distribution.
- One Software Development Kit (SDK).
The confusing bit for our audience is the "universal" in "Universal Windows Platform." While the goal for UWP is to let developers share code between apps and utilize a broad swath of APIs, it does not necessarily mean that a UWP app is supposed to "run everywhere," such as on phones, PCs, Xbox, HoloLens, IoT devices.
Ideally, an app developer will write a native UWP app that just works across all Windows 10 devices, but sometimes that just doesn't make sense. For example, certain phone-only apps have little value on the desktop. Some UWP games could be too resource intensive for a phone, or the benefit of running a map app on your Xbox may not be self-evident (even if it is available, it's likely not used often).
The "universal" in UWP refers to the shared APIs and resources that developers have access to when writing an app, not the app's hardware destination. I can't stress this enough. Just because an app is only available on Xbox or can only be installed on Windows 10 Mobile does not mean it's not UWP or even "true UWP," which has no technical definition.
Windows Bridge apps are UWP too
To add to the confusion, Microsoft introduced Windows Bridges a few years back during its Build developer conference.
All you need to know is that an app that takes advantage of Windows Desktop Bridge (a.k.a. Project Centennial), Progressive Web Apps (Project Westminster) like LinkedIn, or Windows iOS Bridge (a.k.a. Project Islandwood) is a UWP app too.
Getting more technical, a Windows Bridge app is best thought of as a hybrid app. For instance, Adobe Photoshop Elements 15 and the new Spotify apps are classic Win32 desktop apps literally wrapped in a UWP appx file container.
It's not just the wrapper or installer that makes it UWP, but rather it is how a Desktop Bridge app can leverage Windows 10-only features like:
- Live tiles.
- Action and Notification Center.
- Share targets.
- UWP background tasks.
- UWP XAML user experience.
- UWP app services e.g. cloud, A.I., and cognitive.
- Automatic updates, licensing, in-app purchases and all Windows Store features.
Therefore, desktop bridge apps are really hybrid-UWP ones. To the OS, however, they're just UWP since it is those features that are most prominent.
Those Desktop Bridge apps also behave like non-hybrid "native" UWP apps. They do not modify the system registry and are essentially sandboxed from the OS to ensure one-click uninstallation with no orphaned DLL files in the Windows System directory.
It might be easier to think of it as a slider. On the left, you have Win32 apps that use one or two UWP APIs, and on the right, you have apps that use only UWP APIs. An app that only uses UWP APIs are "true UWP" apps can run across different versions of Windows 10 with only one codebase.
An app that uses one or two UWP APIs is likely a Win32 app that taps into UWP features and functions. A developer is able to slowly convert its app to a true UWP app over time if it wants, slowly moving from left to right on that imaginary "UWP" slider.
The curious case of Spotify and UWPness
When talking about Microsoft's UWP, the Spotify example is a great one to highlight the weird choices that companies can make with its apps.
There are technically four Windows-type Spotify apps:
- Spotify Win32 .exe installer.
- Spotify for Windows Phone 8.1.
- Spotify for Windows 10 (UWP).
- Spotify for Xbox One (UWP).
The last two are the newest and are UWP even though they are vastly different. The Spotify app for Windows 10 is just the Win32 .exe desktop version repackaged using the Desktop Bridge. However, as noted above, bridge apps are still considered UWP.
The new Xbox One Spotify app is also UWP. Some have taken umbrage with the term since that app is not available for Windows 10 PCs or Mobile (although, technically, you could side-load it if it were signed).
So why did Spotify create so many apps instead of just one "native" UWP app that could run on Mobile, PC, and Xbox?
I have no idea.
But it doesn't matter. The UWP platform and its bridges are all about giving developers various routes to one place: the Windows Store. How they get there, or how many versions of the app exist, is inconsequential. Microsoft would prefer developers just to use the same code with a single app, but the company does not dictate such practice. In the end, it is up to developers to choose the best route.
For now, Spotify deemed a desktop bridge app for Windows 10 PCs as the best way to the Windows Store while a separate Xbox One app is the top solution for that platform.
UWP is a work in progress
The UWP is not finalized, nor will it ever be for developers. UWP is the future of Windows 10 app development that – someday – will supplant Win32. Nonetheless, Win32 has been around for 20 years, and you cannot recreate a developer platform in a year.
The point here is that UWP as is is far from perfect or feature complete. Thousands of APIs are needed to bridge Win32 app calls and features to the world of native UWP. Microsoft is prioritizing where it can, but it's like a wartime hospital where triaging the patients is necessary.
One reason some companies do not put their apps in the Windows Store – even with the desktop bridge – is today's tools do not make it possible. If your app uses a custom API or makes a weird system call that UWP does not yet support, well, the desktop bridge does not work.
Anything in the Windows Store is UWP
For now, the only definition that Microsoft and Windows watchers need for UWP is this: If the app is in the Windows Store it is technically UWP. If you want to get specific:
Windows 10 introduces UWP, which provides a common app platform available on every device that runs Windows 10. The UWP provides a guaranteed core API across devices. This means you can create a single app package that can be installed onto a wide range of devices. And, with that single app package, the Windows Store provides a unified distribution channel to reach all the device types your app can run on. Apps that target the UWP can call not only the WinRT APIs that are common to all devices but also APIs (including Win32 and .NET APIs) that are specific to the class of device that the app is running on.
While Microsoft's intent is for a UWP to run across types of devices it's not all there just yet, nor is Microsoft forcing companies down that path.
The confusion here is also due to Microsoft, which has a lousy history of naming schemes. Many developers and even people at Microsoft have a tough time defining what UWP is and is not.
I can also add the caveat that websites can technically host UWP appx files, which would still make them UWP even if not in the Store. Although rare, these and apps that only target Windows Phone 8.x are the exceptions to the Windows Store rule.
Microsoft is trying hard to make the Windows Store and the apps therein device-universal, but it's not quite there yet. UWP is a journey for Microsoft and it is just starting but all paths eventually lead to one destination: the Windows Store.
Further reading about UWP
Here are a few more deep dives and discussion articles about Windows 10, UWP, and the future of the platform:
- Can Project Centennial apps run on Windows 10 Mobile (and other questions answered)
- Why Windows 10 S, Project Centennial are critical to Continuum's success
- Microsoft may focus on desktops with UWP — here's why you should care
- If not phones, Microsoft needs another device category to ensure Windows UWP success
- How to convert desktop apps to Universal Windows Platform apps with Desktop Bridge
- Microsoft is NOT opening Xbox One to all UWP games ... but should it?
We may earn a commission for purchases using our links. Learn more.
Microsoft Edge Dev channel gets new collections features, extension sync
Another weekly update is out for the Microsoft Edge Dev channel, and it has a host of handy features to check out. New in this release are a couple of improvements to collections, extension sync, and more.
Join us for the latest Windows Central Video Podcast
We're live with the Windows Central Video Podcast today at 2:30pm ET, make sure you're there!
Are you working from home this week? (poll)
More people are working from home than ever right now, and we're wondering how you all are managing to stay productive in your homebound state. Chime in and let us know in our poll!
These are the best PC sticks for when you're on the move
Instant computer, just add a screen! That’s the general idea of the ultra-portable PC Compute Sticks, but it can be hard to know which one you want. Relax, we’ve got you covered.