# Application universelle (Windows)

Pour les systèmes Windows une application universelle, une application UWP, anciennement une application de style Métro ou une application Modern UI (en anglais : Universal app, UWP app, Universal Windows Platform app, Metro-style app, Modern UI app ou encore Modern User Interface app) est une application qui fait appel à la plateforme d'application universelle Windows (UWP) et qui peut être utilisée sur tous les terminaux Windows, comme des ordinateurs personnels, des tablettes tactiles, des smartphones, le visiocasque Microsoft HoloLens, la Xbox One, etc. Pour se procurer une application universelle on est généralement incité à passer par le Windows Store.

## Nomenclature

À partir de Windows 10, Microsoft propose : qu'une application UWP soit désignée comme « application universelle Windows » ou simplement « appli. Windows » ; qu'une application qui répond aux spécifications de Microsoft, installée à partir du Windows Store, soit qualifiée comme « application certifiée Windows Store » ; qu'une application classique exécutée pour l'environnement de bureau soit nommée « application de bureau ».

## Dans Windows 8 et 8.1

Une « appli. Windows » (sous-entendu universelle) était désignée comme « application de style Métro » lorsque le Windows Store a été lancé en 2012 avec la commercialisation de Windows 8. Sous Windows 8.1, Microsoft préfère parler d'application Modern UI, à la suite d'un conflit avec le terme Métro.

### Aspect et interaction

Dans Windows 8 et 8.1 (noté Windows 8.x) les applications de style Métro ou Modern UI ne s'affichent pas dans une fenêtre. Au lieu de cela, elles occupent l'écran entier ou sont cassées sur un côté, auquel cas elles occupent toute la hauteur de l'écran, mais seulement une partie de leur largeur. Elles n'ont pas de barre de titre, de menu contextuel, de bordure de fenêtre ou de boutons de commande. Les interfaces de commande comme les barres de défilement sont généralement cachées dans un premier temps. Les menus de réglages du système sont situés dans un volet de navigation appelé : « barre des charmes ». Les applications de style Métro ou Modern UI utilisent les contrôles de l'interface utilisateur de Windows 8.x et suivent généralement les instructions de Windows 8.x UI, telles que le défilement horizontal et l'inclusion des interfaces Edge-UI, comme la « barre d'application ».
En réponse aux critiques des clients, dans Windows 8.1, une barre de titre est présente, mais cachée, à moins que l'utilisateur déplace le curseur de la souris en haut de l'écran.

### Gestion des instances d'application

Avant Windows 8, les applications étaient identifiées par leurs icônes statiques. Une barre des applications : la barre des tâches de Windows, était responsable de représenter chaque application qui avait une fenêtre chargée en mémoire vive et en attente d'un traitement par le processeur (instance). Les applications de type Métro ou Modern UI sont cependant identifiées par leurs tuiles qui peuvent afficher leurs icônes ou d'autres contenus dynamiques. De plus, dans Windows 8 et Windows 8.1 RTM, elles ne sont pas affichées sur la barre des tâches de Windows lorsqu'elles s'exécutent, mais sur un volet des applications dédié sur le côté gauche de l'écran. Windows 8.1 met de nouveau à jour les icônes de la barre des tâches pour les applications Modern UI.
Il n'y a pas de limite définie sur le nombre d'instance d'application de bureau pouvant être exécutées simultanément. Par exemple, un utilisateur peut exécuter autant d'instance d'application comme le Bloc-notes, Paint ou Firefox tant que les ressources du système le permettent (certaines applications de bureau, telles que Windows Media Player, sont conçues pour permettre une seule instance, mais cette limite est imposée par l'application et non pas par le système d'exploitation). À l'inverse, Windows 8 limite à une seule instance les applications de type Métro. Cette instance peut être exécutée à n'importe quel moment sans toutefois libérer la plage d'adresse mémoire réserver à l'instance d'application antérieure, mais un autre appel d'application de type Métro remplace l'instance précédente.

### Distribution et licence

Pour la plupart des utilisateurs, le seul point d'entrée des applications de style Métro est le Windows Store. Les entreprises qui exploitent une infrastructure de domaine Windows peuvent conclure un contrat avec Microsoft qui leur permet de contrôler leurs applications métier de type Metro-Business, contournant le Windows Store. En outre, les principaux fournisseurs de navigateur web tels que Google et la fondation Mozilla sont sélectivement exemptés de cette règle ; Ils sont autorisés à contourner les directives de Microsoft et du Windows Store et à exécuter leur propre vision du type Métro si l'utilisateur choisit de faire de leur produit le navigateur web par défaut. Les applications de style Métro sont les seules applications tierces qui s'exécutent sur Windows RT. Les applications tierces traditionnelles ne s'exécutent pas sur ce système d'exploitation.

## Dans Windows 10

Windows 10 apporte des changements importants à la façon dont une application universelle s'affiche et fonctionne. On observe la généralisation du menu latéral dit « hamburger » qui remplace la « barre des charmes » au sein des applications. On retrouve aussi ce type de menu à tiroir dans le menu des applications.

### Aspect et interaction

La façon dont une application universelle apparait dépend de l'application elle-même. Une application UWP créé spécifiquement pour Windows 10 à généralement une apparence distincte, car elle utilise de nouvelles commandes UI qui ressemblent à celles des versions antérieures de Windows. L'exception à cela sont les applications qui utilisent l'interface utilisateur personnalisée, ce qui est particulièrement le cas avec les jeux vidéo. Les applications universelles conçues pour Windows 8.x semblent significativement différentes de celles conçues pour Windows 10.
Une application UWP peut également être presque identique à une application de bureau traditionnelle, en utilisant les mêmes contrôles UI traditionnels à partir de versions Windows datant de Windows 95. C'est dans ce cas une application de bureau héritée, convertie en application universelle qui est distribuée à l'aide du format de fichier APPX.

### Gestion du multitâche

Dans Windows 10, la plupart des applications universelles, même celles conçues pour Windows 8.x, sont exécutées dans des fenêtres flottantes et les utilisateurs utilisent la barre des tâches Windows et la vue des tâches (en) pour basculer entre les applications universelles et les applications de bureau. Windows 10 a également introduit « Continuum » et le « Mode tablette ». Ce mode est par défaut désactivé sur les ordinateurs de type bureau et activé sur les ordinateurs de type tablette, mais les utilisateurs de bureau peuvent l'activer ou le désactiver manuellement. Lorsque le mode tablette est désactivé, les applications peuvent avoir des fenêtres importantes et des barres de titre visibles. Lorsque le mode tablette est activé, les applications redimensionnables utilisent le système de fenêtrage similaire à celui des applications de style Métro ou Modern UI de Windows 8.x en ce sens qu'elles sont forcées d'occuper l'écran entier ou d'être cassées sur un côté.
Dans Windows 10, les applications universelles peuvent ouvrir plusieurs instances de fenêtre. Microsoft Edge, Calculatrice et Microsoft Photos (en) sont des exemples d'applications qui le permettent.

### Distribution et licence

Les applications UWP peuvent être téléchargées depuis le Windows Store ou transférées depuis un autre périphérique. Les exigences de parachargement (sideloading) ont été considérablement assouplis de Windows 8.x à 10, mais l'application doit encore être signée par un certificat de clé publique de confiance qui se connecte à un certificat racine.

## Persistance des processus

Les applications universelles sont suspendues lorsqu'elles sont fermées ; Au besoin, les applications universelles suspendues sont automatiquement terminées par un gestionnaire d'applications Windows. Les tuiles dynamiques, les processus en arrière plan (interfaces pour interagir avec d'autres logiciels) peuvent exiger qu'une application soit activée avant qu'un utilisateur ne s'en serve.
Pendant six ans, l'utilisation de la ligne de commande pour invoquer de façon arbitraire une application de type Métro, Modern UI ou UWP n'avait pas été prise en charge. Cette fonctionnalité a été introduite par la version initiale 16226 de Windows 10, qui a été publiée le 21 juin 2017.

## Développement
### Appli. de style Métro ou Modern UI avec Windows Runtime

Traditionnellement, les logiciels Windows ont été développés à l'aide de Windows API. Les logiciels avaient accès à l'Interface de programmation applicative (API) sans restrictions arbitraires. Les développeurs étaient libres de choisir leur propre langage de programmation et leurs Outils de développement (en). Les applications de style Métro sont cependant développées à l'aide de Windows Runtime (WinRT). L'appel d'une API interdite exclut l'apparition de l'application sur le Windows Store.
Toutes les applications utilisant WinRT ne sont pas des applications de style Métro ; Un sous-ensemble limité de WinRT est disponible pour les applications de bureau.
Les applications de style Métro ne peuvent être développées qu'avec les outils de développement de Microsoft. Selon Allen Bauer, scientifique en chef d'Embarcadero Technologies (en), il existe des API que chaque programme informatique doit appeler, mais Microsoft les a interdit, sauf lorsque l'appel provient de l'exécution de Visual C++ de Microsoft.

### Applications universelles avec UWP

Les applications développées pour fonctionner intrinsèquement sur les smartphones, les ordinateurs personnels, les consoles de jeux vidéo et HoloLens s'appellent des applications universelles. Ceci est réalisé en utilisant l'API pour application universelle, introduite pour la première fois dans Windows 8.1 et Windows Phone 8.1. Microsoft Visual Studio 2013 avec la deuxième mise à jour pourrait être utilisé pour développer ce type d'applications. Windows 10 introduit Universal Windows Platform (UWP) pour développer des applications universelles. Les applications qui profitent de cette plate-forme sont développées avec Visual Studio 2015 . Les applications de style Modern UI plus anciennes (pour Windows 8.1, Windows Phone 8.1 ou les deux) nécessitent des modifications pour migrer vers cette plate-forme.
La plateforme UWP n'est pas distinct de la plateforme Windows Runtime ; Il s'agit plutôt d'une extension de celle-ci. Les applications universelles n'indiquent plus avoir été écrites pour un OS spécifique dans leur fichier manifeste (en) ; Au lieu de cela, elles ciblent une ou plusieurs familles de périphériques, par exemple : bureau, mobile, Xbox ou Internet des objets (IoT pour Internet of Things en anglais). Elles réagissent aux capacités qui deviennent disponibles pour le périphérique. Une application universelle peut fonctionner sur un petit téléphone portable et une tablette et fournir une expérience appropriée. L'application universelle qui fonctionne sur le téléphone mobile peut commencer à se comporter comme elle le ferait sur une tablette lorsque le téléphone est connecté à un moniteur ou à une station d'accueil appropriée.

## Controverse

Les applications UWP sont développées avec des langages (C++, C#, JavaScript et XAML basé sur XML) qui ont été conçus à l'origine pour améliorer l'interopérabilité entre différents ordinateurs et tout particulièrement avec le compatible PC. De plus, l'objectif affiché par la plateforme UWP est de proposer aux utilisateurs une interface unique malgré les différences notables entre des terminaux mobiles et bureautiques, mais certaines critiques dénotent les applications UWP qui n'ont d'universelles que leurs noms. Par exemple, Tim Sweeney (éditeur notamment de la série de jeux Gears of War) dénonce le risque d'un monopole qui pourrait être causé par la distribution d'application qui serait uniquement possible via le Windows Store, malgré la possibilité de diffuser les applications créées sur d'autre site via un setup d'installation.