[#WPDEV] Consigli per lo sviluppo su Windows Phone

26. settembre 2011

WP_2-line_red_rgbWindows Phone 7 è nelle nostre mani da quasi un anno e, in questo periodo, attendiamo con ansia il primo ed importante aggiornamento che, come sappiamo, introdurrà una serie di succulente novità.

Ho parlato spesso, sia in questo blog che durante i vari speech, di come sviluppare applicazioni per Windows Phone cercando di sfruttare al meglio le caratteristiche che il sistema operativo ci mette a disposizione.

In questa serie di post invece, mi voglio concentrare su alcuni aspetti un po’ meno tecnici ma decisamente importanti quando ci si appresta a sviluppare applicazioni per questa piattaforma.

Fermo restando che queste considerazioni valgono in generale per qualsiasi software andiamo a sviluppare, le mie considerazioni sono finalizzate allo sviluppo su Windows Phone e derivano da esperienza diretta sul campo.

Di seguito un elenco di considerazioni, in rigoroso ordine di gestione del progetto. Ogni punto si sviluppa in un post più dettagliato. I post verranno pubblicati nei prossimi giorni e linkati nella tabella qui sotto.

Buona lettura.

 

wp-ico-24x24

CONOSCERE LA PIATTAFORMA sembra scontato ma, stando a quanto vedo spesso, così non è. Ogni sistema ha le sue peculiarità ed i suoi punti di forza e, non sfruttarli è errato. next
wp-ico-24x24 STUDIARE LE LINEE GUIDA studiare le linee guida PRIMA di iniziare lo sviluppo. Vi sembra scontato? next
wp-ico-24x24 DISEGNARE L’APPLICAZIONE ve lo dico per esperienza personale. Solo “vedendo” l’app vi accorgerete di difetti nella navigazione o di problemi strutturali next
wp-ico-24x24 NON REINVENTARE LA RUOTA sul mercato ci sono diversi componenti che possono farvi risparmiare ore (se non giorni) di sviluppo e testing. Usateli!  
wp-ico-24x24 TESTARE DURANTE LO SVILUPPO avete completato una funzionalità della vostra applicazione? Installatela sul vostro device ed usatela. Ecco perchè!  
wp-ico-24x24 GESTIRE GLI ERRORI. SEMPRE non è bello vedere una applicazione andare in crash. Dato che potrebbe sempre succedere, farsi trovare pronti non è una cattiva idea  
wp-ico-24x24 TESTARE ALLA FINE la vostra app è completa? Installatela e provatela sul vostro device  
wp-ico-24x24 BETA TESTING siete soddisfatti? Fate provare la vostra applicazione ai vostri amici  
wp-ico-24x24 CONOSCERE COME VIENE USATA L’APP vi siete impegnati molto nel realizzare una funzionalità bellissima ed utilissima, ma i vostri utenti la usano?  
wp-ico-24x24 RILASCIO E GESTIONE POST VENDITA l’app è nel Marketplace. Ed ora?  

Articoli e pubblicazioni, Windows Phone 7

[#WPDEV] 2. Studiare le linee guida

26. settembre 2011

WP_2-line_red_rgbNel post precedente, ho sottolineato l’importanza di conoscere la piattaforma su cui andremo a sviluppare la nostra applicazione. Come concluso nel suddetto post, adesso avete sotto mano sia l’idea su cosa dovrà fare la vostra applicazione sia una visione dell’ambiente su cui essa dovrà girare (sia in termini di user experience sia in termini di API che, grosso modo, andrete ad utilizzare).

La forte tentazione che si ha a questo punto del processo di realizzazione è quella di disegnare l’applicazione (o, per i più precipitosi, aprire Visual Studio ed iniziare a scrivere codice). Ammetto di esserci cascato anche io, tanto nel disegno quanto nell’iniziare subito a buttare giù un po’ di codice.

NON FATELO!!!!

Ve lo dico per esperienza. Facendolo, correte il rischio elevatissimo di buttare gran parte del lavoro svolto, soprattutto se quella su cui state lavorando è la prima applicazione che state realizzando.

Quello che dovreste fare a questo punto è leggere le User Experience Design Guidelines for Windows Phone.

Attenzione! Secondo me, in questa fase, dedicarsi allo studio forsennato delle guidelines, imparandole a memoria per recitarle in ordine sparso, non ha senso.

Il mio consiglio è quello di leggerle. Se, come mi auguro, avete a una visione della vostra applicazione, anche se in stato embrionale, la lettura delle guidelines non farà altro che dare ulteriore forma alla vostra idea, dandovi degli spunti interessanti e guidandovi a pensare in modo corretto alla vostra app.

La sezione relativa ai principi di user experience è abbastanza ricca di informazioni e consigli davvero utili alla progettazione della vostra applicazione. Come prima lettura, vi consiglio di partire dal capitolo relativo ai principi generali. La lettura di questo capitolo non farà altro che consolidare quello che avete appreso usando la piattaforma.

I principi generali si sviluppano secondo questi punti:

  • Be Modern
  • Be “On the Go” Capable
  • Be Clean
  • Be in Motion
  • Be Simple, Readable, and Minimalistic
  • Be Consistent
  • Be Authentic
  • Be Innovative

Il capitolo successivo è molto molto importante e parla della struttura dell’applicazione e del modello di navigazione di Windows Phone:Application Structure and Navigation Models for Windows Phone.

In questo capitolo vengono descritti i principi di base relativi alla struttura delle applicazioni. Verranno infatti trattati panorama e pivot con una guida su quale dei due scegliere in base alle esigenze specifiche e verranno poste le basi sul modello di navigazione da usare nelle applicazioni. Tutto questo serve ad iniziare a dare una forma corretta alla vostra applicazione. Senza queste nozioni (che, ripeto, consolidano l’esperienza fatta usando il device), si rischia di incasinare il vostro lavoro fin dalla fase embrionale.

Una volta completata la lettura di questa parte, un salto nella sezione User and Platform Interactions for Windows Phone è d’obbligo per capire come deve funzionare l’interazione dell’utente con il frutto del vostro lavoro. Questa sezione vi fornirà le indicazioni su come i vostri controlli devono essere progettati al fine di rispecchiare le linee guida (e creare una applicazione conforme alla piattaforma). Date uno sguardo a questo per capire cosa intendo.

Arrivati a questo punto, la voglia di fare prendere forma alla vostra applicazione è aumentata considerevolmente ma…abbiate ancora un po’ di pazienza perché ci sono ancora un paio di cosette da leggere.

Una delle letture che mi ha aiutato a consolidare i concetti appresi dalla lettura delle linee guida è questo articolo di Jeff Wilcox. Il post di Jeff prendere i concetti espressi nei documenti elencati e li contestualizza nell’esperienza fatta nello sviluppo di una applicazione.

Prima di prendere carta e penna (o Blend) per iniziare a disegnare l’applicazione, manca solo un ultimo passaggio: tenete sotto mano questa pagina e date uno sguardo a questa. Vi forniranno alcuni elementi utili al fine della certificazione della vostra applicazione. In questo modo, se avete previsto ad esempio di usare le Push Notification, leggendo l’ultima pagina segnalata saprete che dovete prevedere la possibilità, da parte dell’utente, di disattivare le notifiche. Questo si traduce in un elemento in più da inserire in fase di progettazione.

Bene…adesso siamo pronti ad iniziare a disegnare l’applicazione.

Ma per questo vi rimando al prossimo post.

Articoli e pubblicazioni, Windows Phone 7 ,

[#WPDEV] 1. Conoscere la piattaforma

21. settembre 2011

right-HERO_MANGO_062411Quando decidiamo di sviluppare una applicazione per una piattaforma mobile, la cosa più sensata da fare è cercare di sfruttarne le caratteristiche principali ed i punti di forza. Ogni piattaforma è diversa dalle altre, con tutti i relativi pro e contro del caso.

Iniziando la progettazione di una applicazione senza avere ben chiare queste caratteristiche e senza avere una visione globale del sistema su cui essa girerà, aumenta il rischio di realizzare applicazioni di scarso successo.

Anche se questo può sembrare banale e scontato, guardando diverse applicazioni presenti all’interno del Marketplace si nota come l’attinenza alla piattaforma non è affatto una cosa scontata. Ci sono infatti diverse applicazioni in cui è evidentemente stato fatto un semplice porting da altre piattaforme. Per questioni di correttezza, non andrò a citare le suddette applicazioni, ma vi invito, la prossima volta che usate una qualsiasi applicazione, a fare caso a quante di esse, ad esempio, usano dei bottoni per spostarsi tra le pagine o mostrano delle pou-up “iPhone” style.

Acquisire conoscenza della piattaforma, secondo me, significa prendere contatto con il dispositivo, usando per quanto possibile le funzionalità del sistema operativo e le applicazioni fornite in bundle che, spesso, si attengono alle linee guida da usare anche nelle nostre applicazioni.

Lavorando su Windows Phone 7, per comprendere a fondo novità come Panorama, Pivot e Live Tile (solo per rimanere in ambito di User Interface), non c’è niente di meglio che usare il device, navigare ad esempio tra i contatti, usare la posta elettronica, navigare tra le immagini o la musica o usare Office. Semplicemente osservando dettagliatamente il comportamento di questi elementi, si riescono a capire molte delle potenzialità del sistema che potremmo usare nelle nostre applicazioni.
Non ci credete?
Facciamo allora qualche esempio (riferito a Windows Phone 7.5).

 

 

People

1614.WpTkOct10-LongListSelector-JumpList

Aprendo i contatti, si accede al relativo Panorama che mostra, come prima schermata, tutti i contatti in cui c’è la vostra foto con l’ultimo status condiviso e, subito in basso, i gruppi. Scorrendo verticalmente la lista, verranno visualizzati i contatti in ordine alfabetico, raggruppati per lettera. Cliccando su una qualsiasi lettera, verrà aperta la “jump list” da cui è possibile passare direttamente alla lettera desiderata.

Una finezza che è possibile trovare sia nell’elenco dei contatti che nella lista delle applicazioni, è che, scorrendo la lista, la lettera corrente resta ancorata in cima alla pagina, fino alla lettera successiva. Implementare questo tipo di controlli non è complicatissimo (lo vedremo tra qualche post) ma spesso non viene fatto.

Sempre all’interno dei contatti, è possibile vedere il funzionamento del controllo panorama. Su questo non mi dilungo in quanto è stato già trattato e, il controllo, è incluso nei template standard di Visual Studio.

Panorama e Pivot, come più volte detto, rappresentato un nuovo concetto di navigazione all’interno delle proprie applicazioni. Usarli nelle nostre applicazioni è immediato ed a costo zero ma ci sono tante app che o non li usano, o li usano in modo errato.

Pinnando poi un qualsiasi contatto nella home del device, si può apprezzare il concetto di live tile. Abbiamo subito accesso alle info del contatto o, semplicemente guardando la home, possiamo subito vedere se ci sono novità che riguardano il contatto stesso. Il back della tile ci mostra infatti queste informazioni.

Su Windows Phone 7.5, abbiamo la possibilità anche noi di sfruttare a pieno tutte le funzionalità delle tile. Funzionalità di cui molte applicazioni possono trarre giovamento.

 

Posta Elettronica

Avete provato ad usare la posta elettronica su Windows Phone 7.5? La conversation view permette di raggruppare tutti i messaggi appartenenti alla stessa conversazione. Anche questo tipo di controllo è disponibile per le nostre applicazioni e, anche qui, ce ne sono diverse che ne potrebbero trarre giovamento.

 

 

Live Tile

WP_000132Ho già fatto un accenno alle Live Tile parlando dei contatti ma, di scenari in cui le live tile possono tornare davvero utili, ce ne sono moltissimi.

Questo nuovo elemento ha il vantaggio di poter mostrare, ai nostri utenti, una serie di informazioni senza dover necessariamente aprire l’applicazione. Ci sono già svariate applicazioni meteo, ad esempio, che permettono di avere, sempre a portata di mano sulla home del device, le previsioni della propria città. Con l’arrivo delle multi tile, si potranno ad esempio avere previsioni per diverse città.

Pensate a quanto possano essere utili le live tile nelle applicazioni che state sviluppando. La domanda che in genere mi pongo, quando penso ad una applicazione per Windows Phone è: quali info mi sarebbe comodo avere sempre a disposizione? Provate farvela anche voi e capirete quanto le live tile possano esservi utili.

 

Altro

Usando il device, ci si renderà sempre più conto di come sono strutturate le funzionalità del sistema operativo. Animazioni, transizioni, struttura dei controlli e delle pagine, sono tutte cose a cui prestare la massima attenzione. Dopo aver letto questo post, se avete sotto mano un device, provate a fare caso alle applicazioni che state usando ed alle differenze che esse hanno rispetto all’usabilità del telefono. Personalmente mi è capitato di notare parecchie differenze che, magari, a prima vista non si notano.

Volete un esempio pratico?
Prendete il vostro device e cliccate sull’icona del Marketplace. Cliccate su App, scorrete a destra e cliccate su “tutte”. Osservate l’animazione con cui vengono presentati i risultati. Ora, navigate nelle vostre applicazioni ed osservate quante di esse usano le animazioni per popolare le liste.

 

Fin qui, mi sono limitato a parlare di aspetti relativi all’interfaccia utente. Aspetti che poi rappresentano il punto di contatto tra il vostro lavoro e gli utenti che usano la vostra applicazione. Ma la conoscenza della piattaforma deve necessariamente comprendere anche le API esposte dal sistema operativo e quindi sfruttabili anche da noi.

Per approfondire questo argomento, non c’è niente di meglio della documentazione ufficiale.

 

Conclusioni

Per concludere questo primo post, il consiglio che posso darvi quando volete iniziare a sviluppare su Windows Phone è: pensate alla vostra applicazione, usate il device per capire i paradigmi legati alla UI e cercate nella documentazione le API che vi servono. Solo in questo modo avrete sotto mano tutti gli elementi per iniziare la progettazione.

Articoli e pubblicazioni, Windows Phone 7

Book Review: C# 4 Guida completa per lo sviluppatore

2. febbraio 2011

covercs4

Libri sulla programmazione, sulle tecnologie, sulle metodologie, ce ne sono per tutti i gusti e per tutte le esigenze. Trovare il libro giusto, è un altro paio di maniche.

Per quanto riguarda C#, se il vostro livello non è avanzato (vedi nota) per cui un tomo da 1000 pagine sarebbe superfluo e volete andare sul sicuro, il mio consiglio è di prendere in considerazione C# 4 Guida per lo sviluppatore.

Gli autori non hanno di certo bisogno di presentazione, quindi…passiamo subito al sodo Smile

Il libro si sviluppa in 21 capitoli e tratta tutte le tematiche importanti ed utili allo sviluppo di applicazioni complete. Si parte dall’introduzione per arrivare al networking, passando da temi “caldi” come LINQ, Entity Framework, WPF (base ed avanzato), security etc.

Temi che, volendo, possono essere approfonditi leggendo i relativi libri ma che, per iniziare, sono ben trattati.

Il taglio molto pratico e molto scorrevole con cui è scritto il libro, lo rendono di facile lettura e, secondo me, di immediata comprensione.

In conclusione, se cercate un libro per iniziare a programmare in C# o siete già sviluppatori che vogliono ampliare le proprie conoscenze, questo libro è decisamente un buon punto di partenza che vi consiglio di prendere in considerazione.

 

Scheda Libro: http://books.aspitalia.com/CSharp-4/

(Nota: anche se il vostro livello è avanzato, alcuni spunti interessanti si trovano sempre, quindi una lettura è comunque consigliata)

Technorati Tags: ,,

CSharp, .Net, Articoli e pubblicazioni

Microsoft Push Notification Service

22. marzo 2010

header_logoAl MIX che si è da poco svolto a Las Vegas, stanno (finalmente) venendo fuori tutti i dettagli relativi a Windows Phone 7. Molte sono le novità relative all’usabilità, alla nuova interfaccia, al concetto di HUB etc.

Ma…da buoni dev, quello che ci interessa maggiormente è cosa si nasconde “sotto il cofano” e come possiamo usarlo per i nostri scopi.

Silverlight e XNA sono ovviamente le novità più interessanti e succulente. La scelta strategica fatta da Microsoft è azzeccatissima e, personalmente, la condivido in pieno. L’unificazione dei modelli e delle tecnologie di sviluppo non può che portare vantaggi non indifferenti tanto al mercato quanto a tutto l’ecosistema che ruota intorno ai dispositivi.

Ma (ed è il secondo ma Smile), come cerco sempre di far notare ogni volta che parlo di programmazione per dispositivi mobili, un “mobile device” NON è un PC (e ne lo sarà mai). E questo a prescindere dalla tecnologia usata per creare applicazioni.

E questo è un bene (quando lo si capisce) Smile

Ma cosa c’entra tutto questo con il titolo del post?
La risposta è che c’entra davvero tanto. Semplificando (ma mi riprometto di passarci con più dettaglio nei prossimi post), la situazione è questa:

  1. un dispositivo mobile funziona a batteria
  2. le applicazioni lasciate aperte, consumano cicli di CPU
  3. i cicli di CPU consumano batteria
  4. le applicazioni lasciate aperte inutilmente consumano batteria inutilmente

Questi punti riassumono (molto ma molto brevemente), la scelta di eliminare il multitasking su Windows Phone 7 Series.

Ci dobbiamo preoccupare?

Non se abbiamo delle strategie alternative! E queste strategie c’erano già all’epoca di Windows Mobile 5.
Ho parlato spesso di State and Notification Broker, con il quale, già da diversi anni, potevamo evitare di avere applicazioni inutilmente in running sul device. Ed ho sperato che, togliendo in multitasking da Windows Phone 7, rimanessero queste API.

Poi l’inizio del MIX e la demo relativa al sistema di Push Notification Service mi ha fatto tirare un mezzo sospiro di sollievo:

Qualcosa quindi si può sicuramente fare. Ora c’è da capire il “come” farla.

Qualche dettaglio in più, l’ho trovato partendo da questo post di Charlie Kindel:

The Microsoft Push Notification Service lets end-users get “live” updates for their favorite apps no matter what they are doing on their Windows Phone. (This is what I get to demo during the keynote!).  Its a mechanism for proactively sending changing or updating information to the phone, regardless of whether or not the application is running. It helps preserve battery life and network and the API for using it on both the Phone and web service is amazingly simple!  Notifications can updated Live Tiles on the Start Screen or show a drop-down “toast” notification at any time and developers can handle notifications directly in their apps

Quindi, ricapitolando:

  1. Non ho multitasking: ok, vediamo cosa si può fare
  2. Ho un sistema di notifiche: perfetto, impariamo ad usarlo
  3. Il sistema NON è State & Notification Broker: mmmmm, cerchiamo quindi di capire cosa e come gestire questa situazione

Ho quindi iniziato a cercare qualche info in più rispetto a questo nuovo meccanismo, arrivando a questo articolo su MSDN, da cui scippo liberamente questa immagine che descrive meglio la struttura delle push notification:

PushNotification

Ok…è evidente che qualcosa è cambiato.
La notifica arriva da un “cloud service”, richiesta, a quanto sembra, grazie ad un “Push Notification Framework” che “istanzia” un “Push Client” che comunica con la parte “cloud” grazie ad un “Microsoft Push Notification Service”.

Per il momento mi fermo qui. Nel prossimo post sull’argomento cercheremo di capire meglio come far funzionare il tutto e quali sono i pro e contro (secondo me) di questa tecnologia.

Stay tuned Smile

Fonte: The Right MIX - Windows Phone Developer Blog - The Windows Blog

Windows Phone 7, Articoli e pubblicazioni ,

Windows Mobile vs. Android: WinMo Is Better Than You Think

24. novembre 2009

Da leggere Smile

I set my cynical attitude aside and compared WinMo with Android, and the fact of the matter is, WinMo is better than you might think. When you compare the two platforms in the major areas that matter the most, the results may surprise you.

Fonte: Windows Mobile vs. Android: WinMo Is Better Than You Think

Technorati Tags: ,

Windows Mobile, Articoli e pubblicazioni ,

How Connection Manager Connects

19. gennaio 2009

Il bello dei dispositivi mobili attuali risiede nella loro capacità di connettersi e consumare dati on line (vedi nota). A rendere più semplici le operazioni di connessione c’è il Connection Manager: 

Without Connection Manager, for all but the simplest network environments, the only way an application could choose a connection would be by presenting the user with a list and asking him to select one.

In the December 2008 issue of MSDN Magazine, Marcus Perryman explains why the correct use of Connection Manager is vital when a Windows Mobile application requires network data and shines a light on some of Connection Manager's inner workings.

L’articolo merita una approfondita lettura.

Fonte: How Connection Manager Connects
tdorsey
Thu, 18 Dec 2008 18:31:30 GMT

Nota: la frase “Il bello dei dispositivi mobili attuali risiede nella loro capacità di connettersi e consumare dati on line” potrebbe trarre in inganno chi si è avvicinato alla programmazione dei dispositivi mobili di recente. Solo qualche anno fa, a farla da padrone erano i Pocket PC, non dotati di parte telefonica e di connettività Wi-Fi.

Articoli e pubblicazioni, Windows Mobile ,

Pocket Guide Series for Application Architecture

29. novembre 2008

Il team di patterns & practices, ha da poco rilasciato una serie di “guide tascabili” che coprono vari argomenti:

Agile Architecture Method Pocket Guide

Our Application Architecture Pocket Guides are available from our Application Architecture KB.  Our pocket guides are based on our Application Architecture Guide 2.0.   We prioritized an initial set of pocket guides based on customer demand for focused content on specific topics.

Pocket Guides
Here’s the Pocket Guides available so far:

You can browse the list of pocket guides on the Pocket Guide Index page.

Non le ho ancora lette (in questo periodo il tempo è davvero tiranno), ma la ritengo davvero un’ottima iniziativa.

Fonte: Pocket Guide Series for Application Architecture

Articoli e pubblicazioni, Microsoft ,

Building graphically advanced applications with the .NET Compact Framework 3.5 Tutorial Published

27. novembre 2008

L’amico Giorgio Sardo ha pubblicato qualche giorno fa un interessantissimo tutorial sulla creazione di intefacce grafiche avanzate con il .NET Compact Framework:

Silverlight for mobile is great. It allows you to build Rich (Mobile) Internet Application quickly and easily, using XAML and C#. HOWEVER, the . NET Compact Framework is not dead ! Depending on the scenario and the application you are building, the .NET...(read more)

Consiglio vivamente una lettura approfondita del tutorial. Ne vale la pena Wink.

Fonte: Building graphically advanced applications with the .NET Compact Framework 3.5 Tutorial Published
Thu, 20 Nov 2008 09:57:00 GMT

Windows Mobile, Articoli e pubblicazioni ,

Congratulazioni Andrea!!!

27. novembre 2008

Per il link negli “Article of the day” su www.asp.net !!!

aspnet

Smile

Technorati Tags: ,

Articoli e pubblicazioni, Amici ,