- Matteo Pagani - Sviluppare Universal app per Windows Phone e Windows con XAML e C# Windows Phone Magazine Italia Gli aspetti principali legati allo sviluppo di Windows Store app >> Come supportare al meglio le due piattaforme >> Interagire con l’hardware >> Distribuire e vendere le proprie applicazioni >> Libro_Universal.indb 2 31/07/14 15:13 Sviluppare Universal app per Windows Phone e Windows con XAML e C# Matteo Pagani Libro_Universal.indb 3 31/07/14 15:13 Sviluppare Universal app per Windows Phone e Windows con XAML e C# Autore: Matteo Pagani Collana: Editor: Marco Aleotti Progetto grafico: Roberta Venturieri Immagine di copertina: per gentile concessione di Nokia ISBN: 978-88-6895-041-5 Copyright © 2014 LSWR Srl Via Spadolini, 7 - 20141 Milano (MI) - www.lswr.it Finito di stampare nel mese di agosto 2014 presso “Rotolito Lombarda” s.p.a., Pioltello (MI) Nessuna parte del presente libro può essere riprodotta, memorizzata in un sistema che ne permetta l’elaborazione, né trasmessa in qualsivoglia forma e con qualsivoglia mezzo elettronico o meccanico, né può essere fotocopiata, riprodotta o registrata altrimenti, senza previo consenso scritto dell’editore, tranne nel caso di brevi citazioni contenute in articoli di critica o recensioni. La presente pubblicazione contiene le opinioni dell’autore e ha lo scopo di fornire informazioni precise e accurate. L’elaborazione dei testi, anche se curata con scrupolosa attenzione, non può comportare specifiche responsabilità in capo all’autore e/o all’editore per eventuali errori o inesattezze. Nomi e marchi citati nel testo sono generalmente depositati o registrati dalle rispettive aziende. L’autore detiene i diritti per tutte le fotografie, i testi e le illustrazioni che compongono questo libro, salvo quando diversamente indicato. PrimePagine_Universal.indd 4 31/07/14 15:37 Sommario PREFAZIONE............................................................................................................... 9 INTRODUZIONE........................................................................................................11 1. INTRODUZIONE ALLE UNIVERSAL WINDOWS APP...........................19 Windows 8.................................................................................................................................. 20 Windows Phone..........................................................................................................................21 Le Windows Store app..............................................................................................................22 Il Microsoft Design Style..........................................................................................................24 2. IL PRIMO PROGETTO E I CONCETTI BASE DI XAML E C#................47 La licenza come sviluppatori...................................................................................................47 Creiamo il primo progetto....................................................................................................... 48 La struttura di una Universal Windows app....................................................................... 48 L’architettura a pagine: i file XAML e il code behind........................................................ 49 La classe App: il punto di partenza delle applicazioni..................................................... 50 La cartella Assets...................................................................................................................... 50 Il file di manifest..........................................................................................................................51 XAML............................................................................................................................................56 I converter....................................................................................................................................79 Strategie di condivisione di codice in una Universal Windows app............................. 84 La programmazione asincrona................................................................................................ 91 3. I CONTROLLI DI WINDOWS E WINDOWS PHONE.............................97 Controlli per il layout................................................................................................................ 98 Visualizzare informazioni.......................................................................................................104 Ricevere informazioni..............................................................................................................108 Mostrare messaggi di avviso all’utente............................................................................... 113 Mostrare lo stato di un’operazione in corso......................................................................120 Mostrare collezioni di dati..................................................................................................... 122 Mostrare liste semplici........................................................................................................... 125 Mostrare collezioni raggruppate per un campo............................................................... 126 Mostrare collezioni già raggruppate...................................................................................130 L’application bar: i controlli CommandBar e AppBar......................................................148 La StatusBar (solo Windows Phone 8.1)............................................................................ 152 Il controllo Flyout...................................................................................................................... 155 5 Libro_Universal.indb 5 31/07/14 15:13 Sviluppare Universal app per Windows Phone e Windows con XAML e C# Il controllo ListPickerFlyout (solo Windows Phone 8.1)................................................. 158 Il controllo WebView...............................................................................................................160 4. I CONCETTI FONDAMENTALI: RISOLUZIONI, NAVIGAZIONE E CICLO DI VITA............................................................................................ 165 Gestire differenti risoluzioni e schermi............................................................................... 165 5. ACCESSO AI DATI: FILE, DATABASE E IMPOSTAZIONI................... 203 Le diverse tipologie di storage............................................................................................. 203 Lavorare con le cartelle.......................................................................................................... 207 Lavorare con i file....................................................................................................................209 Accedere ai file tramite url..................................................................................................... 213 Testare il nostro codice: come verificare il contenuto dello storage...........................214 Gestire le impostazioni dell’applicazione........................................................................... 217 Accedere ad altre tipologie di storage............................................................................... 223 Importare un file dal dispositivo.......................................................................................... 224 Importare una cartella dal dispositivo in Windows 8.1.................................................. 234 Importare una cartella dal dispositivo in Windows Phone 8.1..................................... 235 Salvare un file sul dispositivo in Windows 8.1.................................................................. 236 Salvare un file sul dispositivo in Windows Phone 8.1..................................................... 238 Accedere alle librerie dell’utente......................................................................................... 239 Accedere alle memorie esterne in un’applicazione......................................................... 241 Simulare la presenza di una scheda SD in Windows Phone 8.1.................................. 243 Impedire l’installazione di un’applicazione Windows Phone sulla memoria SD....................................................................................................................244 Memorizzare i dati dell’applicazione................................................................................. 245 Usare un database: SQlite.....................................................................................................250 Memorizzare dati sensibili....................................................................................................264 6. ACCESSO AI DATI: INTERAGIRE CON LA RETE...................................267 Gestire la privacy policy in Windows 8.1........................................................................... 267 Determinare la presenza di connettività........................................................................... 268 Effettuare operazioni di rete: la classe HttpClient.......................................................... 270 Eseguire operazioni di download e upload in background........................................... 279 Interagire con i servizi............................................................................................................284 7. INTERAGIRE CON IL MONDO REALE..................................................... 315 I servizi di geolocalizzazione................................................................................................. 315 I sensori di movimento.......................................................................................................... 343 Collegarsi ad altri dispositivi con le Proximity API.........................................................346 8. INTEGRARSI CON IL SISTEMA: CONTRATTI ED ESTENSIONI....... 363 I contratti................................................................................................................................... 363 Gestire l’aspetto visuale della pagina di condivisione....................................................374 Il contratto File Open Picker.................................................................................................380 6 Libro_Universal.indb 6 31/07/14 15:13 Sommario Il contratto File Save Picker................................................................................................... 383 Gestire la ricerca all’interno delle applicazioni................................................................ 385 Implementare la ricerca nelle Windows Store app per Windows 8.1....................... 386 Implementare la ricerca nelle Windows Phone Store app per Windows Phone 8.1......................................................................................................... 389 Le estensioni............................................................................................................................. 392 Interagire con le applicazioni native di Windows Phone 8.1 tramite i protocolli..................................................................................................................................401 Interagire con la rubrica: i contatti.......................................................................................401 9. SVILUPPARE APPLICAZIONI MULTIMEDIALI...................................... 451 Integrare audio e video...........................................................................................................451 Gestire la comunicazione tra applicazione e background task..................................466 Acquisire foto e video............................................................................................................ 473 Interagire con la libreria multimediale................................................................................481 10. TILE E NOTIFICHE.........................................................................................491 Le tipologie di notifiche.......................................................................................................... 492 Le notifiche toast..................................................................................................................... 493 Personalizzare l’effetto sonoro di una notifica toast...................................................... 495 Gestire l’attivazione di una notifica toast.......................................................................... 497 Inviare notifiche toast con la libreria NotificationsExtensions....................................498 Programmare l’invio di una notifica toast.........................................................................499 Le notifiche toast e l’Action Center di Windows Phone 8.1..........................................500 Le notifiche tile.........................................................................................................................505 Le tile secondarie...................................................................................................................... 516 Le notifiche badge.................................................................................................................... 519 Mostrare informazioni sulla lock screen........................................................................... 522 Le notifiche push..................................................................................................................... 524 Inviare una notifica push....................................................................................................... 526 Gestione avanzata delle notifiche....................................................................................... 534 Ricevere una notifica: l’applicazione.................................................................................. 537 Intercettare una notifica quando l’applicazione è aperta.............................................. 539 Testare le notifiche push su Windows Phone 8.1............................................................. 541 11. MULTITASKING: EFFETTUARE OPERAZIONI IN BACKGROUND........................................................................................ 543 I trigger.......................................................................................................................................544 I vincoli dei background task................................................................................................ 547 Aggiungere un background task.......................................................................................... 549 Registrare il background task nell’applicazione................................................................ 551 12. PUBBLICARE UN’APPLICAZIONE SUGLI STORE..................................567 Localizzazione: supportare diverse lingue........................................................................ 567 La modalità trial........................................................................................................................573 7 Libro_Universal.indb 7 31/07/14 15:13 Sviluppare Universal app per Windows Phone e Windows con XAML e C# In-app purchase: acquisti all’interno dell’applicazione.................................................. 578 Pubblicare l’applicazione sullo Store.................................................................................. 586 Distribuire un’applicazione senza passare dallo Store..................................................602 INDICE ANALITICO.............................................................................................605 8 Libro_Universal.indb 8 31/07/14 15:13 Prefazione Ricordo come fosse ieri il 21 maggio 2010 quando, in occasione del Whymca Spring 2010, la prima mobile developer conference italiana, ho incontrato Matteo e gli ho parlato per la prima volta di Windows Phone 7, che sarebbe uscito ufficialmente nell’ottobre di quell’anno. Da quel momento pian piano siamo diventati grandi amici, partendo da quella passione per Windows Phone che via via ci ha accomunato, per arrivare a condividere tantissime esperienze. Matteo è diventato uno dei più grandi esperti mondiali di Windows Phone, conosciuto e rispettato da tutti in Italia e nel mondo per la sua competenza tecnica e il suo grandissimo spessore umano, condito da un’umiltà e da una disponibilità ad aiutare gli altri di altissimo livello. Tanta acqua è passata sotto i ponti per Windows Phone; ricordo con affetto le uscite di “Nodo”, “Mango”, “Tango”, “Apollo” e ora di “Blue”, il nome in codice di Windows Phone 8.1, che finalmente porta con sé l’unificazione quasi totale con il modello delle Windows Runtime app di Windows 8.x e la possibilità di scrivere Universal app per entrambe le piattaforme con pochissimo sforzo. In questo modo è possibile realizzare e vendere app su entrambi gli Store, Windows e Windows Phone, in maniera semplice e coerente. Le Universal app condividono tantissime cose sulle due piattaforme, ad esempio il Roaming Storage e i Roaming Settings, le notifiche push possono essere inviate una sola volta e raggiungere l’utente su entrambe le piattaforme, gli acquisti in-app (tranne i consumabili) sono in comune, così come (se lo sviluppatore decide in quel senso) l’acquisto dell’app. Le Universal app possono essere realizzate in C# e XAML, HTML e JavaScript o in C++ (XAML o Direct X). In questo libro Matteo vi mostra come farle in C# e XAML, una delle strade più praticate dai developer, soprattutto quelli che affondano le proprie radici nella programmazione .NET o Silverlight, che si troveranno sicuramente a casa con le novità di WinRT, la piattaforma comune che astrae le differenze tra tablet, PC e telefoni. 9 Libro_Universal.indb 9 31/07/14 15:13 Sviluppare Universal app per Windows Phone e Windows con XAML e C# Questo libro è utile anche a tutti gli sviluppatori Windows Phone che decidono di continuare a usare Silverlight per Windows Phone 8.1, per non dover riscrivere le loro app realizzate per le versioni precedenti di Windows Phone, ma che vogliono sfruttare le nuove API, in quanto quasi tutte le classi di WinRT (tranne quelle relative allo XAML e poche altre) sono utilizzabili anche nel vecchio modello di sviluppo. Non vedo l’ora di vedere pubblicate sugli Store le app che realizzerete grazie ai consigli e alle informazioni presenti in questo libro e vi invito a seguire i canali Microsoft Developer italiani su Twitter (@msdev_ita) e Facebook per essere sempre aggiornati sulle iniziative che abbiamo in serbo per gli sviluppatori italiani. Lorenzo Barbieri @_geniodelmale Microsoft Technical Evangelist 10 Libro_Universal.indb 10 31/07/14 15:13 Introduzione Microsoft ha dovuto affrontare, negli ultimi anni, un cambiamento epocale: da sempre leader di mercato nel mondo dell’informatica, grazie alla diffusione di Windows, si è trovata improvvisamente in un mondo dove i PC sono sempre più frequentemente sostituiti o affiancati da altri dispositivi, come smartphone e tablet, soprattutto nel mercato consumer. Da qui la progressiva trasformazione di Microsoft, iniziata con la riorganizzazione voluta da Steve Ballmer e ora nelle mani del nuovo CEO Satya Nadella: non più la classica azienda produttrice di software, ma una società orientata ai device e ai servizi. Windows 8 e Windows Phone rappresentano due tasselli fondamentali in questa nuova direzione e costituiscono il primo segnale del cambiamento di Microsoft: un nuovo approccio visivo, un nuovo modello di sviluppo per le applicazioni, una forte attenzione alla sicurezza e alla salvaguardia della privacy dell’utente, un occhio di riguardo ai consumi e alle performance ecc. Nonostante le due piattaforme abbiano condiviso sin da subito molte similitudini, dietro le quinte era possibile trovare parecchie differenze: Windows 8, infatti, ha introdotto un nuovo framework chiamato Windows Runtime, mentre Windows Phone è nato sulle fondamenta di Silverlight e del framework .NET. Come conseguenza, agli sviluppatori era richiesto uno sforzo non indifferente per realizzare applicazioni per entrambe le piattaforme: pur presentando molti scenari comuni, spesso e volentieri le API e l’approccio da utilizzare erano differenti. Windows Phone 8.1 è il punto di svolta: introducendo un’implementazione quasi completa del Windows Runtime di Windows 8, ha portato finalmente all’unificazione del modello di sviluppo tra le due piattaforme. Le Universal Windows app sono il frutto di questa convergenza: grazie a questo speciale progetto di Visual Studio, è possibile realizzare applicazioni per Windows e Windows Phone condividendo la maggior parte del codice. Non solo: in futuro, le Universal Windows app saranno estese anche a 11 Libro_Universal.indb 11 31/07/14 15:13 Sviluppare Universal app per Windows Phone e Windows con XAML e C# Xbox One, consentendo agli sviluppatori di raggiungere schermi e dispositivi diversi mantenendo una base di codice comune. Questo libro è dedicato proprio alle Universal Windows app: nel corso dei vari capitoli saranno affrontate tutte le caratteristiche del Windows Runtime e come possono essere sfruttate per realizzare applicazioni all’avanguardia per Windows 8.1 e Windows Phone 8.1. Chi dovrebbe leggere questo libro? Questo libro è stato scritto con l’obiettivo di essere d’aiuto sia a chi si sta avvicinando a Windows e Windows Phone per la prima volta, sia a chi ha già avuto esperienza, magari con le versioni precedenti della piattaforma. Inoltre, Windows Phone 8.1, allineandosi con le funzionalità offerte dal Windows Runtime, costituisce un grosso cambiamento rispetto al modello di Silverlight di Windows Phone 8.0: di conseguenza, se avete già sviluppato applicazioni per Windows Phone troverete sicuramente un ambiente e dei concetti familiari, ma anche molte novità e aspetti nuovi, anche in argomenti base come il ciclo di vita delle applicazioni o la navigazione. Cosa contiene questo libro? Il libro presenta gli argomenti relativi allo sviluppo di applicazioni Windows e Windows Phone secondo un percorso logico che vi accompagnerà dalle basi necessarie per creare il vostro primo progetto fino a padroneggiare le tante caratteristiche offerte dal Windows Runtime. Nel primo capitolo imparerete a conoscere meglio le due piattaforme: come sono nate, il modello di sviluppo, quali sono i framework e i linguaggi a disposizione degli sviluppatori. Scoprirete anche quali sono i tool messi a disposizione da Microsoft per creare le applicazioni, testarle e pubblicarle su entrambi gli Store. Nel secondo capitolo apprenderete le conoscenze base necessarie per iniziare a sviluppare un’applicazione, andando ad analizzare come è strutturato un progetto e come sono caratterizzate le Universal Windows app. In più, farete la conoscenza dei concetti chiave di XAML e C#, i due linguaggi che è importante conoscere per realizzare l’interfaccia grafica e scrivere il vostro codice. Nel terzo capitolo faremo una panoramica di tutti i controlli che il Windows Runtime ci mette a disposizione per realizzare l’interfaccia grafica dell’applicazione, partendo da quelli base per poi trattare quelli specifici di entrambe le piattaforme. Nel quarto capitolo affronteremo una serie di concetti chiave per sviluppare un’applicazione, come il ciclo di vita, la navigazione tra pagine e il supporto a dispositivi dotati di risoluzioni e schermi dalle dimensioni molto differenti tra di loro. 12 Libro_Universal.indb 12 31/07/14 15:13 Introduzione Il quinto capitolo è dedicato alla gestione dei dati locali: la presenza di connettività nei dispositivi di nuova generazione come tablet e smartphone è importante, ma spesso ci si trova a dover gestire dati che invece sono memorizzati sul telefono o che devono essere fruibili anche senza una connessione a Internet. Nel corso del capitolo vedremo come salvare e caricare informazioni nello storage locale, quali tipologie di storage abbiamo a disposizione, come sfruttare i database e come interagire con i file presenti nel dispositivo. Il sesto capitolo è dedicato all’interazione con il mondo esterno, grazie alla connessione a Internet: tratteremo il download e l’upload di file e l’interazione con servizi web. Il settimo capitolo vi insegnerà, invece, a sfruttare la ricca dotazione hardware di cui sono dotati tablet e smartphone Windows: dai servizi di geolocalizzazione, per identificare la posizione dell’utente, ai sensori di movimento passando per la connessione con altri dispositivi tramite Bluetooth e NFC. L’ottavo capitolo approfondirà, invece, uno dei concetti chiave del Windows Runtime: i contratti, ovvero il meccanismo che consente alle applicazioni di interagire con il sistema operativo e con altre applicazioni. Impareremo a condividere dati, a gestire url ed estensioni, a integrarci con la rubrica e il calendario e a sfruttare i servizi vocali di sistema. Smartphone e tablet non sono solamente strumenti di lavoro, ma anche di divertimento e con una spiccata vocazione multimediale: il nono capitolo è dedicato proprio a questo aspetto. Impareremo a integrare audio e video nelle nostre applicazioni e a interagire con le fotocamere presenti nei dispositivi. Nel decimo capitolo introdurremo, invece, un argomento fondamentale per realizzare applicazioni Windows e Windows Phone in grado di sfruttare al massimo una delle caratteristiche peculiari della piattaforma: le tile e le notifiche, che consentono di mostrare informazioni all’utente in tempo reale anche quando l’applicazione non è in uso. L’undicesimo capitolo è interamente dedicato al multitasking e alle possibilità che Windows Phone offre agli sviluppatori di eseguire operazioni anche quando l’applicazione non è in esecuzione, tramite i background task. Il dodicesimo capitolo, infine, affronta l’argomento finale del processo di sviluppo: la pubblicazione sullo Store. Contestualmente vedremo una serie di aspetti collegati alla promozione, come la localizzazione in diverse lingue e il supporto all’in-app purchase. Cosa non contiene questo libro Il Windows Runtime, come impareremo nel corso del primo capitolo, è uno strato di API native che consentono di interagire con il kernel del sistema operativo per soddisfare gli scenari più comuni. Per venire incontro alle esigenze e alla versatilità degli svi- 13 Libro_Universal.indb 13 31/07/14 15:13 Sviluppare Universal app per Windows Phone e Windows con XAML e C# luppatori moderni, Microsoft ha introdotto il concetto di projection, ovvero degli strati che consentono di interagire con le API del Windows Runtime utilizzando differenti tecnologie e linguaggi, come XAML, C#, C++, HTML e Javascript. Questo libro è focalizzato sullo sviluppo di applicazioni usando XAML e C#: anche se gli scenari descritti sono disponibili utilizzando uno qualsiasi degli altri linguaggi disponibili per il Windows Runtime, non saranno trattati nel corso del libro. Un altro importante concetto che imparerete nel corso del primo capitolo è che Windows Phone 8.1 ha introdotto una versione del Windows Runtime allineata quasi completamente a quella di Windows: come conseguenza, il modello di sviluppo è stato allineato a quello delle Windows Store app, che gli sviluppatori avevano già imparato a conoscere con Windows 8. Il framework precedente, ovvero Silverlight, però, è ancora presente, per garantire la retro compatibilità con le applicazioni già esistenti e per non costringere gli sviluppatori a riscrivere le loro applicazioni da zero. Lo sviluppo con Silverlight, però, non sarà preso in considerazione: anche se la maggior parte degli scenari descritti nel libro può essere utilizzata, usando il medesimo codice, anche in un’applicazione Silverlight per Windows Phone 8.1, tutti gli scenari di sviluppo (ciclo di vita, navigazione, condivisione di codice tra le due piattaforme) saranno specifici del Windows Runtime. Infine, il linguaggio per la scrittura di codice preso in considerazione è C#: per comprendere pienamente il contenuto del libro è consigliata una conoscenza almeno di base. Non saranno, infatti, approfonditi argomenti specifici legati alle caratteristiche del linguaggio, come LINQ, i delegate, i tipi ecc. Se non è il vostro caso, potete approfondire l’argomento tramite il libro Programmare con C# 5 – Guida Completa di Antonio Pelleriti, facente parte anch’esso della collana DigitalLifeStyle Pro ed edito da LSWR. In alternativa, la Microsoft Virtual Academy (MVA) offre un corso gratuito online in inglese all’indirizzo http://www.microsoftvirtualacademy.com/training-courses/c-fundamentals-for-absolute-beginners. Feedback e codice di esempio I feedback sono molto importanti per un autore, perché aiutano a capire la validità del lavoro svolto e a raccogliere utili suggerimenti per i lavori futuri. Per questo motivo, vi invito a farmi sapere le vostre impressioni, sia positive che negative, e i vostri suggerimenti su cosa si sarebbe potuto migliorare. Potete farlo mandandomi una mail all’indirizzo [email protected]. Il codice di esempio utilizzato nei vari capitoli del libro sarà pubblicato sul mio blog ufficiale all’indirizzo http://www.qmatteoq.com. 14 Libro_Universal.indb 14 31/07/14 15:13 Introduzione Avvertenze Tutti i contenuti di questo libro sono relativi al periodo in cui è stato scritto: alcuni argomenti (in particolar modo l’utilizzo di librerie di terze parti e il processo di pubblicazione descritto nel Capitolo 12) potrebbero subire delle modifiche nel corso del tempo, dato che seguono un ciclo di vita indipendente da quello delle due piattaforme. Gli esempi sono forniti così come sono e nessuna garanzia è dovuta dall’autore o dall’editore per eventuali danni che dovesse commettere l’utilizzatore, anche sulla base di quanto contenuto in questo libro. Risorse utili Il mondo della tecnologia è in continua evoluzione: questo libro costituisce sicuramente una risorsa importante per iniziare a sviluppare applicazioni per Windows e Windows Phone, ma è altrettanto importante rimanere aggiornati e stare al passo con tutte le novità che vengono rilasciate. Inoltre, l’obiettivo di questo libro è quello di essere il più completo possibile, ma è impossibile essere esaustivi al 100% su tutti gli argomenti. Di conseguenza, ecco una serie di siti che vi possono aiutare nell’approfondire le tematiche trattate nel corso del libro: • I miei blog in italiano (http://www.qmatteoq.com) e in inglese (http:// wp.qmatteoq.com), dove pubblico regolarmente articoli e tutorial sullo sviluppo. • I portali ufficiali di Windows (http://dev.windows.com) e Windows Phone (http://dev.windowsphone.com) che contengono, oltre alla documentazione ufficiale, tantissimi tutorial, esempi di codice e risorse per il design. • Microsoft Virtual Academy (http://www.microsoftvirtualacademy.com/) è un’iniziativa di Microsoft che offre corsi gratuiti online per gli sviluppatori, con esempi pratici e certificazione finale. • Il portale di Nokia dedicato agli sviluppatori (http://www.developer.nokia. com/), che contiene molti tutorial ed esempi di codice, soprattutto su Windows Phone. • La pagina Facebook dedicata agli sviluppatori Nokia (https://www.facebook. com/groups/SviluppatoriNokiaItalia/) è un luogo di ritrovo e di discussione molto attivo per il supporto e il confronto su tematiche dedicate a Windows e Windows Phone. • I forum di supporto italiani Microsoft ospitano due sezioni specifiche dedicate a Windows (http://social.msdn.microsoft.com/Forums/it-IT/home? 15 Libro_Universal.indb 15 31/07/14 15:13 Sviluppare Universal app per Windows Phone e Windows con XAML e C# forum=winstoreappsit) e Windows Phone (http://social.msdn.microsoft.com/ Forums/it-IT/home?category=phoneit). • Il blog ufficiale del team di Windows e Windows Phone (http://blogs.windows. com/windows/b/buildingapps/) pubblica regolarmente articoli tecnici inerenti lo sviluppo per entrambe le piattaforme. • Twitter è una risorsa molto efficace per rimanere sempre aggiornati sulle novità riguardanti lo sviluppo per Windows e Windows Phone: l’hashtag ufficiale è #wpdev. • Windows e Windows Phone sono anche e soprattutto una piattaforma per gli utenti finali: di conseguenza, è importante essere aggiornati anche sulle novità in questo campo, come le nuove applicazioni, il rilascio di nuovi update, i nuovi modelli di telefoni e tablet ecc. A tale scopo il portale da seguire è Windows Phone Magazine Italia (http://www.wpmitalia.com/), con il quale ho collaborato per la pubblicazione di questo libro. Un altro modo molto efficace per rimanere sempre aggiornati sulle novità nel mondo dello sviluppo Windows e Windows Phone è la partecipazione al mondo community e ai tanti eventi che Microsoft organizza durante l’anno. Per questo motivo vi invito a seguire il portale MSDN Italia (http://msdn.microsoft.com/it-IT/), nel quale vengono messi in evidenza i principali eventi tecnici. Ringraziamenti La stesura di un libro è un processo molto stimolante, ma allo stesso molto impegnativo, soprattutto in termini di tempo necessario per portare il progetto a termine. Il ringraziamento più importante, perciò, va a mia moglie Angela, che ha sopportato con pazienza i momenti sottratti alla nostra vita familiare nell’arco di questi mesi e che, nonostante questo, mi ha sempre spronato e supportato. Un ringraziamento speciale anche alle mie due famiglie: quella di origine, composta dai miei genitori Daniela ed Elio e da mio fratello Stefano, che hanno sempre creduto in me e nelle mie potenzialità; quella acquisita, ovvero i miei suoceri Rosy e Peppino e mia cognata Michela, che mi hanno sempre accolto come un figlio. Molti ringraziamenti importanti vanno anche agli amici, soprattutto a quelli che mi hanno fatto scoprire la forza delle community e che hanno creduto in me, senza i quali l’idea di scrivere un libro sarebbe solamente un sogno nel cassetto. Ugo Lattanzi che, supportandomi nell’apertura del mio primo blog e organizzando il mio primo speech a un evento community (a mia insaputa), mi ha dato la forza e il coraggio di mettermi in gioco; Lorenzo Barbieri, a cui devo il mio primo contatto con Windows 16 Libro_Universal.indb 16 31/07/14 15:13 Introduzione Phone e tante delle bellissime opportunità che ho avuto in questi anni; Roberto Freato, fondatore di DotNetLombardia, la community di cui ora faccio parte e che, per prima, mi ha dato la possibilità di mettere a frutto la mia passione nonostante, ai tempi, fossi un perfetto sconosciuto. Un ringraziamento speciale anche a tutte le persone di Microsoft coinvolte nel programma MVP, sia in Italia (Alessandro Teglia, Cristina Gonzalez Herrero e Marjorie di Clemente) sia a Redmond (Desiree Lockwood). Un grazie importante anche a tutte le persone di Microsoft e Nokia che seguono gli sviluppatori in Italia: la divisione DX (Developer Experience), Daniele Pagani, Luca De Bernardi e Frangino Lucarini. Un grazie di cuore anche ai tanti amici che mi hanno accompagnato in questo percorso, sia quelli nuovi sia quelli di lunga data, come Giorgio Formica, Corrado Cavalli, Marco Leoncini, Alessio Leoncini, Igor Antonacci, Marco Dal Pino e tutti gli amici di DotNetToscana, Joost Van Schaik e Peter Nowak. Un grazie va, inoltre, alle persone che hanno permesso a questo progetto di diventare realtà: Maurizio Gasparro, il fondatore di Windows Phone Magazine Italia, che ha collaborato con me alla realizzazione di questo progetto, e Marco Aleotti, responsabile editoriale della collana Digital LifeStyle Pro per la casa editrice LSWR. Infine, un caloroso ringraziamento va a Funambol, l’azienda per la quale lavoro ormai da più di due anni, nella quale ho trovato un ambiente stimolante, impegnativo, ma soprattutto accogliente e dove ho avuto la possibilità di conoscere persone eccezionali. In particolare, un grazie di cuore a Stefano Fornari e Andrea Gazzaniga, che mi danno l’opportunità di coniugare le attività community con il lavoro quotidiano, e ai miei colleghi di team Andrea Toccalini, Marco Magistrali, Luca Moscato, Roberto Oguntuyi, Claudio Vecchio e Silvia Mazzocchi. 17 Libro_Universal.indb 17 31/07/14 15:13 Libro_Universal.indb 18 31/07/14 15:13 1 Introduzione alle Universal Windows app Il mondo dell’informatica ha dovuto affrontare numerose trasformazioni negli ultimi anni: se, fino a qualche tempo fa, i computer erano i dominatori incontrastati di questo settore, negli ultimi anni hanno ceduto sempre più il passo a smartphone e tablet. I personal computer rimangono uno strumento fondamentale in molti scenari (soprattutto professionali), ma in tanti altri casi sono stati sostituiti o affiancati da dispositivi di nuova generazione, concepiti per un utilizzo in mobilità e dotati di interfacce più intuitive. Microsoft è sicuramente la società che, più di tutte le altre, si è trovata a dover affrontare questo cambiamento, in virtù dell’enorme diffusione del sistema operativo Windows nel mercato dei computer, al contrario delle principali concorrenti (come Apple e Google) che, invece, negli ultimi anni hanno visto nel mobile il loro terreno più fertile. Windows 8 e Windows Phone sono la risposta di Microsoft a questo cambio generazionale, nati per offrire un approccio innovativo rispetto alla concorrenza. Le due piattaforme, in realtà, non sono nate nello stesso momento: Windows Phone, infatti, ha fatto la sua prima comparsa nel 2010, mentre Windows 8 è stato lanciato solamente due anni dopo, nel 2012. Come conseguenza, il cammino che ha portato alla convergenza di questi due mondi non è iniziato sin da subito, ma ha richiesto una serie di 19 Libro_Universal.indb 19 31/07/14 15:13 Sviluppare Universal app per Windows Phone e Windows con XAML e C# raffinamenti successivi, che sono culminati con le due versioni a cui è dedicato questo libro: Windows 8.1 e Windows Phone 8.1. Nel corso dei paragrafi successivi andremo ad analizzare come sono nate le due piattaforme, le caratteristiche salienti e le fasi intermedie che hanno portato alla convergenza attuale. Windows 8 Per quanto riguarda il mondo Windows se, per Apple e Google, mobile e desktop sono due ambienti completamente separati, per Microsoft invece la parola chiave è convergenza. Al contrario degli altri produttori (che hanno scelto di considerare i tablet alla stregua di grossi smartphone, offrendo un unico sistema per entrambi), Microsoft ha definito Windows come un unico sistema operativo dotato di due anime: una tradizionale, che offre il classico desktop a cui gli utenti sono abituati da decenni e la cui principale modalità di interazione è l’accoppiata tastiera e mouse; una di nuova generazione, pensata invece per un utilizzo prevalentemente touch e in grado di eseguire applicazioni con una spiccata vocazione per l’uso in mobilità, sia per quanto riguarda l’interazione che per i principi che le guidano. Windows 8 nasce, perciò, sia come sistema operativo per i computer tradizionali, sia per i tablet. In più, la duplice natura di Windows 8 ha scatenato la fantasia dei produttori, che hanno lanciato nell’ultimo anno nuove tipologie di dispositivi: da ultrabook dotati di schermo touch screen a convertibili in grado di essere utilizzati sia come computer che come tablet. Microsoft stessa ha contribuito a dare forma a questa nuova generazione di dispositivi, introducendo Surface, il primo ibrido tra un computer e un tablet prodotto direttamente dalla casa di Redmond. Windows 8 è stato lanciato ufficialmente a Ottobre 2012, dopo una fase di testing pubblico durata più di un anno e iniziata a Settembre 2011 durante BUILD, la conferenza Microsoft in cui Steven Sinofski (allora a capo della divisione Windows) svelò ufficialmente la nuova piattaforma e consegnò agli sviluppatori la prima beta. Windows 8 non è stato solamente una svolta epocale nel modo in cui Microsoft ha concepito il proprio sistema operativo, ma ha anche segnato un nuovo approccio nella gestione dei rilasci e degli aggiornamenti dei propri prodotti. In un mondo tecnologico in continua evoluzione, rilasciare una nuova versione dei propri software ogni 3-4 anni significa rimanere indietro con le ultime novità e gli ultimi standard offerti dal mercato. Ecco, perciò, che Windows 8 è il primo prodotto di Microsoft (insieme a Visual Studio) a cambiare il passo: non più un’unica grande release, intervallata dal rilascio di service pack minori (volti principalmente a risolvere i bug riscontrati dopo il rilascio), ma vere e proprie nuove versioni del sistema operativo rilasciate con maggiore frequenza, che vanno ad aggiungere importanti novità sia per quanto riguarda le caratteristiche utente, sia per quanto riguarda le opportunità per gli sviluppatori. 20 Libro_Universal.indb 20 31/07/14 15:13 Introduzione alle Universal Windows app Capitolo 1 Windows 8.1 è il primo frutto di questa nuova strategia: rilasciato circa un anno dopo, si tratta di un aggiornamento molto importante, che va a colmare alcuni limiti della versione originale e introduce diverse funzionalità molto richieste dagli utenti. Anche dal punto di vista degli sviluppatori è un aggiornamento piuttosto sostanzioso: sono quasi 5000 le nuove API che sono state introdotte e che aumentano le potenzialità e la flessibilità delle applicazioni che possono essere sviluppate. Windows Phone Windows Phone ha aperto la strada alla rivoluzione in casa Microsoft, anticipando molti temi, soprattutto dal punto di vista visuale (il Microsoft Design Style, il concetto di tile) che ora sono diventati il segno distintivo dei prodotti della società di Redmond, partendo da Windows Phone e passando per Windows e XBox. Windows Phone nasce nel 2010 come risposta all’iPhone di Apple, che aveva cambiato completamente le carte in tavola, rendendo di punto in bianco obsoleti sistemi come Windows Mobile basati ancora sull’uso di touch screen gestiti tramite pennino o sprovvisti di sensori quali movimento, geolocalizzazione ecc. La filosofia alla base di Windows Phone, per quanto riguarda i dispositivi, può essere considerata un ibrido tra l’approccio di Apple e quello di Google. Microsoft, infatti, ha messo a disposizione la sua piattaforma a tutti i produttori hardware, che sono in grado perciò di realizzare dispositivi dalle caratteristiche più variegate. Il punto di forza di questa scelta è che troviamo dispositivi per tutti i gusti e, soprattutto, per tutte le tasche: da telefoni economici, dotati ad esempio di uno storage ridotto e di fotocamere senza flash, a dispositivi di fascia alta, dotati di caratteristiche all’ultimo grido e di fotocamere equiparabili a prodotti professionali. Allo stesso tempo, però, Microsoft ha definito una serie di paletti che i produttori devono rispettare, in termini di dotazione hardware: di conseguenza, come sviluppatori possiamo fare affidamento sul fatto che certe funzionalità (come il GPS o i sensori di movimento) saranno sempre disponibili su qualsiasi modello, semplificando perciò il nostro lavoro. Al primo rilascio di Windows Phone 7.0 è seguito il primo importante aggiornamento, caratterizzato dal numero di versione 7.5: si trattava di un update piuttosto consistente, che aveva migliorato l’esperienza utente e introdotto diversi scenari molto richiesti dagli sviluppatori, come il supporto ai database o la possibilità di eseguire operazioni in background. Windows Phone 8.0 è stato un punto di svolta, in quanto rappresentava la prima versione uscita dopo il rilascio di Windows 8 e, di conseguenza, iniziava a mostrare qualche accenno di convergenza tra le due piattaforme: il più importante era sicuramente la presenza 21 Libro_Universal.indb 21 31/07/14 15:13 Sviluppare Universal app per Windows Phone e Windows con XAML e C# del medesimo kernel, che andava a sostituire quello di Windows Phone 7, basato ancora sulla vecchia piattaforma Windows Mobile. Inoltre, trovavamo anche un primo allineamento della piattaforma di sviluppo, grazie a una serie di API in comune tra i due sistemi operativi (relative a scenari quali la gestione dello storage, i sensori di movimento ecc.). Questo cambiamento così importante ha avuto, però, un lato negativo: Windows Phone 8.0 non è stato reso disponibile come aggiornamento per i dispositivi con Windows Phone 7.5, ma solamente preinstallato sugli smartphone di nuova generazione. Windows Phone 8.1, nonostante il numero di versione possa far pensare a un aggiornamento minore, rappresenta un nuovo punto di partenza: la novità principale è sicuramente l’allineamento quasi completo con Windows 8 in termini di funzionalità, di architettura e di piattaforma di sviluppo, che rende possibile per gli sviluppatori realizzare in maniera molto più semplice applicazioni in grado di funzionare sia su tablet che su smartphone. Windows Phone 8.1 è anche un aggiornamento importante dal punto di vista utente, grazie a una nutrita serie di nuove funzionalità, quali: • Cortana, un assistente vocale digitale in grado di aiutarci a gestire al meglio la nostra vita digitale, pianificando appuntamenti, creando promemoria e tracciando le nostre attività. • Il centro notifiche, che consente di avere accesso velocemente alle impostazioni del telefono e tutte le notifiche ricevute dalle applicazioni. • Un nuovo calendario. • La tastiera Word Flow, che consente di scrivere testi senza staccare il dito dallo schermo. • Backup completo del telefono, inclusa la disposizione della Start Screen e i dati delle applicazioni. • Possibilità di proiettare lo schermo del telefono tramite connessione USB o wireless. • Possibilità di installare le applicazioni sulle schede SD. Inoltre, nel corso dell’anno Microsoft ha aggiunto un nuovo e importante tassello all’ecosistema, acquisendo la divisione Devices & Services di Nokia: in questo modo, la società di Redmond sarà in grado di far crescere l’integrazione tra software e hardware di pari passo. Le Windows Store app Lo spartiacque che ha dato una forte scossa al mondo mobile è stata sicuramente la nascita degli Store di applicazioni, che hanno reso più semplice per gli utenti espandere le funzionalità dei telefoni, mentre per gli sviluppatori distribuire il frutto del proprio lavoro. 22 Libro_Universal.indb 22 31/07/14 15:13 Introduzione alle Universal Windows app Capitolo 1 Windows e Windows Phone non sono da meno: entrambe le piattaforme mettono a disposizione il loro Store, all’interno dei quali potremo pubblicare le applicazioni che andremo a sviluppare grazie alle informazioni contenute in questo libro. All’interno dell’ecosistema Microsoft tali applicazioni prendono il nome di Windows Store app e sono nate all’interno di Windows 8, nel momento in cui Microsoft ha iniziato a ripensare il suo sistema operativo per un utilizzo non solo con mouse e tastiera, ma anche in mobilità e con interfacce touch screen: le classiche applicazioni desktop, a cui gli utenti sono abituati, infatti, non sono adatte per scenari di questo tipo. Innanzitutto per una questione di usabilità: nella maggior parte dei casi, si tratta di applicazioni pensate per essere utilizzate con mouse e tastiera e, quindi, difficilmente utilizzabili in modalità touch. La seconda questione è tecnica: le applicazioni desktop sono pensate per essere utilizzate tipicamente in scenari ove ottimizzazione delle performance e dei consumi non sono una priorità i quali, invece, sono fondamentali quando si pensa a un dispositivo che deve essere utilizzato in mobilità. Per questo motivo Microsoft ha introdotto le Windows Store app: applicazioni di nuova generazione, che nascono per essere utilizzate sui tablet o, più in generale, su dispositivi dotati di schermo touch screen. In realtà, le Windows Store app possono essere utilizzate tranquillamente anche sui computer tradizionali, dato che sono ottimizzate anche per la classica combinazione mouse e tastiera: è sui dispositivi touch screen, però, che danno il meglio di loro. L’approccio pensato da Microsoft per le Windows Store app è quello tipico del mondo mobile: ottimizzazione dei consumi e delle prestazioni, interfaccia grafica pensata per l’utilizzo tramite touch screen, distribuzione controllata tramite uno Store ecc. Le Windows Store app abbandonano, perciò, il vecchio approccio basato su finestre, per offrire un’interfaccia più immersiva e basata su una struttura gerarchica di pagine, attraverso le quali l’utente può navigare. Anche il modello applicativo è profondamente diverso: al fine di garantire maggiore sicurezza agli utenti e offrire un approccio più controllato, le Windows Store app girano all’interno di un ambiente protetto, una sorta di sandbox dalla quale non possono uscire se non dietro specifico consenso dell’utente. Anche dal punto di vista dello sviluppo, le Windows Store app rappresentano uno stacco rispetto al passato, abbandonando il framework .NET (e le tecnologie basate su di esso, come WPF o Silverlight) per introdurne uno nuovo, chiamato Windows Runtime, che approfondiremo nel corso del capitolo. Il tocco personale di Microsoft, rispetto alla concorrenza, è nell’approccio visivo, basato sul Microsoft Design Style, che ha visto la sua prima reale espressione in Windows Phone e del quale ripropone alcuni concetti familiari, come quello delle tile. 23 Libro_Universal.indb 23 31/07/14 15:13
© Copyright 2024 ExpyDoc