Due parole sul multitasking su Windows Phone 7 Series

header_logo Quando ho sentito, per la prima volta, la notizia relativa all’assenza del multitasking su Windows Phone 7 Series, mi sono un po’ preoccupato. Poi però, leggendo, ascoltando e ragionando sulla cosa, ho l’impressione che alcuni elementi siano stato un tantino “gonfiati” per dare risalto solo ad uno degli aspetti della cosa.

Quindi, mi piacerebbe cercare di fare un po’ di chiarezza su questa cosa.

Prima di procedere, mi preme precisare una cosa: quelle che leggerete sono mie considerazioni!

Dunque, tecnicamente parlando, multitasking e multithreading ci sono. Per quanto riguarda il multithreading, magari ne parliamo in un successivo post. Ma da dove si evince che il c’è il multitasking?
Innanzitutto, il sistema funziona quando il lock screen è attivato. L’interfaccia che “blocca” lo schermo del device, di fatto è un software. Mostra delle info, va trascinato per sbloccare lo schermo etc.
Con il lock screen attivato, l’applicazione in esecuzione prima del lock resta in running. Multitasking.

Altro esempio è lo sfogliare foto mentre si ascolta musica. Funziona. Multitasking.
Lo stesso discorso vale anche per la ricezione di chiamate, navigazione etc.

Quello che è cambiato rispetto al modello precedente è la gestione delle applicazioni di terze parti quando vanno in background. Esse vengono, di fatto, “deidratate”. E questo ha portato a dire che Windows Phone 7 Series non supporta il multitasking.

Ma, partendo dal presupposto che il focus di questo device è praticamente il pubblico consumer, quanto questa scelta pesa sullo sviluppo delle nostre applicazioni?
E’ davvero una mancanza? O, effettivamente, è un vantaggio?

Cerchiamo di capirlo insieme. Prima di farlo però, rifocalizziamoci sul target: consumer!
Su un device mobile pensato per il mercato consumer, che utilità ha un programma in esecuzione in background?

  1. notificare l’utente di qualche avvenimento: abbiamo le push notification per questo scopo
  2. eseguire operazioni di calcolo: osservazione valida su scenari business. Ma per il mercato consumer? Al costo del consumo di batteria?

Francamente non mi vengono in mente altre esigenze che giustificano il running di applicazioni in backgroung. Ricordiamoci sempre che, tali applicazioni, consumano batteria, che su un device mobile è preziosa.

Quello che è davvero importante, secondo me, è avere la possibilità di riprendere l’esecuzione delle applicazioni da dov’erano prima dell’andata in backgroung e, soprattutto, di non perdere quello che si stava facendo prima del cambio di stato.

Per quanto riguarda questi 2 aspetti, l’infrastruttura c’è e, nei prossimi post, vedremo come usarla correttamente. Molte cose potevamo farle anche a partire da Windows Mobile 5 e State and Notification Broker, ma spesso ce ne dimenticavamo Frown .

Quindi, in conclusione, il multitasking è davvero un problema?
Io la vedo più come una soluzione a tanti problemi che abbiamo oggi. Trovarsi con la batteria a terra perchè ci si è dimenticati di chiudere una applicazione (che magari sotto lascia il GPS collegato) che è andata in background, non è una bella esperienza (e parlo per esperienza personale).

Certo, da sviluppatori dobbiamo imparare a gestire questa situazione ed a pensare alle nostre applicazioni in maniera leggermente differente. Ma non è questo il bello del nostro lavoro? Wink