Che cos'è un'app UWP (Universal Windows Platform)?

UWP è uno dei numerosi modi per creare applicazioni client per Windows. Le app UWP usano le API WinRT per offrire potenti funzionalità avanzate di interfaccia utente e asincrone, ideali per i dispositivi connessi a Internet.

Per scaricare gli strumenti necessari per iniziare a creare app di Windows, vedere Installare gli strumenti per SDK per app di Windows e quindi Scrivere la prima app.

Quale posto occupa UWP nel progetto di sviluppo Microsoft?

UWP è la soluzione ideale per creare app che vengono eseguite nei dispositivi Windows 10 e Windows 11 e può essere combinato con altre piattaforme. Le app UWP possono usare le API Win32 e le classi .NET (vedere Set di API per le app UWP, DLL per le app UWP e .NET per le app UWP).

Il progetto di sviluppo Microsoft continua a evolversi e, insieme a iniziative come WinUI, MSIX e SDK per app di Windows, UWP rappresenta uno strumento potente per la creazione di app client.

Caratteristiche di un'app UWP

Un'app UWP è:

  • Sicura: le app UWP dichiarano le risorse del dispositivo e i dati a cui accedono. L'utente deve autorizzare tale accesso.
  • In grado di usare un'API comune in tutti i dispositivi che eseguono Windows.
  • In grado di usare funzionalità specifiche del dispositivo e di adattare l'interfaccia utente alle dimensioni, alle risoluzioni e ai DPI dello schermo di dispositivi diversi.
  • Disponibile nel Microsoft Store in tutti i dispositivi (o solo a quelli specificati) che eseguono Windows 10 o Windows 11. Il Microsoft Store offre diversi modi per realizzare profitti con un'app.
  • In grado di essere installata e disinstallata senza rischio o danni per il computer.
  • Coinvolgente: è possibile usare riquadri animati, notifiche push e attività utente che interagiscono con Sequenza temporale di Windows e la funzionalità di ripristino della ricerca dal punto in cui è stata interrotta di Cortana per coinvolgere gli utenti.
  • Programmabile in C#, C++, Visual Basic e JavaScript. Per l'interfaccia utente usare WinUI, XAML, HTML o DirectX.

Diamo un'occhiata a queste caratteristiche nel dettaglio.

Protezione

Le app UWP dichiarano nel proprio manifesto le funzionalità del dispositivo di cui necessitano, ad esempio l'accesso al microfono, alla posizione, alla Webcam, ai dispositivi USB, ai file e così via. L'utente deve accettare e autorizzare tale accesso prima che all'app sia consentito l'uso della funzionalità.

Una superficie API comune per tutti i dispositivi

Windows 10 introduce la piattaforma UWP (Universal Windows Platform), una piattaforma per app comune disponibile per tutti i dispositivi che eseguono Windows 10. Le API di base UWP sono le stesse in tutti i dispositivi Windows. Se l'app usa solo le API di base, funzionerà in qualsiasi dispositivo Windows, indipendentemente dal fatto che sia destinata a un PC desktop, a Xbox o a un visore VR realtà mista e così via.

Un'app UWP scritta in C++ /WinRT ha accesso alle API Win32 che fanno parte della piattaforma UWP. Queste API Win32 sono implementate in tutti i dispositivi Windows.

Gli SDK di estensione espongono le funzionalità esclusive di tipi di dispositivi specifici

Se la destinazione sono le API universali, l'app può essere eseguita in tutti i dispositivi con sistema operativo Windows 10 o versione successiva. L'app UWP può comunque usufruire anche delle API specifiche del dispositivo.

Gli SDK di estensione permettono di chiamare API specializzate per dispositivi diversi. Se, ad esempio, l'app UWP è destinata a un dispositivo IoT, è possibile aggiungere l'SDK di estensione IoT al progetto per usufruire delle funzionalità specifiche dei dispositivi IoT. Per altre informazioni sull'aggiunta di SDK di estensione, vedere la sezione SDK di estensione in Programmazione con gli SDK di estensione.

L'app può essere scritta in modo che venga eseguita solo su un particolare tipo di dispositivo, quindi limitarne la distribuzione nel Microsoft Store a solo quel tipo di dispositivo. In alternativa, è possibile eseguire test condizionali sulla presenza di un'API in fase di esecuzione e adattare il comportamento dell'app di conseguenza. Per altre informazioni, vedere la sezione Scrittura di codice in Programmazione con gli SDK di estensione.

Input e controlli adattivi

Gli elementi dell'interfaccia utente rispondono alle dimensioni e ai DPI dello schermo regolando il layout e le proporzioni dell'app. Le app UWP funzionano bene con più tipi di input, ad esempio tastiera, mouse, tocco, penna e periferiche di gioco. Se è necessario personalizzare ulteriormente l'interfaccia utente in base a dimensioni di schermo o dispositivi specifici, sono disponibili nuovi strumenti e pannelli di layout che permettono di progettare un'interfaccia utente in grado di adattarsi ai vari dispositivi e fattori di forma su cui l'app potrebbe essere in esecuzione.

Windows-powered devices

Con le funzionalità seguenti Windows ti aiuta a progettare l'interfaccia utente per più dispositivi di destinazione:

  • Controlli universali e pannelli di layout facilitano l'ottimizzazione dell'interfaccia utente in base alla risoluzione dello schermo del dispositivo. I controlli come i pulsanti e i dispositivi di scorrimento, ad esempio, si adattano automaticamente alla densità DPI e alle dimensioni dello schermo del dispositivo. I pannelli di layout aiutano a regolare il layout del contenuto in base alle dimensioni dello schermo. Il ridimensionamento adattivo si modifica in base alle differenze di risoluzione e DPI di più dispositivi.
  • La gestione comune dell'input permette di ricevere l'input tramite tocco, una penna, un mouse, una tastiera oppure una periferica di gioco.
  • Strumenti che facilitano la progettazione dell'interfaccia utente in modo che si adatti alle diverse risoluzioni dello schermo.

Alcuni aspetti dell'interfaccia utente della tua app si adatteranno automaticamente a più dispositivi. Potrebbe tuttavia essere necessario adattare la progettazione dell'esperienza utente della tua app in base al dispositivo su cui viene eseguita. Un'app di foto, ad esempio, dovrebbe adattare l'interfaccia utente quando viene eseguita su un piccolo dispositivo palmare, per garantirne un utilizzo ideale con una sola mano. Quando l'app di foto viene eseguita su un computer desktop, l'interfaccia utente dovrebbe adattarsi per sfruttare al meglio lo spazio aggiuntivo sullo schermo.

Esiste un solo Store per tutti i dispositivi

Uno Store per app unificato rende l'app disponibile ai dispositivi Windows, ad esempio PC, tablet, Xbox, HoloLens, Surface Hub e ai dispositivi Internet delle cose (IoT). È possibile inviare l'app allo Store e renderla disponibile per tutti i tipi di dispositivi o soltanto per quelli selezionati. In questo modo, invierai e gestirai tutte le tue app per i dispositivi Windows in un'unica posizione. Si desidera modernizzare un'app desktop C++ dotandola di funzionalità della piattaforma UWP e venderla nel Microsoft Store? Nessun problema.

Le app UWP si integrano con Application Insights per l'analisi e i dati di telemetria dettagliati, uno strumento strategico per capire gli utenti e migliorare le app.

È possibile includere le app UWP in pacchetti con MSIX e distribuirle tramite Microsoft Store o in altri modi. MSIX consente l'aggiornamento delle app indipendentemente dalla modalità con cui vengono distribuite. Vedere Aggiornare dal codice i pacchetti di app non pubblicate nello Store.

Monetizzare la tua app

È possibile scegliere come monetizzare l'app. Esistono diversi modi per realizzare profitti con un'app. Tutto quello che occorre fare è scegliere il più adatto, ad esempio:

  • Il download a pagamento è la soluzione più semplice. Basta indicare il prezzo.
  • Le versioni di valutazione consentono agli utenti di provare l'app prima di acquistarla e offrono opportunità di esposizione e conversione più semplici rispetto alle più tradizionali opzioni "freemium".
  • Prezzi di vendita per accattivarsi gli utenti.
  • Acquisti in-app.

Consente di offrire informazioni pertinenti e in tempo reale agli utenti per invogliarli a tornare

Esistono molti modi per mantenere alto l'interesse degli utenti verso un'app UWP:

  • Riquadri animati e riquadri nella schermata di blocco che presentano informazioni contestualmente rilevanti e tempestive.
  • Notifiche push che visualizzano avvisi importanti in tempo reale per attirare l'attenzione dell'utente.
  • Le attività utente consentono agli utenti di riprendere da dove avevano lasciato, anche cambiando dispositivo.
  • Il centro notifiche organizza le notifiche dall'app.
  • Con l'esecuzione in background e i trigger l'app si attiva quando serve all'utente.
  • La tua app può usare dispositivi vocali e Bluetooth a basso consumo per aiutare gli utenti a interagire con il mondo che li circonda.
  • Integra Cortana per aggiungere la funzionalità dei comandi vocali all'app.

Usa un linguaggio che già conosci

Le app UWP usano Windows Runtime, un'API nativa fornita dal sistema operativo. Questa API è implementata in C++ ed è supportata in C#, Visual Basic, C++ e JavaScript. Alcune opzioni per la scrittura di app UWP includono:

  • Interfaccia utente XAML e C#, VB o C++
  • Interfaccia utente DirectX e C++
  • JavaScript e HTML
  • WinUI

Effettuare la configurazione

Vedere Per iniziare per scaricare gli strumenti necessari per iniziare a creare app e, successivamente, scrivere la prima app.

Progettare l'app

Il sistema di progettazione Microsoft si chiama Fluent. Il sistema Fluent Design è un set di funzionalità UWP e procedure consigliate per la creazione di app che funzionano in modo ottimale in tutti i tipi di dispositivi Windows. Le esperienze con Fluent si adattano perfettamente su tutti i dispositivi, dai tablet ai portatili, dai PC ai televisori e ai dispositivi di realtà virtuale. Per un'introduzione su Fluent Design, vedere Sistema Fluent Design per app UWP.

Una buona progettazione è il processo durante il quale si stabilisce in che modo gli utenti interagiranno con l'app, quale sarà il suo aspetto e come funzionerà. L'esperienza utente ha un ruolo fondamentale nella determinazione del livello di gradimento dell'app da parte degli utenti, quindi non trascurare questo passaggio. Nozioni di base sulla progettazione offre un'introduzione alla progettazione di un'app di Windows universale. Le informazioni di base sui dispositivi aiutano a valutare attentamente l'esperienza di interazione per l'uso dell'app in tutti i diversi fattori di forma scelti come destinazione.

Oltre all'interazione su diversi dispositivi, pianifica la tua app in modo da cogliere i vantaggi del funzionamento su più dispositivi. Ad esempio:

Aggiungere servizi

Invia l'app a Windows Store

Con il Centro per i partner è possibile gestire e inviare tutte le tue app per i dispositivi Windows da una singola posizione. Visualizzare Pubblicare giochi e app di Windows per informazioni su come inviare le app per la pubblicazione nel Microsoft Store.

Le nuove funzionalità semplificano i processi e al tempo stesso ti garantiscono un maggiore controllo. Puoi anche trovare report analitici dettagliati, informazioni combinate sui proventi, soluzioni per promuovere la tua app e interagire con i clienti e molto altro ancora.

Per altro materiale introduttivo, vedere Introduzione alla creazione di app per dispositivi Windows 10

Argomenti più avanzati

Relazione tra la piattaforma UWP e le API di Windows Runtime

Se si sta creando un'app UWP (Universal Windows Platform), è possibile ottenere numerosi vantaggi trattando i termini "Universal Windows Platform (UWP)" e "Windows Runtime (WinRT)" come quasi sinonimi. Ma è possibile esaminare in modo più approfondito questa tecnologia per capire la differenza tra queste idee. L'ultima sezione è riservata a chi ha questa curiosità.

Windows Runtime, e le API WinRT, sono un'evoluzione delle API di Windows. Windows è stato programmato in origine con semplici API Win32 di tipo C. A queste sono state aggiunte API COM (DirectX come esempio lampante). Windows Form, WPF, .NET e i linguaggi gestiti hanno dato il loro contributo alla modalità di scrittura delle app di Windows e integrato le proprie caratteristiche nella tecnologia API. Windows Runtime è, osservando in maniera più approfondita, la fase successiva di COM. A livello dell'interfaccia binaria dell'applicazione (ABI) effettiva, le sue radici in COM diventano visibili. Ma Windows Runtime è stato progettato per essere chiamato da un'ampia gamma di linguaggi di programmazione diversi. È possibile chiamarlo in modo molto naturale da ognuno di questi linguaggi. A tal fine, l'accesso a Windows Runtime viene reso disponibile tramite le cosiddette proiezioni di linguaggi. È presente una proiezione di linguaggio di Windows Runtime in C#, in Visual Basic, in C++, standard, in JavaScript e così via. Inoltre, creando il pacchetto in modo appropriato (vedere Desktop Bridge), è possibile chiamare le API WinRT da un'app integrata in una vasta gamma di modelli di applicazione: Win32, .NET, WinForms e WPF.

E, naturalmente, è possibile chiamare le API di WinRT dall'app UWP. La piattaforma UWP è un modello di applicazione integrato in Windows Runtime. Tecnicamente, il modello di applicazione UWP è basato su CoreApplication, anche se il dettaglio può essere invisibile all'utente, a seconda del linguaggio di programmazione. Come è illustrato in questo argomento, da un punto di vista della proposta di valore, la piattaforma UWP si presta alla scrittura di un unico file binario che è possibile, se lo si desidera, pubblicare nel Microsoft Store ed eseguire su uno qualsiasi di un'ampia gamma di fattori di forma dei dispositivi. La copertura dei dispositivi dell'app UWP dipende dal subset delle API di Windows Runtime che sono chiamabili dall'app o che vengono chiamate in modo condizionale.

Ci auguriamo che questa sezione sia riuscita a spiegare la differenza tra la tecnologia sottostante delle API di Windows Runtime e il meccanismo e il valore di business della piattaforma UWP.