Essentials of Developing Windows Store Apps using C# Jump Start

Livello: 200 - Panoramica a 360 gradi dello sviluppo di Windows App
19 lug 2013 00:51

Dopo l’interessante panoramica dedicata al C# la coppia Jerry Nixon e Daren May si dedica allo sviluppo di App per il Windows 8 Store. Vengono seguiti i criteri per l’esame 70-484 e del corso 20484B.

Gli argomenti trattati, sia in teoria sia in pratica, riguardano tutti gli aspetti dello sviluppo App e spaziano dalle caratteristiche dei dispositivi Windows 8 fino alla pubblicazione nello Store.

  • Modulo 1: modulo diviso in due parti. La prima è un’introduzione al mondo Windows 8 App con una descrizione dettagliata delle sue peculiarità (i componenti dell’UI e del SO). La seconda parte è invece dedicata alla line guide della progettazione di un App, ciò che viene definito come Windows Design Language.
  • Modulo 2: basi di XAML a partire dalla Grid per parlare delle diverse modalità di scrittura degli elementi e del concetto di contenuto. Si parla di Attached Property, Property Element, Converter, Dependency Properties, Custom Control e Template: tutti concetti utilizzati nei successivi moduli.
  • Modulo 3: lezione molto semplice dedicata al layout (in particolare ai controlli Container come Canvas, Grid, StackPanel, WrapGrid, ScroolViewer e ViewBox). Più interessante la seconda parte dedicata al binding, esposto chiaramente con pochi e semplici esempi.
  • Modulo 4: panoramica dell’accesso al File System con il nuovo namespace Windows.Storage e i Picker con cui richiedere all’utente l’accesso ad un file. La seconda parte è dedicate invece al Process Lifecycle Management con un accenno ai Background Process. Interessante la parte dedicata all’attivazione di un’App. Ad esempio, la Protocol Activation permette di definire un protocollo personalizzato con cui avviare la propria App anche da un pagina Web.
  • Modulo 5: tre temi fondamentali: stili, modelli e risorse (Styles, Templates e Resources). Ottime le demo live anche se con qualche incertezza. Viene inoltre evidenziato come i controlli GridView e ListView, abbiamo funzionalità già pronte come raggruppamento, semantic zoom e riordino.
  • Modulo 6: interessante panoramica della navigazione, quindi della struttura delle pagine della propria App che può essere Browser-like o flat (tipica dei giochi). Concetti: App Hub, Semantic Zoom, Navigation Manager.
  • Modulo 7: creare un App per Windows 8 significa interagire con i servizi messi a disposizione dal sistema e adeguarsi alle linee guida. Abbiamo quindi Search, Share e Settings nello charm laterale, ma anche le Tile dinamiche e le notifiche con cui comunicare con gli utenti. Un modulo molto completo ed interessante.
  • Modulo 8: SQLite, File System e i Servizi Web sono le vie preferenziali per salvare i propri dati nelle Windows App. La demo si concentra su SQLite che, essendo disponibile anche in Windows Phone, permette una gestione multi piattaforma e semplice, grazie alle estensioni di Visual Studio e NuGet. Infine, il deployment della propria App, sia ai fini di test su diversi dispositivi sia nello Store per il quale la pubblicazione viene mostrata in tutte le sue fasi con alcuni utili consigli.

Il primo modulo è un’interessante panoramica che mette in risalto le risorse che lo sviluppatore ha a disposizione per le sue App e di come possa inserirsi in un ambiente omogeneo che offre molti servizi. Ma oltre agli aspetti positivi vengono messe in risalto le criticità, ad esempio il fatto che le notifiche non vengono accodate, che l’utente può disabilitarle come del resto può disabilitare alcune abilitazioni concesse l’App in fase di installazione. E’ un modulo che mi è piaciuto particolarmente sebbene molto discorsivo: mette in risalto gli obiettivi che i progettisti di Windows 8 hanno raggiunto, come la consistenza dell’UI e il ruolo centrale del contenuto. Ad esempio, se la mia App visualizza delle foto di un tramonto, non ha senso riempire lo schermo con pulsanti, sfumature, titoli e via dicendo. Un design minimalistico facile da usare che non disorienta l’utente (se non all’inizio, s’intende…).

Alcuni consigli ricorrenti, in particolare dedicati alla User Experience: usare operazione asincrone, salvare i dati e lo stato dell’App periodicamente (in sospensione si hanno solo 5 secondi), considerare sempre il caso peggiore e praticare il Defensive Code (Defensive Programming), considerare che l’utente può non accettare le richieste definite nel Manifest e inoltre che può cambiarle successivamente. Utilizzare le classi Helper del .NET e i file generati dai Template di Visual Studio (come il Suspension Manager).

La panoramica è interessante e a tratti simpatica, ma in una giornata vengono condensati i 5 giorni richiesti dal corso ufficiale e forse un libro sull’argomento risulta più completo e meno dispersivo.

Infine, il link ai sorgenti proposti è attualmente errato. Quello corretto è questo.

Tag: MVA, WinApp, Window 8 Store, C#