I nuovi tool di sviluppo per Mango in dettaglio

Print Content | More

Come promesso, iniziamo a vedere qualche dettaglio tecnico di Mango dal punto di vista di uno sviluppatore e partiamo proprio dalla nuova versione dei tool di sviluppo, rilasciata settimana scorsa.

I tool di sviluppo si installano sopra la versione corrente dei tool, perciò non avete bisogno di disinstallarli prima di procedere: l’unico accorgimento è che, come da tradizione Microsoft, le versioni beta dei tool non sono localizzate. Se perciò avete installata sul vostro computer la versione italiana dei tool, solo in questo caso dovrete disinstallarli prima di installare la nuova beta.

One tool to rule them all

SNAGHTML212934f2

Come anticipato nel post dedicato al lancio di Mango, i nuovi tool di sviluppo hanno la caratteristica di prevedere due target diversi per i progetti mobile: Windows Phone 7.0 (che rappresenta la versione corrente installata sui device in commercio) e Windows Phone 7.1 (che rappresenta invece Mango). Questo significa che potremo utilizzare un’unica versione per lavorare su entrambe le piattaforme: in questo modo possiamo continuare a sviluppare e mantenere applicazioni da pubblicare sul Marketplace, senza però perdere la possibilità di iniziare a sperimentare con le nuove API. Si tratta sicuramente di una feature molto gradita, considerando il fatto che come saprete tool di sviluppo e macchine virtuali non vanno molto d’accordo, dato che l’emulatore è una virtual machine esso stesso.

Per i nuovi progetti, una volta selezionato uno dei template disponibili per le applicazioni Windows Phone, vi verrà chiesto il target; per i progetti già esistenti, invece, troverete la voce Upgrade to Windows Phone 7.1 facendo clic con il tasto destro sul progetto.

Occhio però che ci sono un paio di accorgimenti da tenere a mente: il primo è che il nuovo emulatore contiene l’immagine del sistema operativo di Mango. Questo significa che il testing dell’applicazione sull’emulatore non è affidabile al 100%, in quanto la versione dell’OS differisce da quella installata sui device in commercio. E’ perciò importante testare sempre le vostre applicazioni su un device reale prima di fare il submit sul Marketplace.

Il secondo accorgimento è quello di prestare attenzione ai report del Marketplace in caso di fallimento del processo di certificazione: se vi segnalano problemi che voi non riscontrate, il disclaimer “con i tool di sviluppo per Mango la mia applicazione funziona perfettamente” non è accettato, dato che le applicazioni vengono testate e certificate per Windows Phone 7.0. In quel caso, l’unica soluzione è fare il revert e tornare ai tool ufficiali, oppure procurarsi un altro computer dove fare il testing.

I nuovi template

Rispetto alla versione ufficiale dei tool, Mango introduce diversi nuovi template predefiniti tra quelli disponibili nella categoria Silverlight for Windows Phone:

  • Windows Phone 3D Graphics Application: questo template crea lo scheletro base per la realizzazione di un’applicazione che sfrutti la nuova interoperabilità tra XNA e Silverlight (ovvero la possibilità di realizzare applicazioni tradizionali in grado però di renderizzare in uno specifico controllo grafica XNA).
  • Windows Phone Audio Playback Agent: questo template crea un progetto base per la realizzazione di un background agent di tipo audio, da utilizzare nelle applicazioni che fanno uso delle nuove API per la riproduzione di audio in background.
  • Windows Phone Audio Streaming Agent: analogo a quanto sopra, solo che è dedicato alle applicazioni che fanno uso di audio in streaming.
  • Windows Phone Task Scheduler Agent: questo template viene utilizzato per lo sviluppo di background agents, ovvero la tecnologia introdotta in Mango che ci da la possibilità di eseguire operazioni in background anche quando la nostra applicazione è chiusa.

SNAGHTML212cd601

Le novità dell’emulatore

SNAGHTML231ac5a7

La nuova versione dell’emulatore non si limita però a portare con sé una immagine minimale di Mango, ma introduce anche una serie di tool che facilitano il testing di scenari che prima ci erano preclusi. Sto parlando dell’utilizzo dei sensori di movimento e dei servizi di geolocalizzazione. Questi tool sono accessibili premendo il pulsante >>, visualizzato nella barra dei comandi dell’emulatore sotto il simbolo della lente d’ingrandimento.

L’accelerometro

Per testare applicazioni che fanno uso dell’accelerometro i nuovi tool ci mettono a disposizione un render 3D di un generico device, che possiamo ruotare a piacimento usando il mouse. Le rotazioni del render 3D scateneranno gli eventi della classe Accelerometer che rilevano la posizione del device nello spazio: in questo modo, se la nostra applicazione prevede modalità di interazione basate sul movimento, saremo in grado di testarla senza avere per forza a disposizione un device reale.

In più, il tool inlcude una serie di gestures predefinite, che possiamo simulare: al momento, l’unica gesture disponibile è Shake, che simula una serie di scosse decise al device.

Nota molto importante: questo nuovo tool permette di simulare solo gli eventi scatenati dalla classe Accelerometer. Attualmente, non sono supportate le nuove classi di Mango per la gestione dei sensori di movimento, come Motion, Gyro e Compass.

image

I servizi di geolocalizzazione

I servizi di geolocalizzazione sono un’altra feature che era impossibile testare con l’emulatore, se non utilizzando il tool GPS Emulator di cui vi ho parlato nel mio articolo pubblicato su MSDN Italia. Inoltre, anche con un device reale, non era così semplice testare la localizzazione, soprattutto in caso di applicazioni che non si limitano ad una rilevazione spot della posizione (es., un client Twitter) ma che hanno bisogno di un tracciamento preciso e continuo (es., un navigatore satellitare).

Questo nuova utility integrata nei tool si comporta come GPS Emulator, ma in meglio: essendo integrata con i tool, infatti, non richiede l’utilizzo di una libreria a parte ma si aggancia direttamente alle API native (la classe GeoCoordinateWatcher) esposte dal device.

Il tool mette semplicemente a disposizione una mappa di Bing, sulla quale possiamo posizionare dei segnaposto: ogni posizionamento fa scatenare l’evento PositionChanged della classe GeoCoordinateWatcher, il quale riceverà le coordinate del segnaposto. Possiamo anche inserire più segnaposto e, disabilitando la modalità Live con l’apposito pulsante e premendo il bottone Play, simulare un percorso: in questo modo la nostra applicazione riceverà in automatico una notifica ogni qualvolta verrà simulato lo spostamento da un segnaposto all’altro.

image

Cosa ci aspetta nel futuro?

Al MIX Microsoft ha annunciato una serie di altri tool che andranno a integrarsi con l’emulatore: sto parlando di Isolated Storage Explorer, che ci permetterà di accedere all’isolated storage della nostra applicazione e navigarne il file system, e di una utility per scattare screenshot, molto utile in fase di submit sul Marketplace.

Al momento questi due tool non sono ancora presenti nella beta corrente: è probabile però che Microsoft rilasci delle beta intermedie prima della versione finale, perciò dobbiamo solo aspettare Smile


Windows Phone , Microsoft , Mango

4 comments

Related Post

  1. #1 da Emanuele Monday May 2011 alle 02:18

    Ciao Matteo,
    una domanda leggermente off-topic (perdonami). Conosci la data del Remix 2011 che si terrà a Milano?
    E sai se ci saranno sessioni riguardo a Mango?
    Grazie!

  2. #2 da Matteo Pagani Monday May 2011 alle 02:26

    Ciao Emanuele,
    al momento non si sa ancora quando si terrà il Remix 2011, anche se è probabile che non si terrà a Giugno come l'anno scorso visto che siamo già a fine Maggio e non ci sono ancora notizie da parte di Microsoft.

    E' facile invece prevedere che ci saranno sessioni su Mango: il Remix di solito fa da approfondimento ai temi del Mix e Mango è stato sicuramente uno degli argomenti principali.

    Se ti interessa approfondire le novità su Mango, in attesa del ReMix dai un occhio a questo evento:

    http://qmatteoq.tostring.it/blog/post/windows-phone-workshop-one-its-mango-time

    Potrebbe fare al caso tuo!

  3. #3 da Emanuele Monday May 2011 alle 08:29

    Grazie mille Matteo!

  4. #4 da giusepee Thursday June 2011 alle 10:24

    quindi cmq le applicazioni sono isolate, per interderci non sarà possibile mantenere lo stato online in un client di chat mentre per esempio si controlla la posta. questa è una cosa che soffro molto ora quando chatto in fb e contemporaneamente devo leggere un sms appena arrivato.


(will not be published)
(es: http://www.mysite.com)