Windows Phone 8.1: le novità per gli sviluppatori

di Matteo Pagani, in Windows Phone,

Non fatevi trarre in inganno dal numero di versione: 8.1 non è semplicemente un aggiornamento minore di Windows Phone 8, ma è un sistema operativo completamente nuovo, sia per gli utenti ma anche e soprattutto per gli sviluppatori. Certo, a prima vista potrà sembrarvi il solito Windows Phone, con le sue tile e la sua famigliare interfaccia utente. Dietro le quinte, però, ci sono tantissime novità, che fanno fare un salto di qualità notevole al sistema operativo mobile di casa Microsoft. L'occasione per presentare ufficialmente questa nuova versione è stato il keynote di BUILD, la più importante conferenza Microsoft che è in svolgimento in questi giorni a San Francisco.

Dato che, se state leggendo questo articolo, siete probabilmente degli sviluppatori, iniziamo parlando delle novità che ci coinvolgono più da vicino.

Benvenute Windows Phone Store app!

Se avete mai provato a realizzare un'applicazione multi piattaforma per Windows Phone e per Windows 8 vi sarete accorti di come condividere codice tra le due non sia un'operazione molto semplice: nonostante dietro le quinte ci sia lo stesso framework, ovvero il Windows Runtime, ci sono molti ambiti in cui le stesse operazioni richiedono l'utilizzo di classi e metodi diversi (pensiamo alle tile, alle notifiche push, ma anche semplicemente ai controlli disponibili nello XAML). Windows Phone 8.1 cambia le carte in tavola, portando una condivisione quasi totale di API e funzionalità tra le due piattaforme. Per raggiungere questo scopo l'SDK di Windows Phone 8.1 introduce una nuova tipologia di applicazioni, chiamate Windows Phone Store app: si tratta fondamentalmente dell'equivalente per Windows Phone delle Windows Store app, con le quali condividono la maggior parte delle caratteristiche e delle API. Se abbiamo già sviluppato applicazioni per Windows 8, perciò, troveremo un ambiente a noi famigliare: ciclo di vita, background task, controlli XAML sono in tutto e per tutto equivalenti a quelli delle Windows Store app. Anche il pacchetto prodotto da Visual Studio non sarà più un file XAP, ma un file AppX, e troveremo un nuovo file di manifest chiamato Package.appxmanifest. Nel corso dell'articolo approfondiremo in dettaglio quali sono queste novità e quali sono le differenze principali con il runtime di Windows Phone 8.

Per questo motivo l'SDK di Windows Phone 8.1 introduce un nuovo template in Visual Studio per realizzare le Universal Windows app, che semplifica il lavoro allo sviluppatore che vuole realizzare un'applicazione multi piattaforma per Windows Phone e Windows 8: tale template include due progetti specifici per le due piattaforme, più un terzo progetto all'interno del quale vengono introdotte le classi che possono essere condivise da entrambi. L'approccio utilizzato dalle Universal app è quello dei linked files: i file contenuti all'interno del progetto comune vengono automaticamente aggiunti come collegamenti anche ai due progetti per Windows Phone e per Windows 8; di conseguenza, fisicamente, il file contenente la nostra classe sarà solamente uno. Questo tipo di approccio era già disponibile in passato ed era proprio una delle strategie più diffuse per condividere codice tra una Windows Store app e un'applicazione Windows Phone: la differenza è che, se prima eravamo costretti a gestire una serie di workaround (come la compilazione condizionale con #if e #endif) a causa delle numerose differenze tra le due implementazioni del Windows Runtime per Windows Phone e per Windows 8, ora invece è tutto più semplice, in virtù del fatto che i due runtime sono praticamente equivalenti. In questo modo sarete in grado di scrivere una sola volta la logica della vostra applicazione e riutilizzarla per entrambe le versioni: vi sarà richiesto, solamente, di realizzare due interfacce grafiche differenti, in virtù delle differenze di user experience tra il mondo tablet / pc  e quello smartphone (anche se, come vedremo più avanti, è possibile riutilizzare anche diversi elementi del codice XAML).

Un altro annuncio interessante legato alle Windows Universal app è il futuro supporto a Xbox One. In questo modo, saremo in grado con un'unica applicazione di raggiungere tutte le principali pattaforme: pc, tablet, smartphone e televisione.

Le Windows Phone app sono, in tutto e per tutto, delle applicazioni completamente basate sul Windows Runtime: anche lo XAML non è più quello managed, basato su Silverlight, di Windows Phone 8.0, ma è nativo, il che comporta un notevole miglioramento nelle performance. C'è però un rovescio della medaglia: a causa delle notevoli differenze, le applicazioni già esistenti non possono essere aggiornate al nuovo framework in maniera automatica, com'era possibile fare, ad esempio, per migrare i progetti da Windows Phone 7 a Windows Phone 8. Le motivazioni sono tante, tra le quali:

  • Le Windows Phone app supportano solamente le API del Windows Runtime: di conseguenza, tutte le API di Silverlight (background task, tile, interazione con la rete, ecc.) non sono più in grado di funzionare.
  • Il nuovo XAML nativo è basato su un set di namespace e di controlli differenti da quelli di Silverlight: controlli come Panorama o LongListSelector non esistono nel Windows Runtime e devono perciò essere sostituiti con controlli differenti.
  • Il ciclo di vita  e il modello di navigazione delle Windows Phone app sono differenti da quello di Silverlight.
  • Dato che le Windows Phone app non sono più basate sul framework .NET, è necessario che le librerie di terze parti siano specificatamente compilate per il Windows Runtime. Di conseguenza, se il vostro progetto fa uso di molte librerie .NET per Windows Phone 8, queste non saranno in grado di funzionare, a a meno che non le sostituiate con l'equivalente per il Windows Runtime.

Se siete già sviluppatori Windows Phone, però, non c'è bisogno di allarmarsi: Microsoft non vi ha abbandonato e ha deciso di aggiornare, all'interno di Windows Phone 8.1, anche il runtime di Silverlight, introducendo le Windows Phone Silverlight 8.1 apps. Ciò significa che sarete in grado di fare clic con il tasto destro su un progetto già esistente e scegliere l'opzione Upgrade to Windows Phone 8.1: in questo modo, sarete in grado di sfruttare la maggior parte delle nuove API (comprese quelle che sarebbero specifiche del Windows Runtime, come i nuovi background task o i contratti) senza perdere la compatibilità con quelle già esistenti. Ovviamente, questo approccio ha lo svantaggio di rendere più complicata la condivisione di codice con una Windows Store app (dato che lo XAML, il ciclo di vita, il modello di navigazione, ecc. rimangono differenti tra le due piattaforme) e non vi da la possibilità di usufruire dell'incremento di performance introdotto dal nuovo framework nativo. Il punto di forza, però, è che sarete in grado di sfruttare la stragrande maggioranza delle nuove API e delle nuove feature introdotte in Windows Phone 8.1 senza essere costretti a riscrivere da capo l'applicazione.

Da questo approccio si evince come Windows Phone 8.1 sia pienamente compatibile con le applicazioni Windows Phone 7.1 / 8.0: avrete la necessità di aggiornare la vostra applicazione a 8.1 solo se avete intenzione di sfruttare le nuove feature. Ovviamente, così com'era accaduto nel passaggio da Windows Phone 7 a Windows Phone 8, le nuove applicazioni sono compatibili solamente con la versione 8.1: se volete mantenere la compatibilità con 8.0 e, allo stesso tempo, sfruttare le novità, dovrete mantenere due progetti differenti. In questo caso, però, al contrario di quanto accaduto in passato, si tratta di una soluzione temporanea: Windows Phone 8.1, infatti, sarà disponibile come aggiornamento gratuito per tutti i device Windows Phone sul mercato e, di conseguenza, a lungo termine non sarà più necessario mantenere due versioni dello stesso progetto (esattamente come è accaduto con l'uscita di Windows Phone 7.5).

Il pieno supporto al Windows Runtime porta con sè un'altra nuova feature molto importante: il supporto a WinJS. Esattamente come è possibile fare oggi per le Windows Store app, è possibile sviluppare applicazioni native (quindi non semplici applicazioni web che vengono renderizzate tramite un controllo WebBrowser) usando HTML e Javascript tramite una libreria chiamata WinJS, che consente di accedere a tutte le funzionalità e API del Windows Runtime usando Javascript al posto di C#, VB.NET o C++.

5 pagine in totale: 1 2 3 4 5
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc