Is Spotify for Xbox a Universal Windows Platform (UWP) app? You bet, and today we explain what exactly makes a UWP app UWP.
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-everywhereOn 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:
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 tooTo 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:
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.
The curious case of Spotify and UWPnessWhen 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:
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 progressThe 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 UWPFor 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.
Regular consumers have no idea what UWP is or is supposed to mean, nor should they. The customer experience is intended to be simple. Turn on a Windows 10 device, go to Windows Store, search, find, and install the app. How the app got there, or whether it's technically an Electron app or React Native or it leverages the UWP JavaScript container, is entirely inconsequential.
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 UWPHere are a few more deep dives and discussion articles about Windows 10, UWP, and the future of the platform:
Source: What exactly IS a Universal Windows Platform (UWP) app?
No comments:
Post a Comment