[#WP7DEV] 8 Must-Have Tools for Windows Phone 7 Development

24. gennaio 2012

QUI trovate una interessante raccolta di tool da avere se sviluppate su Windows Phone.

image

 

Fonte: 8 Must-Have Tools for Windows Phone 7 Development
Mon, 23 Jan 2012 13:33:41 GMT

Windows Phone 7

[#WPDEV] 5. TESTARE DURANTE LO SVILUPPO

2. novembre 2011

Se c’è una cosa importante quando sviluppate un software è il testing. Come tante affermazioni, questa può sembrare scontata ma, credetemi, non lo è affatto.
E non sto parlando di Unit Testing quanto di vero e proprio test funzionale e di usabilità dell’applicazione che state andando a sviluppare.

Se avete seguito i punti precedenti di questa serie di articoli, a questo punto avrete già sviluppato una buona parte del vostro codice. Le prime pagine avranno preso forma ed i primi dati avranno iniziato a popolare le vostre form. A questo punto vi porgo una domanda: quanti di voi hanno installato la propria applicazione sul dispositivo? Quanti di voi hanno iniziato ad usare le funzionalità già sviluppate?

In genere, la risposta che ottengo a questa domanda è NO.

Ed i motivi che giustificano questa risposta sono sintetizzabili in questa affermazione:

NO perché l’applicazione NON E’ COMPLETA

Se la vostra risposta è riconducibile a quella riportata qui sopra, state sbagliando qualcosa e, questo errore, potrebbe farvi perdere davvero molto tempo per finalizzare l’applicazione.

Se state lavorando su una applicazione amatoriale, questa situazione potrebbe non essere un problema. Ma se state lavorando per una applicazione commerciale, per cui è previsto un lancio, potreste perdere parecchie ore di sonno.

Ma vediamo il perchè, spesso, si arriva alla risposta di sopra.

In generale, il problema nasce nel momento in cui, partendo dal vostro disegno di cui abbiamo parlato qui, decidete come dividere lo sviluppo. E’ in questa fase che si commette il primo vero errore, ossia quello di lavorare sui parti dell’applicazione tra loro slegate. Come potete facilmente intuire, lavorando su parti tra loro slegate, non sarà mai possibile testare un ramo dell’applicazione.

Quando decidete cosa sviluppare, fatelo seguendo una logica che vi permetta di completare un ramo dell’applicazione che sia installabile su un dispositivo ed usabile.
Personalmente, usando la metafora di un albero, mi piace partire dalle foglie di un ramo per arrivare a completarlo. Quando il ramo è completo, passo al ramo successivo.

Dato che, come ho detto all’inizio, per questioni di correttezza non parlerò di applicazioni di terze parti, prendo come esempio la mia applicazione StickyNotes.

Lo scopo principale dell’applicazione è quello di prendere note. Dopo aver abbozzato il disegno dell’applicazione e l’interazione tra le pagine, decisi ovviamente di iniziare lo sviluppo dalla parte di creazione / editing e cancellazione della nota.

Qui in basso una bozza del disegno (preferisco lavorare con carta e penna su certe cose Smile )

WP_000263 

Lo sviluppo dell’interazione completa, compresa grafica e funzionalità accessorie, avrebbe richiesto un certo tempo di sviluppo così, per evitare di mettere “troppa carne al fuoco”, decisi di sviluppare prima la parte core di creazione e cancellazione della nota.

Appena completata questa parte, installai l’app sul device e, mentre lavoravo ad altre funzionalità di contorno, iniziai ad usare l’applicazione notando che:

  • tornare alla nota appena creata al salvataggio era scomodo e poco intuitivo
  • non avere un feedback dell’avvenuto salvataggio disorientava
  • dover cancellare ogni volta titolo e testo era palloso
  • la cancellazione senza conferma era pericolosa
  • il testo nelle note non andava a capo
  • il testo nella nota non era selezionabile

Oltre a questi primi punti, ne emersero altri di minore importanza.

Dopo qualche giorno di utilizzo REALE del ramo dell’applicazione, decisi di sistemare questi dettagli che erano emersi durante l’uso e ricominciai nuovamente ad usare l’app.

Questo genere di testing è stato svolto per svariate volte prima di passare alle funzionalità successive.

Cosa sarebbe successo se avessi testato tutto alla fine?

Non è difficile immaginare che:

  • sarei arrivato a rilasciare una applicazione poco usabile
  • avrei ritardato di parecchio il rilascio per sistemare tutti i problemi di usabilità

 

Il mio consiglio è quello di scegliere BENE l’ordine delle cose da sviluppare, mettendovi sempre nella condizione di chiudere una funzionalità in modo che sia installabile sul device ed usabile per intero per qualche giorno.

Fate inoltre molta attenzione nel non cadere nel tranello dell’emulatore!!!!
Sento spesso da molti dire: testo nell’emulatore. Che va benissimo fino ad un certo punto ma l’emulatore non può permettervi di testare l’applicazione in condizioni di utilizzo reali (e mi riferisco a condizioni ambientali).

Un esempio?

Provate ad usare la vostra applicazione con una mano, mentre con l’altra portate un peso (come una busta della spesa).

La usate comodamente? (e credetemi, la risposta non è sempre SI Winking smile )

Windows Phone 7

New FREE e-book: Windows Phone Toolkit In Depth

11. ottobre 2011

Rilasciato un ebook gratuito dal titolo: Silverlight for Windows Phone Toolkit In Depth:

  • 246 Pages
  • Published Date: 11 Oct 2011
  • Includes all controls from the Windows Phone Toolkit Aug 2011!
  • 22 Chapers!
  • Full Source Code
  • Based on Windows Phone 7.1 Mango!

 

Download: here: http://windowsphonegeek.com/WPToolkitBook
Fonte: New FREE e-book: Windows Phone Toolkit In Depth

Windows Phone 7

[#WPDEV] 4. NON REINVENTARE LA RUOTA

7. ottobre 2011

Eccoci al quarto post di questa serie. Nel primo, abbiamo parlato della piattaforma per poi dare una lettura alle linee guida nel secondo post ed arrivare al terzo con il disegno della nostra applicazione.

A questo punto, dovreste avere già iniziato a sviluppare l’embrione della vostra applicazione. I primi panorami dovrebbero aver iniziato a prendere forma ed i primi collegamenti alle pagine dovrebbero iniziare a funzionare.

Come detto all’inizio, lo scopo di questa serie di post non è quella di scendere in dettagli tecnici sul come fare le cose (in giro ci sono decine di guide ed esempi e non è mia intenzione ripetermi) quindi, passiamo al punto successivo che è appunto: NON REINVENTARE LA RUOTA.

E questo non si riferisce alle funzionalità della vostra applicazione quanto a tutto quello che le farà da contorno, come animazioni, controlli particolari e simili. La mia convinzione a questo proposito è che, sebbene come sviluppatori siamo tenuti a sapere come vanno fatte le cose, se ci sono dei controlli che permettono di farci risparmiare tempo, ben vengano (abbiamo più tempo per concentrarci su aspetti più importanti).

Ciò premesso, ecco una serie di risorse che potrebbero farvi risparmiare un bel po’ di tempo e, allo stesso tempo, rendere la vostra applicazione molto più “cool”:

  • Silverlight Toolkit: è in genere la prima referenza che aggiungo ai miei progetti Windows Phone. Tra i controlli che vi troverete a disposizione (e sono un bel po’), ne troverete alcuni (come HubTile) che, con poco sforzo, vi permetteranno di cambiare radicalmente l’aspetto di alcune parti della vostra applicazione. Provate, ad esempio, ad aggiungere semplicemente il TiltEffect ai vostri controlli per vedere immediatamente la differenza.
  • Coding4Fun Tools: se vi servono poup up, bottoni, colori etc., dategli uno sguardo.
  • Phoney Tools: all’interno di questi tools, troverete controlli come fadingMessage, Microphone recorder etc. che, asseconda del tipo di applicazione su cui state lavorando, potrebbero fornirvi un grosso aiuto nello sviluppo.

 

Oltre questi controlli, comodissimi, gratuiti e facili da utilizzare, ci sono pacchetti a pagamento molto molto interessanti. Quello che personalmente mi sento di consigliarvi è senza dubbio Telerik RadControls per Windows Phone.

I controlli in esso contenuti sono davvero molto accattivanti, ben disegnati, semplici da usare e ad un costo davvero contenuto. Provate a dare uno sguardo a cosa contengono e provate a pensare a quanto tempo possono farvi risparmiare.

Di controlli, oltre quelli da me segnalati, ce ne sono davvero molti. Se avete qualche suggerimento, contattatemi ed aggiornerò la lista.

Ricapitolando, il mio consiglio è quello di studiare il modo in cui si fanno animazioni, controlli custom etc. ma, a meno di non avere esigenze specifiche, non perdete tempo a riscrivervi pezzi che esistono già e sono sicuramente più testati dei vostri.

In conclusione, a prescindere dal tipo di controlli che andrete a scegliere, fate attenzione a non esagerare con quello che mettete nelle vostre applicazioni. Il troppo storpia, anche in questo caso.

Buon proseguimento!

Windows Phone 7

[#WPDEV] 3. Disegnare l’applicazione

30. settembre 2011

WP_2-line_red_rgbNei precedenti post abbiamo parlato dell’importanza di acquisire familiarità con la piattaforma e di conoscere le linee guida relative allo sviluppo per Windows Phone (ma lo stesso discorso vale per tutte le altre piattaforme). Questo studio preliminare ci ha portato a conoscere l’ambiente su cui verrà installata la nostra applicazione e come la nostra applicazione dovrà essere, a grandi linee, disegnata.

A questo punto, è arrivato il momento di iniziare a progettare concretamente la nostra applicazione.

Il come, lascio a voi sceglierlo. Io prediligo carta e penna (si, lo so, ci sono altri sistemi…ma a me viene meglio così). Se volete usare strumenti evoluti che vi permettano, tra l’altro, di simulare la vostra applicazione, non posso che suggerirvi  i template di SketchFlow per Windows Phone. La scelta dello strumento però, esula dallo scopo di questo post.

Una volta deciso come disegnare, iniziate a buttare giù un disegno della pagina che ritenete principale e pensate a quali contenuti dovranno essere presenti.

La prima domanda da porsi è: qual’è il modo migliore per presentare questi elementi? Potrebbero essere rappresentati in una lista? Come contenuto di tile?

Definito questo primo aspetto, dobbiamo capire se le informazioni ci conviene metterle in una pagina singola, in un panorama o in un pivot. Questa scelta è strettamente legata al tipo di applicazione che andrete a realizzare.

Una volta completata la bozza della prima pagina, arriva il primo, vero esercizio su cui dovrete ragionare seriamente. Ponetevi le seguenti 2 domande:

  • dove arrivo cliccando sugli elementi di questa pagina?
  • come arrivo a questa pagina?

 

La risposta a queste due domande, da ripetere per ogni pagina che andrete a disegnare, vi permetterà non solo di disegnare in modo logico la vostra applicazione, ma anche di avere un quadro completo delle relazioni tra le vostre pagine e capire quali relazioni non funzionano correttamente. Spesso, in questa fase, emergono infatti passaggi articolati per arrivare da una sezione all’altra oppure relazioni assenti tra pagine importanti.

Per discriminare le relazioni corrette da quelle potenzialmente errate o problematiche, è necessario conoscere il sistema di navigazione di Windows Phone (è qualcosa con cui avete preso contatto semplicemente usando il device).

A tal fine, vi consiglio la lettura di questo articolo, in cui sono presenti una serie di riferimenti da consultare per approfondire. Volendo sintetizzare al massimo, il modello di navigazione di Windows Phone è composto da uno stack in cui vengono inserite le pagine in cui arriviamo muovendoci all’interno dell’applicazione. Stack che può essere “navigato” premendo il tasto back del device.

Questo modello di navigazione, all’inizio, può portare ad uno degli errori più comuni che si possono prevedere (e risolvere) disegnando per bene l’applicazione: la navigazione circolare.

Supponiamo di avere 3 pagine: A, B e C e di strutturare l’applicazione in modo che dalla pagina A si possa andare alla B, dalla B alla C e dalla C alla A (tipico caso di un wizard che ci riporta alla pagina principale alla fine dell’inserimento dei dati). Cosa succede quando, tornati alla pagina A, premiamo il tasto back sul nostro device?


Source: Solving Circular Navigation in Windows Phone Silverlight Applications

La soluzione la trovate qui.

E questa è solo una delle problematiche che possono emergere. Quello a cui, dovreste arrivare, almeno in questa prima fase, è avere una situazione simile a questa:


Source: Application Page Model for Windows Phone

La conoscenza delle corrette relazioni tra le pagine, credetemi, potrebbe farvi risparmiare qualche ora di lavoro in caso di errori di valutazione nella loro disposizione. Correggere questo tipo di errori in questa fase è decisamente molto molto più comodo che farlo in fase di sviluppo, quando parte della logica è già stata implementata.

Alla fine, dovreste arrivare ad una disegno di questo tipo:

IC505433
Source: Implementing Windows Phone Application Design

La vostra applicazione ha preso finalmente forma. Non sarà sicuramente quella definitiva in quanto, in fase di sviluppo, emergono sempre dettagli che, sulla carta, non sono stati considerati. Ma questo è sicuramente un buon punto di partenza per avere una applicazione che abbia un flusso di navigazione pulito ma che, soprattutto, vi mette al riparo da una serie di problematiche inaspettate.

Se avete già sviluppato applicazioni per Windows Phone (che non siano semplici visualizzazioni master/detail di dati) di una minima complessità, provate a ripensare a quanto tempo avreste potuto risparmiare con uno schema di navigazione sotto mano.

Anche per questo post, è tutto.

Buon lavoro!

Windows Phone 7

[#ITWPC11] [#WPDEV] WPC 2011

29. settembre 2011

WPC 2011 è, da 18 anni, per i professionisti dell'ICT, un momento di formazione d'elevato profilo. Il più importante evento italiano di formazione professionale sulle tecnologie Microsoft.

L'edizione 2011 si svolgera' dal 22 al 24 Novembre ad Assago (MI).

WPC e' rivolto a tutti i professionisti ICT, agli sviluppatori, ai sistemisti, ai consulenti IT, ai manager:

  • 3 giornate
  • 6 track parallele
  • piu' di 60 speaker
  • piu' di 90 sessioni


Quest'anno, sul palco di WPC, saranno sicuramente tante le novita' e, ne siamo sicuri, molte cambieranno il modo di sviluppare e di presentare le applicazioni.
Cominciamo con il nuovo sistema operativo Windows 8 che verra' presentato per la prima volta nel mese di Settembre, negli Stati Uniti, durante la conferenza Build. Sicuramente l'attesa e' alta e, fino a quei giorni, nemmeno WPC potra' svelare dettagli in anteprima.

Oltre a Windows 8, ci saranno tanti altri argomenti caldi come SQL Server, HTML5, Cloud ed ovviamente Windows Phone!

Anche quest’anno avrò l’onore di partecipare come speaker con una sessione su Windows Phone 7.5 (Mango) Smile

Stiamo definendo proprio in questi giorni i dettagli della sessione ma, quello che posso dirvi, è che sarà di taglio molto pratico e sicuramente utile a chi vuole sviluppare su Windows Phone.

E' disponibile anche l'applicazione ufficiale per Windows Phone sul Marketplace: questa prima versione vi permette di tenervi aggiornati sulle ultime novità, una volta che l'agenda sarà completata verrà rilasciato un aggiornamento più "corposo" che vi permetterà di pianificare al meglio la conferenza, dandovi la possibilità di avere l'agenda a portata di mano.

Tutte le info le trovate sul sito della conferenza http://www.wpc2011.it/

Mi raccomando!!! Non mancate!!!

Windows Phone 7, Windows, Eventi, Conferenze

[#WPDEV] Creare screenshot del panorama in Windows Phone

28. settembre 2011

Da quando ho messo on line la pagina di relativa a StickyNotes, più di una persona mi ha chiesto come realizzare l’immagine completa del panorama.

Come immagino abbiate notato infatti, gli elementi del panorama su Windows Phone si muovono in modo diverso (parallax scrolling) tra di loro, e questo crea un piacevole effetto di movimento. Effetto però che ci fa penare quando abbiamo la necessità di fare uno screenshot completo.

Cercando on line una soluzione, sono arrivato a questo articolo che spiega molto bene come risolvere.

L’idea alla base di tutto parte dal una analisi (molto furba) del funzionamento degli elementi del panorama. Questo infatti è composto da una serie di elementi diversi (PanningTitleLayer e PanningBackgroundLayer) che derivano da PanningLayer. Esso ha una proprietà chiamata PanRate che definisce il livello di scrolling di ogni elemento.

Capito questo, è facile dedurre come, settando il valore del PanRate uguale per tutti gli elementi, si risolva il nostro problema nel fare gli screenshot Smile

Seguite quindi i passi descritti nell’articolo, lanciate l’app nell’emulatore, fate i vostri screenshot ed assemlateli con un programma di grafica.

Buon divertimento.

Windows Phone 7 , ,

[#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] Guida allo sviluppo su WP7 per Sviluppatori Symbian

21. settembre 2011

WP_2-line_red_rgbSe siete sviluppatori Symbian e volete sviluppare su Windows Phone, non lasciatevi scappare questa guida. Essa è stata infatti sviluppata proprio per riutilizzare lo skill già acquisito nello sviluppo in Symbian per iniziare a sviluppare su Windows Phone.

 

Download Chapters 1-8 (~5Mb): DOCX- PDF

Fonte

Buona lettura Smile

Windows Phone 7 , ,