Universal Windows Platform

Last updated

Universal Windows Platform
Developer(s) Microsoft
Operating system Windows 10, Windows 10 Mobile, Windows 11, Xbox system software, Windows Mixed Reality
Platform IA-32, x86-64, ARM32, ARM64
Type Computing platform
Website learn.microsoft.com/en-us/windows/uwp/

Universal Windows Platform (UWP) is a computing platform created by Microsoft and introduced in Windows 10. The purpose of this platform is to help develop universal apps that run on Windows 10, Windows 10 Mobile (discontinued), Windows 11, Xbox One, Xbox Series X/S, and HoloLens without the need to be rewritten for each. It supports Windows app development using C++, C#, VB.NET, and XAML. The API is implemented in C++, and supported in C++, VB.NET, C#, F# and JavaScript. [1] Designed as an extension to the Windows Runtime (WinRT) platform introduced in Windows Server 2012 and Windows 8, UWP allows developers to create apps that will potentially run on multiple types of devices. [2]

Contents

UWP does not target non-Microsoft systems. Microsoft's solution for other platforms is .NET MAUI (previously "Xamarin.Forms" [3] ), an open-source API created by Xamarin, a Microsoft subsidiary since 2016. Community solutions also exist for non-targeted platforms, such as the Uno Platform.

Compatibility

UWP is a part of Windows 10, Windows 10 Mobile and Windows 11. UWP apps do not run on earlier Windows versions.

Apps that are capable of implementing this platform are natively developed using Visual Studio 2015, Visual Studio 2017, Visual Studio 2019, or Visual Studio 2022. Older Metro-style apps for Windows 8.1, Windows Phone 8.1, or for both (universal 8.1) need modifications to migrate to UWP. [4] [5]

Some Windows platform features in later versions have been exclusive to UWP and software specifically packaged for it, and are not usable in other architectures such as the existing WinAPI, WPF, and Windows Forms. However, as of 2019, Microsoft has taken steps to increase the parity between these application platforms and make UWP features usable inside non-UWP software. Microsoft introduced XAML Islands (a method for embedding UWP controls and widgets into non-UWP software) as part of the Windows 10 May 2019 update, and stated that it would also allow UWP functions and Windows Runtime components to be invoked within non-packaged software. [6]

API bridges

UWP Bridges translate calls in other application programming interfaces (APIs) to the UWP interface, so that applications written in these APIs would run on UWP. Two bridges are announced during the 2015 Build keynote for Android and iOS apps to be ported to Windows 10 Mobile. [7] As of February 2020, Microsoft maintains support for bridges for Windows desktop apps, progressive web apps, Microsoft Silverlight, and iOS's Cocoa Touch API. [8]

iOS

Windows Bridge for iOS (WinObjC)
Developer(s) Microsoft
Initial releaseAugust 6, 2015;8 years ago (2015-08-06)
Repository github.com/microsoft/WinObjC
Written in Objective-C++, Objective-C, C, C++
Type Middleware
License MIT License
Website developer.microsoft.com/en-us/windows/bridges/ios/

Windows Bridge for iOS (codenamed "Islandwood") is an open-source middleware toolkit that allows iOS apps developed in Objective-C to be ported to Windows 10 by using Visual Studio 2015 to convert the Xcode project into a Visual Studio project. [7] [9] [10] An early build of Windows Bridge for iOS was released as open-source software under the MIT License on August 6, 2015, while the Android version was in closed beta. [7]

This "WinObjC" project is open source on GitHub. It contains code from various existing implementations of Cocoa Touch like Cocotron and GNUstep as well as Microsoft's own code that implements iOS frameworks using UWP methods. It uses a version of the LLVM clang compiler. [11]

Android

Windows Bridge for Android (codenamed "Astoria") was a runtime environment that would allow for Android apps written in Java or C++ to run on Windows 10 Mobile and published to Microsoft Store. Kevin Gallo, technical lead of Windows Developer Platform, explained that the layer contained some limitations: Google Mobile Services and certain core APIs are not available, and apps that have "deep integration into background tasks", such as messaging software, would not run well in this environment. [12] [13]

In February 2016, Microsoft announced that it had ceased development on Windows Bridge for Android, citing redundancies due to iOS already being a primary platform for multi-platform development, and that Windows Bridge for iOS produced native code and did not require an OS-level emulator. Instead, Microsoft encouraged the use of C# for multi-platform app development using tools from Xamarin, which they had acquired prior to the announcement. [14] [15] [16] In 2021, Microsoft allowed Windows 11 to run Android apps with an OS-level emulator and allowed apps to be installed in the store. [17]

Deployment

UWP provides an application model based upon its CoreApplication class and the Windows Runtime (WinRT). [1] Universal Windows apps that are created using the UWP no longer indicate having been written for a specific OS in their manifest build; instead, they target one or more device families, such as a PC, smartphone, tablet, or Xbox One, using Universal Windows Platform Bridges. These extensions allow the app to automatically utilize the capabilities that are available to the particular device it is currently running on. [18] A universal app may run on either a mobile phone or a tablet and provide suitable experiences on each. A universal app running on a smartphone may start behaving the way it would if it were running on a PC when the phone is connected to a desktop computer or a suitable docking station. [19]

Reception

Games developed for UWP are subject to technical restrictions, including incompatibility with multi-video card setups, difficulties modding the game, overlays for gameplay-oriented chat clients, or key binding managers. [20] UWP will only support DirectX 11.1 or later, so games built on older DirectX versions will not work. [21] During Build 2016, Microsoft Xbox division head Phil Spencer announced that the company was attempting to address issues which would improve the viability of UWP for PC games, stating that Microsoft was "committed to ensuring we meet or exceed the performance expectations of full-screen games as well as the additional features including support for overlays, modding, and more." Support for AMD FreeSync and Nvidia G-Sync technologies, and disabling V-sync, was later added to UWP. [22] [23]

Epic Games founder Tim Sweeney criticized UWP for being a walled garden, since by default UWP software may only be published and installed via Windows Store, requiring changes in system settings to enable the installation of external software (similarly to Android). Additionally, certain operating system features are exclusive to UWP and cannot be used in non-UWP software such as most video games. Sweeney characterized these moves as "the most aggressive move Microsoft has ever made" in attempting to transform PCs into a closed platform, and felt that these moves were meant to put third-party games storefronts such as Steam at a disadvantage as Microsoft is "curtailing users' freedom to install full-featured PC software and subverting the rights of developers and publishers to maintain a direct relationship with their customers". As such, Sweeney argued that end-users should be able to download UWP software and install it in the same manner as non-UWP software. [24]

Windows VP Kevin Gallo addressed Sweeney's concerns, stating that "in the Windows 10 November Update, we enabled people to easily side-load apps by default, with no UX required. We want to make Windows the best development platform regardless of technologies used, and offer tools to help developers with existing code bases of HTML/JavaScript, .NET and Win32, C++ and Objective-C bring their code to Windows, and integrate UWP capabilities. With Xamarin, UWP developers can not only reach all Windows 10 devices, but they can now use a large percentage of their C# code to deliver a fully native mobile app experiences for iOS and Android." [25]

In a live interview with Giant Bomb during its E3 2016 coverage, Spencer defended the mixed reception of its UWP-exclusive releases, stating that "they all haven't gone swimmingly. Some of them have gone well", and that "there's still definitely concern that UWP and our store are somehow linked in a way that is nefarious. It's not." He also discussed Microsoft's relationships with third-party developers and distributors such as Steam, considering the service to be "a critical part of gaming's success on Windows" and stating that Microsoft planned to continue releasing games through the platform as well as its own, but that "There's going to be areas where we cooperate and there's going to be areas where we compete. The end result is better for gamers." Spencer also stated that he was a friend of Sweeney and had been in frequent contact with him. [26] [27]

On May 30, 2019, Microsoft announced that it would support distribution of Win32 games on Microsoft Store; Spencer (who had since been promoted to head of all games operations at Microsoft, reporting directly to CEO Satya Nadella) explained that developers preferred the architecture, and that it "allow[s] for the customization and control [developers and players] come to expect from the open Windows gaming ecosystem." It was also announced that future Xbox Game Studios releases on Windows would be made available on third-party storefronts such as Steam, rather than be exclusive to Microsoft Store. [28] [29]

Related Research Articles

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific to a hardware platform and operating system combination. To create applications with advanced functionalities such as advertisements, push notifications, etc; most application software developers use specific software development kits.

<span class="mw-page-title-main">Microsoft XNA</span> Freeware set of tools by Microsoft

Microsoft XNA is a freeware set of tools with a managed runtime environment that Microsoft developed to facilitate video game development. XNA is based on .NET Framework, with versions that run on Windows and Xbox 360. XNA Game Studio can help develop XNA games. The XNA toolset was announced on March 24, 2004, at the Game Developers Conference in San Jose, California. A first Community Technology Preview of XNA Build was released on March 14, 2006.

Mobile app development is the act or process by which a mobile app is developed for one or more mobile devices, which can include personal digital assistants (PDA), enterprise digital assistants (EDA), or mobile phones. Such software applications are specifically designed to run on mobile devices, taking numerous hardware constraints into consideration. Common constraints include CPU architecture and speeds, available memory (RAM), limited data storage capacities, and considerable variation in displays and input methods. These applications can be pre-installed on phones during manufacturing or delivered as web applications, using server-side or client-side processing to provide an "application-like" experience within a web browser.

<span class="mw-page-title-main">Windows Phone</span> Family of mobile operating systems developed by Microsoft

Windows Phone (WP) is a discontinued family of mobile operating systems developed by Microsoft for smartphones as the replacement successor to Windows Mobile and Zune. Windows Phone featured a new user interface derived from the Metro design language. Unlike Windows Mobile, it was primarily aimed at the consumer market rather than the enterprise market.

The Android Package with the file extension apk is the file format used by the Android operating system, and a number of other Android-based operating systems for distribution and installation of mobile apps, mobile games and middleware. A file using this format can be built from source code written in either Java or Kotlin.

<span class="mw-page-title-main">Xamarin</span> American software company

Xamarin is a Microsoft-owned San Francisco-based software company founded in May 2011 by the engineers that created Mono, Xamarin.Android and Xamarin.iOS, which are cross-platform implementations of the Common Language Infrastructure (CLI) and Common Language Specifications.

<span class="mw-page-title-main">Microsoft Store</span> Digital distribution platform for Microsoft Windows, Xbox One and Series X/S

The Microsoft Store is a digital distribution platform operated by Microsoft. It was created as an app store for Windows 8 and Windows Server 2012 as the primary means of distributing Universal Windows Platform apps. With Windows 10, Microsoft merged its other distribution platforms into Microsoft Store, making it a unified distribution point for apps, console games, and digital videos. Digital music was included until the end of 2017, and E-books were included until 2019.

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

<span class="mw-page-title-main">Xbox (app)</span> Software

The Xbox app is an app for Windows 8, Windows 10, Windows 11, Android, iOS and Tizen. It acts as a companion app for Xbox video game consoles, providing access to Xbox network community features, remote control, as well as second screen functionality with selected games, applications, and content.

Microsoft mobile services are a set of proprietary mobile services created specifically for mobile devices, they are typically offered through mobile applications and mobile browser for Windows Phone, | platforms, BREW, and Java. Microsoft's mobile services are typically connected with a Microsoft account and often come preinstalled on Microsoft's own mobile operating systems while they are offered via various means for other platforms. Microsoft started to develop for mobile computing platforms with the launch of Windows CE in 1996 and later added Microsoft's Pocket Office suite to their Handheld PC line of PDAs in April 2000. From December 2014 to June 2015, Microsoft made a number of corporate acquisitions, buying several of the top applications listed in Google Play and the App Store including Acompli, Sunrise Calendar, Datazen, Wunderlist, Echo Notification Lockscreen, and MileIQ.

MonoGame is a free and open source C# framework used by game developers to make games for multiple platforms and other systems. It is also used to make Windows and Windows Phone games run on other systems. It supports iOS, Android, macOS, tvOS, Linux, PlayStation 4, PlayStation Vita, Xbox One and Nintendo Switch. It implements the Microsoft XNA 4 application programming interface (API). It has been used for several games, including Bastion and Fez.

<span class="mw-page-title-main">Universal Windows Platform apps</span> Applications usable across all compatible Microsoft Windows devices

Universal Windows Platform (UWP) apps are applications that can be used across all compatible Microsoft Windows devices. They are primarily purchased and downloaded via the Microsoft Store, Microsoft's digital storefront.

<span class="mw-page-title-main">Windows 10 Mobile</span> Mobile operating system developed by Microsoft

Windows 10 Mobile is a discontinued mobile operating system developed by Microsoft. First released in 2015, it is a successor to Windows Phone 8.1, but was marketed by Microsoft as being an edition of its PC operating system Windows 10.

<span class="mw-page-title-main">React Native</span> Open-source mobile application framework

React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along with native platform capabilities. It is used to develop the Android and iOS applications at Facebook, Microsoft, and Shopify. It is also being used to develop virtual reality applications at Oculus.

<span class="mw-page-title-main">Windows Push Notification Service</span> Notification service developed by Microsoft

Windows Push Notification Service is a notification service developed by Microsoft for all devices running Microsoft Windows platforms. It allows for developers to send push data to Windows and Universal Windows Platform applications which implement the feature. Designed as a successor to the Microsoft Push Notification Service, it was first supported on Windows 8 and subsequently on Windows Phone 8.1 upon its release.

Realm is an open source object database management system, initially for mobile operating systems (Android/iOS) but also available for platforms such as Xamarin, React Native, and others, including desktop applications (Windows). It is licensed under the Apache License.

References

  1. 1 2 "What's a Universal Windows app?". Microsoft Developer Network . Microsoft. May 7, 2018. Retrieved April 29, 2019.
  2. "Introduction to Universal Windows Platform (UWP) apps for designers". Microsoft Developer Network . Microsoft. May 5, 2018. Archived from the original on February 22, 2019. Retrieved April 29, 2019.
  3. "Xamarin Updates From Microsoft Build 2020". Xamarin Blog. May 19, 2020. Retrieved January 21, 2022.
  4. "Migrate apps to the Universal Windows Platform (UWP)". Microsoft Developer Network . Microsoft . Retrieved July 31, 2015.
  5. "Move from Windows Runtime 8.x to UWP". Microsoft Developer Network . Microsoft. February 8, 2017. Retrieved April 29, 2019.
  6. Foley, Mary Jo. "Microsoft wants to close the UWP, Win32 divide with 'Windows Apps'". ZDNet. Retrieved May 8, 2019.
  7. 1 2 3 Hachman, Mark (August 6, 2015). "Microsoft releases iOS-to-Windows app maker Windows Bridge to open source". PC World . IDG. Retrieved October 9, 2015.
  8. "Universal Windows Platform Bridges - Windows app development". Microsoft Developer.
  9. Chester, Brandon (April 29, 2015). "Microsoft Demonstrates Android and iOS Applications Running On Windows 10". Anandtech . Purch Inc. Retrieved October 9, 2015.
  10. Protalinski, Emil (May 1, 2015). "Everything you need to know about porting Android and iOS apps to Windows 10". VentureBeat . Retrieved October 9, 2015.
  11. "microsoft/WinObjC: Objective-C for Windows". GitHub. Microsoft. February 16, 2020.
  12. Branscombe, Mary (May 11, 2015). "How will Android support work in Windows 10 for Phones?". TechRadar . Retrieved October 9, 2015.
  13. Bright, Peter (April 29, 2015). "Microsoft brings Android, iOS apps to Windows 10". Ars Technica . Retrieved October 9, 2015.
  14. Jo Foley, Mary (February 24, 2016). "Microsoft is buying mobile tool vendor Xamarin". ZDNet . CBS Interactive . Retrieved April 29, 2019.
  15. Jo Foley, Mary (February 25, 2016). "Microsoft: Our Android Windows 10 bridge is dead, but iOS, Win32 ones moving ahead". ZDNet. Retrieved February 26, 2016.
  16. Bright, Peter (February 26, 2016). "Microsoft confirms: Android-on-Windows Astoria tech is gone". Ars Technica. Conde Nast. Retrieved April 29, 2019.
  17. "How to Run Android Apps in Windows 11".
  18. Domingo, Michael (May 1, 2015). "Inside the Universal Windows Platform Bridges". Visual Studio Magazine. Retrieved October 9, 2015.
  19. Radich, Quinn; Satran, Michael; Whitney, Tyler; Jacobs, Mike; Weston, Susan; Das, Debalin (May 7, 2018). "Guide to Universal Windows Platform (UWP) apps". Windows Developers Center . Microsoft . Retrieved May 10, 2019.
  20. "Microsoft needs to stop forcing console-like restrictions on Windows Store PC games". Ars Technica. Conde Nast. February 29, 2016. Retrieved March 30, 2016.
  21. "Create a DirectX Universal Windows Platform (UWP) game - UWP applications". learn.microsoft.com.
  22. Hruska, Joel (May 10, 2016). "New Windows 10 updates add support for FreeSync, G-Sync, and unlocked frame rates". ExtremeTech. Retrieved May 10, 2019.
  23. Makuch, Eddie (March 30, 2016). "Xbox Boss on PC Gaming: "We've Heard the Feedback Loud and Clear"". GameSpot. Retrieved May 10, 2018.
  24. Walton, Mark (March 4, 2016). "Epic CEO: "Universal Windows Platform can, should, must, and will die"". Ars Technica. Conde Nast. Retrieved May 10, 2019.
  25. Takahashi, Dean (March 4, 2016). "Epic's Tim Sweeney questions Microsoft's commitment to an open Windows platform". VentureBeat .
  26. Bright, Peter (June 16, 2016). "Microsoft will use Steam to sell Windows games, not just its own store". Ars Technica . Condé Nast.
  27. Makuch, Eddie (June 15, 2016). "Xbox Boss Confirms More Steam Releases Coming, Discusses PC Struggles". GameSpot . CBS Interactive.
  28. Spencer, Phil (May 30, 2019). "Our Approach to PC Gaming". Xbox. Retrieved May 30, 2019.
  29. Humphries, Matthew (May 30, 2019). "Microsoft Teases Xbox Game Pass for PC". PCMag. Retrieved May 30, 2019.