Facciamo chiarezza sul concetto di applicazioni UWP (Universal Windows Platform), introdotte da Microsoft con l'avvento del nuovo Sistema operativo, Windows 10.
Fra le caratteristiche principali di Windows 10, il nuovo Sistema operativo Microsoft, vi è l'Universalità, intesa come concetto ampio, esteso dalle viscere del software, Kernel e Shell, sino alla superficie, a diretto contatto con l'utente e con il suo utilizzo quotidiano.Windows 10 è nato con l'idea di essere un insieme di software multi-piattaforma, capace di essere eseguito su ogni tipologia di dispositivo, con qualsiasi risoluzione e con qualsiasi struttura architettonica software/hardware.
Il Sistema è il compimento di un lavoro di svecchiamento di Windows iniziato nel 2012 con il lancio di Windows 8, imposto da un repentino cambiamento dell'utilizzo della tecnologia da parte della popolazione, rappresentato dal boom di dispositivi portatili, smartphone in primis.
Le app Modern, introdotte con Windows 8, hanno sancito un taglio netto con il passato, portando Windows al passo con i tempi, dando modo a Microsoft di sviluppare un Sistema operativo che potesse rispecchiare e rispettare le esigenze degli utenti, su PC come su device Mobile, offrendo ciò di cui le persone hanno bisogno oggi, in qualsiasi situazione, in ufficio come in strada.
Le app Modern di Windows 8 sono confluite nella nuova Piattaforma Universale di Windows, semplificando il lavoro degli sviluppatori e l'utilizzo degli utenti di Windows 10.
Le app UWP sono al centro del progetto (e del concetto) di Universalità che ha, fin dall'inizio, Windows 10.
Sono programmi moderni, con una scrittura semplificata, valida per qualsiasi tipologia di piattaforma.
Uno sviluppatore non deve preoccuparsi di scrivere e modificare il codice di un programma per adattarlo ad un Sistema desktop, tablet, smartphone, TV, visori VR, IoT o console; a questo pensa Windows 10.
Una volta programmata l'applicazione, le modifiche da apportare (quando necessario) sono minime; si può pubblicare nel Windows Store - più o meno - così com'è.
Ecco, adesso avete appena pensato qualcosa del tipo: "e allora, perché questa o quell'altra app è disponibile solo su o solo per..?".
Bene, lo scopo di questo Articolo è proprio quello di cercare di fare chiarezza dove neanche Microsoft (con un po' di colpa) è riuscita a farla, nel corso di questi anni.
Quindi, che cos'è un'applicazione UWP?
Microsoft non ha coniato il termine Universal per i consumatori ma per gli sviluppatori.Come vi dicevo poco sopra, uno sviluppatore di applicazioni sa di poter (e dover) scrivere un codice valido universalmente per qualsiasi dispositivo che esegua Windows 10, ma ciò non vuol dire (e non è mai stato scritto o detto da Microsoft) che un'applicazione è eseguibile o debba essere eseguita ovunque. Per ragioni diverse, quanto semplici e/o banali.
Un gioco UWP disponibile per PC e Xbox può non essere installabile su smartphone Windows 10 Mobile perché gli attuali dispositivi non garantiscono risorse necessarie per il corretto funzionamento del gioco stesso. Questo non vuol dire che non potrà esserlo in futuro, senza necessità di riscrivere il codice e, magari, neanche di modificarlo.
Discorso inverso può essere fatto per certe app che vedono il loro utilizzo, al di fuori di un ambiente Mobile, inutile o non applicabile per problematiche non inerenti all'app stessa. Ad esempio, l'inserimento e la funzionalità piena di sim card su PC o Notebook.
Non è l'app che non è Universale; è il dispositivo che non è in grado o non prevede il bisogno di utilizzare quell'app. Quindi lo sviluppatore pubblica il suo lavoro attendendo, semmai, progressi e novità che non sono di sua competenza.
Il Windows Store ha, attualmente, oltre 20.000 (ventimila) applicazioni.
Tecnicamente, tutto ciò che è presente nel Windows Store è UWP.
Le app UWP sono un'estensione della piattaforma Runtime di Windows che sfrutta linguaggi di codifica C ++, C #, VB.NET e XAML e hanno caratteristiche univoche che comprendono Toolkit API universale, Progettazione e scalabilità sensibili nelle applicazioni, Controlli universali, stili, input e interazioni, Cloud, AI e servizi cognitivi, Unico Store per la distribuzione, kit di sviluppo software (SDK).
L'intento di Microsoft con le app UWP è quello di permettere agli sviluppatori di condividere il medesimo codice fra applicazioni che un tempo sarebbero state applicazioni diverse, utilizzando un intervallo di API il più esteso possibile.
Windows 10 introduce UWP, che fornisce una piattaforma di app comune disponibile su ogni dispositivo che esegue Windows 10. L'UWP fornisce un'interfaccia core garantita in tutti i dispositivi. Ciò significa che puoi creare un singolo pacchetto di applicazioni che può essere installato su una vasta gamma di dispositivi. E, con quel singolo pacchetto di app, Windows Store offre un canale di distribuzione unificato per raggiungere tutti i tipi di dispositivi che l'applicazione può eseguire. Le applicazioni con target UWP possono chiamare non solo le API WinRT comuni a tutti i dispositivi, ma anche le API (incluse le API Win32 e .NET) specifiche per la classe di periferica in cui è in esecuzione l'applicazione.Al contempo, Microsoft non costringe nessuno a scrivere codice di un'app da pubblicare nel Windows Store valido per tutti i tipi di dispositivi.
Né a parole, né tecnicamente.
Uno sviluppatore è libero di pubblicare quante versioni vuole nel Windows Store della medesima app, e, anche se non ha molto senso, è ciò che accade ancora oggi, in diversi casi, anche di applicazioni riguardanti servizi popolari.
Di alcuni casi celebri non se ne conoscono le ragioni effettive.
Di altri è possibile stabilire (o immaginare) ragioni tecniche come l'incompatibilità di API personalizzate di applicazioni Win32 consolidate che il sistema UWP non riconosce nella sua universalità.
Di conseguenza, lo sviluppatore o è impossibilitato a pubblicare, anche ricorrendo ai vari ponti a disposizione, la propria app nel Windows Store, o deve pubblicarne più di una versione, ognuna per uno specifico dispositivo.
E, a proposito di ponti e di quanto evidenziato sopra, anche tutte le applicazioni derivate ed ottenute grazie a Windows Desktop Bridge (Project Centennial), Progressive Web Apps (Project Westminster) o Windows iOS Bridge (Project Islandwood), se sono nel Windows Store, sono app Universal Windows Platform. Alcune possiamo considerarle applicazioni Win32 classiche adattate all'universalità, grazie ad un contenitore JavaScript UWP.
Ovviamente, il contenitore e l'installatore non fanno di un programma un'applicazione UWP, ma le caratteristiche che ne definiscono e ne giustificano l'appartenenza e la presenza nel negozio virtuale Microsoft sono tutte comuni e riconducibili a parametri da rispettare, quali l'interazione con Cortana, le Live Tile, le notifiche nel Centro operativo di Windows 10, il Cloud, la Sicurezza, UI adattabile, le Licenze, Update e via discorrendo.
Il progetto UWP deve e mira a sostituire applicazioni desktop Win32 che hanno avuto uno sviluppo ventennale, con moli di lavoro importanti da parte di Microsoft e degli sviluppatori.
Non può essere tutto perfetto, nel giro di qualche stagione di programmazione bidirezionale.
C'è bisogno di tempo affinché tutto vada nel verso auspicato e tutto ciò che è nel Windows Store sia utilizzabile, con una sola versione, in ogni tipologia di device e su ogni architettura.
Di certo, non si tornerà mai più indietro; si continuerà ad andare avanti, su una strada abbondantemente tracciata da Microsoft (e dal trend).
Il futuro, non solo il presente, appartiene alle app UWP e vedrà il progressivo abbandono, realmente e da parte di tutti - utenti, colossi e sviluppatori - dei vecchi programmi non presenti nel Windows Store, per tutto l'ecosistema Windows (non solo Windows 10 S).
Articolo di HTNovo