Universal Windows Platform apps

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Khan Academy, an example of a Universal Windows App
Left: A traditional desktop without contents; it is showing 60 graphical widgets, a thick border and chrome.
Right: Metro-style app; chiefly composed of contents

Universal Windows Platform (UWP) apps,[1] formerly known as Windows Store apps,[2][3] and Metro-style apps[4][5][6][7] are a class of applications for Microsoft Windows devices, including PCs, tablets, phones, Xbox One, Microsoft Hololens, and Internet of Things. UWP apps are primarily distributed via Windows Store for Microsoft Windows. These apps are unlike traditional Windows desktop software in terms of design, development, distribution and contents.

Nomenclature

Starting with Windows 10, Windows itself consistently uses the phrase "desktop app" to refer to all traditional computer programs. In contrast, "Windows app", refers to a UWP app. A "Trusted Windows Store app" is a UWP installed from Windows Store that meets Microsoft's stringent requirements.

In Windows 8.x

The first version of Windows capable of running Metro-style apps was Windows Server 2012 which preceded Windows 8 by one month.

Look and feel

Anatomy of a traditional Windows app: These elements, collectively known as "chrome" were initially absent from Metro-style apps. When they reappeared later, they were highly curtailed.

In Windows, Mac OS and Linux, traditional desktop software could run inside windows with distinct borders. Their border could bear a title bar which displayed application title, a system menu, and optionally a set of maximize, minimize, close and help buttons. Their window could be resized horizontally and vertically. They are controlled by visible elements of user interface (UI), including menus, toolbars, ribbons, scroll bars and window borders, which have become so elaborate in Windows Vista and Windows 7 that they require specialized apps (such as Window Clippings) for taking screenshots.

In Windows 8, Metro-style apps do not run inside windows. Either they occupy the entire screen or are snapped to one side, in which case they occupy the entire height of the screen but only part of its width. True to Microsoft's "Contents are the hero" slogan, Metro-style apps have no user interface chrome, i.e. no title bar, system menu, window borders or window control buttons. Even mandatory command interfaces like scroll bars are usually hidden at first. Metro-style apps do not have menus on their own windows; rather, elaborate menu are located on Settings charm. Metro-style apps use the UI controls of Windows 8.x and typically follow Windows 8.x UI guidelines, such as horizontal scrolling and the inclusion of edge-UIs, like the app bar.

Following criticism from customers, Microsoft gradually relaxed the no-chrome rule. In Windows 8.1, a title bar is present but hidden, unless users moves the mouse cursor to the top of the screen. The "hamburger" menu button on their title bar gives access to the Charms functionality of Windows 8.1.

Distribution and licensing

Traditionally, Windows was an open operating system. Software could come from anywhere, including optical discs manufactured by their publishers and downloaded packages from the Internet. One could potentially run such app without the knowledge of any other person in the world. Only components created by the publisher are in charge of licensing, updating, maintaining or uninstalling them. Publishers have a free hand in choosing the licensing terms.

For most users, the only point of entry of Metro-style apps is Windows Store, which requires users to have an Internet connection and a Microsoft account. Thus, Microsoft always knows which apps any given user runs. Outside the 120 countries in which Windows Store works, users can neither develop nor possess such apps. The publisher is always Microsoft, and Windows Store Service is the component in charge of installing, updating or uninstalling these apps. Metro-style apps may disappear from the user's computer if Microsoft so wishes. Also, Microsoft specifies the licensing terms. More specifically, developers must allow users to run their purchased apps on multiple devices.

Enterprises operating a Windows domain infrastructure may enter into a contract with Microsoft that allows them to sideload their line-of-business Metro-style apps, circumventing Windows Store. Also, major web browser vendors such as Google and Mozilla Foundation are selectively exempted from this rule; they are allowed to circumvent Microsoft guidelines and Windows Store and run a Metro-style version of themselves if the user chooses to make their product the default web browser.[8][9]

Metro-style apps are the only third-party apps that run on Windows RT. Traditional third-party apps do not run on this operating system.

Multitasking

Before Windows 8, computer programs were identified by their static computer icons. Windows taskbar was responsible for representing every app that had a window when they run. Metro-style apps, however, are identified by their "tile"s that can not only show their icon, but also other dynamic contents. In addition, in Windows 8 and Windows 8.1 RTM, they do not show up on Windows taskbar when they run. Instead, they appear on a dedicated app switcher on the left side of the screen.[10] Windows 8.1 Update restored taskbar icons for Metro-style apps.[11]

For desktop apps, there is no arbitrary limit on how many copies of them can run at one time. For example, one user may run as many copies of Notepad, Paint or Firefox as the system resources support. (Some desktop apps like Windows Media Player, however, may refuse to run a new instance if an instance of them is already in the memory.) However, in Windows 8, only one copy of Metro-style apps may run at any given time. Attempting to run a second copy results in the running instance being activated and brought into focus.

In Windows 10

Windows 10 brings significant changes to how UWP apps look and work.

Look and feel

How UWP apps look depends on the app itself. UWP apps built specifically for Windows 10 typically have a distinct look and feel, as they use new UI controls that look different from the those of previous versions of Windows. The exception to this are apps that use custom UI, which is specially the case with video games. Apps designed for Windows 8.x look significantly different from those designed for Windows 10.

UWP apps can also look almost identical to traditional desktop apps, using the same legacy UI controls from Windows versions dating back to Windows 95. These are legacy desktop apps that are converted to the UWP apps and distributed using APPX.

Multitasking

In Windows 10, most UWP apps, even those designed for Windows 8.x, are run in floating windows, and users use the Windows taskbar and Task View to switch between both UWP apps and desktop apps. Windows 10 also introduced "Continuum" or "Tablet Mode". This mode is by default disabled on desktop computers and enabled on tablet computers, but desktop users can switch it on or off manually. When the Tablet Mode is off, apps may have sizable windows and visible title bars. When the Tablet Mode is enabled, resizable apps use the windowing system similar to that of Metro-style apps on Windows 8.x in that they are forced to either occupy the whole screen or be snapped to one side.[12][13][14]

UWP apps in Windows 10 can open in multiple windows. Microsoft Edge, Calculator, and Photos are examples of apps that allow this.

Licensing and distribution

UWP apps can downloaded from Windows Store or sideloaded, at user's discretion. In comparison to Windows 8.x, the sideloading requirements has been reduced significantly. The app still needs to be signed by a trusted digital certificate that chains to a root certificate.[15]

Lifecycle

Before Metro-style apps, programs on personal computers were started and ended with user's command. Metro-style apps, however, never truly start or end on user's command. Dynamic tiles, background components and contracts (interfaces for interacting with other apps) often require an app to be activated before a user starts it. In addition, closing an app does not immediately end its process or free the memory they have occupied. Rather, they enter a suspended state. A Windows app manager automatically stops and terminates hung, inactive and closed apps independent of user's wish.[16][17]

Development

Windows Runtime

Traditionally, Windows software were developed using Windows API. Software had access to the API with no arbitrary restrictions. Developers were free to choose their own programming language and development tools. Metro-style apps, however, are developed using Windows Runtime (WinRT). Calling forbidden API disqualifies the app from appearing on Windows Store.

Not every app using WinRT is a Metro-style app; a limited subset of WinRT is available for desktop apps.[18]

Metro-style apps can only be developed using Microsoft's own development tools. Despite claims of interoperability between multiple languages, a practical attempt to implement independent binding to Windows Runtime is doomed to fail. According to Allen Bauer, Chief Scientist of Embarcadero Technologies, there are APIs that every computer program must call but Microsoft has forbidden them, except when the call come from Microsoft's own Visual C++ runtime.[19][20][21]

Universal apps

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Apps developed to work intrinsically on smartphones, personal computers, video game consoles and HoloLens are called universal apps. This is accomplished by using the universal app API, first introduced in Windows 8.1 and Windows Phone 8.1. Visual Studio 2013 with Update 2 could be used to develop these apps.[22][23] Windows 10 introduced Universal Windows Platform (UWP) 10 for developing universal apps. Apps that take advantage of this platform are developed with Visual Studio 2015. Older Metro-style apps for Windows 8.1, Windows Phone 8.1 or for both (universal 8.1) need modifications to migrate to this platform.[24][25]

UWP is not distinct from Windows Runtime; rather, it is an extension of it. Universal apps no longer indicate having been written for specific OS in their manifest; instead, they target one or more device families, e.g. desktop, mobile, Xbox or Internet of Things (IoT). They react to the capabilities that become available to the device. A universal app may run on both a small mobile phone and a tablet and provide suitable experience. The universal app running on the mobile phone may start behaving the way it would on a tablet when the phone is connected to a monitor or a suitable docking station.[26]

APPX

APPX is the file format used to distribute and install applications on Windows 8.x and 10, Windows Phone 8.1, Windows 10 Mobile, Xbox One, Hololens, and Windows 10 IoT Core.[27] Unlike legacy desktop apps, APPX is the only installation system allowed for UWP apps. It replaces the XAP file format on Windows Phone 8.1, in an attempt to unify the distribution of applications for Windows Phone and Windows 8.[28] APPX File is only compatible with Windows Phone 8.1 and later versions[29]

The Windows Phone 8.x Marketplace allows users to download APPX files to an SD Card and install them manually. In contrast, sideloading is prohibited on Windows 8.x, unless the user has a developers license or in a business domain.[30][unreliable source?]

Security

Windows software have power to use and change their ecosystem however they want. Windows user account rights, User Account Control and antivirus software attempt to keep this ability in check and notify the user when the app tries to use it for malicious purposes. Metro-style apps, however, are sandboxed and cannot permanently change a Windows ecosystem. They need permission to access hardware devices such as web cam and microphone and their file system access is restricted to user folders, such as My Documents. Microsoft further moderates these apps and may remove them if they are discovered to have security or privacy issues.[31][32]

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. How to Install Appx File on Windows Phone 8.1
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.