Windows Phone e la sfida di Microsoft

Print Content | More

Windowsphone7[1]

Dopo il WhyMCA ho avuto modo di farmi un’idea più precisa di Windows Phone 7 e della sfida che Microsoft lancerà ai concorrenti sul mercato, Apple e Google su tutti: non si tratta di un mercato facile, soprattutto considerando che Microsoft è una delle software house più indietro da questo punto di vista, con un sistema operativo mobile che (mi riferisco alla versione 6.5) è anni luce indietro ad iPhone e Android sotto molti aspetti, primo tra tutti la totale assenza di supporto ai touch screen di tipo capacitivo, che rende l’esperienza di utilizzo di uno smartphone Windows Mobile un inferno senza l’ausilio di un pennino o simili.

Windows Phone 7 è una rivoluzione rispetto al passato, in ogni suo aspetto, partendo dall’interfaccia grafica fino alla tecnologia su cui è basato. Il concetto che è stato ribadito più e più volte durante le varie sessioni è che Windows Phone è stato costruito attorno all’utente: ciò significa che ogni qualvolta gli sviluppatori di Windows Phone si sono trovati a dover prendere delle decisioni, hanno sempre cercato di soddisfare prima le esigenze dell’utente finale, lasciando le altre categorie (sviluppatori, produttori hardware, ecc.) in secondo piano.

Uno degli aspetti in cui si nota maggiormente questa filosofia è l’interfaccia grafica: praticamente tutto è costruito intorno all’utente e alla sua rete di contatti sia fisici che virtuali, tanto che la rubrica “tradizionale” si mischia con i propri contatti di Facebook e, oltre alle informazioni abituali (numero di telefono, indirizzo e-mail, ecc.) troviamo anche gli status update più recenti dei principali social network. Se devo essere sincero, non sono ancora in grado di valutare l’efficacia di questa gestione, bisognerà vederlo in azione per vedere quanto questa “fusione” sarà invadente o meno: un utente molto attivo sul fronte social network potrà apprezzare questo sistema, un utente invece più tradizionale potrebbe non gradire il fatto che, mentre sta cercando il numero di telefono di un amico da chiamare, si debba trovare nell’elenco anche i propri contatti di Facebook (tenendo conto che spesso e volentieri sui social network si accettano amicizie di persone con le quali magari abbiano solamente un rapporto di conoscenza e che quindi sarebbe solo un “fastidio” trovarle all’interno della propria rubrica).

Parlando dell’interfaccia grafica, all’inizio sono rimasto abbastanza scettico: devo dire però che la presentazione di Roberto Cavallini su Metro (questo è il nome in codice della UI di Windows Phone) è stata convincente e, indipendentemente dal successo che avrà questa piattaforma, bisogna dare lode a Microsoft di aver voluto realizzare qualcosa fuori dagli schemi, di mai visto prima e che non ha alcuna similitudine con le interfacce degli OS mobile della concorrenza.

Panorama

panorama[1]

Uno dei concetti che più mi ha colpito della UI è quello di “panorama”: su Windows Phone, le applicazioni (e in questa definizione includo anche tutti gli applicativi standard del telefono, come la rubrica, il pacchetto Office o le impostazioni) non usano la classica struttura a liste o a pagine nel caso in cui il numero di elementi sia maggiore di quello visualizzabile in una singola schermata, ma un panorama. Questo concetto indica il fatto che i vari elementi vengono disposti su più pagine (a scrolling orizzontale) ma senza una suddivisione fissa, quasi come se si trattasse di un’unica grande pagina in cui l’utente può muoversi a piacimento a destra e sinistra. I panorami sono realizzati sfruttando alcuni stratagemmi, che aiutano l’utente a capire che l’applicazione sta visualizzando un numero di elementi maggiore di quelli attualmente disponibili sullo schermo:

  1. L’utilizzo di immagini panoramiche: lo spostamento da una pagina all’altra comporta lo spostamento del focus su una diversa porzione della stessa foto.
  2. L’utilizzo di titoli “tagliati”: i titoli della schermata (ad esempio, la parola Impostazione nell’omonima sezione) vengono tagliati, per far capire all’utente che può spostarsi con il dito per visualizzare altri elementi.
  3. Il mostrare una parte degli elementi della pagina successiva nella pagina corrente (ad esempio, si possono mostrare nella parte destra dello schermo le prime lettere degli elementi della seconda pagina).

Questo tipo di esperienza utente, pur sfruttando paradigmi ben conosciuti (la suddivisione in pagine, lo scrolling con il dito a destra o sinistra), lo fa in una maniera nuova e originale e, visivamente, anche molto gradevole: lo scrolling da una pagina all’altra del panorama infatti non avviene in maniera simultanea, ma immagine di sfondo ed elementi della lista si muovono a velocità diverse, creando un effetto d’impatto.

Qui sotto trovate un video che mostra chiaramente un panorama control in azione:

 

 

C’è un piccolo neo in tutto ciò: non esiste attualmente un controllo ufficiale nell’SDK per Windows Phone per realizzare panorami! Sembra assurdo ma è così: nonostante Microsoft spinga parecchio per l’adozione di questo tipo di interfaccia, attualmente nella CTP di Windows Phone non è disponibile alcun tool per implementarli. La soluzione al momento è quella di ricorrere a tool non ufficiali che si possono trovare su Codeplex, come quello disponibile all’indirizzo http://phone.codeplex.com/

Lo sviluppo di un’applicazione Windows Phone

Come ho già citato più e più volte sul mio blog, Windows Phone è fortemente legato Silverlight: le applicazioni che girano sulla piattaforma Microsoft non sono altro che applicazioni SIlverlight 3 che girano out of the browser, con tutti i pregi e difetti del caso. Non mi addentro troppo in dettagli tecnici perchè la mia scarsa conoscenza di Siverlight non me lo consentirebbe, mi limito a fare qualche considerazione.

 

realizzazione-siti-web[1]

Applicazioni Windows Phone e applicazioni web

Grazie all’utilizzo di Silverlight, lo sviluppo di un’applicazione concettualmente è molto simile a quello di un sito web: le viste di una applicazione possono essere considerate le pagine di un sito; questo concetto di “navigazione” è molto importante all’interno di un’applicazione Windows Phone, perchè l’utente deve potersi spostare da una sezione all’altra dell’applicazioni (o anche in applicazioni diverse) proprio come farebbe all’interno di una pagina web, sfruttando il tasto “Back” del telefono. Ciò significa che se, ad esempio, mi trovo nella rubrica, scelgo un contatto, faccio tap sul suo status su Facebook per guardare la sua pagina e poi premo “Back”, devo poter tornare alla pagina di dettaglio del contatto senza problemi. Diventa quindi importante gestire lo stato dell’applicazione, in modo che questa possa recuperare l’informazione desiderata in qualsiasi momento e indipendentemente da cosa si è fatto prima e cosa si farà dopo.

 

 

 

La logica di programmazione

microsoft_net[1]

Tale similitudine con lo sviluppo Web semplifica moltissimo diversi aspetti, tanto che se si dovesse realizzare una applicazione statica (quindi, ad esempio, con informazioni fisse che non cambiano mai e che non vengono recuperate da una sorgente di dati esterna come un database) si potrebbe anche non scrivere una riga di codice ma lavorare solamente con Expression Blend. Addirittura, il passaggio da una schermata all’altra può essere realizzato con collegamenti ipertestuali tra gli XAML, passando anche dei parametri in query string che possono essere letti tramite codice. Il vantaggio di questo sistema è la semplificazione di molti aspetti che su altri OS sono molto più complessi da gestire (pensiamo solamente alle viste di iPhone e iPad): dall’altra, si tratta di un modo di programmare molto ad alto livello, che perde di aderenza con quello che sono i paradigmi base della programmazione (ad esempio, lo sviluppo su iPhone è fortemente legato al paradigma MVC, cosa che invece qui manca totalmente).

 

 

imm_storage

Lo storage

Windows Phone, così come le applicazioni Silverlight out of the browser, sfrutta il concetto di isolated storage, ovvero le applicazioni hanno la possibilità di scrivere e leggere file da uno spazio fisico che è esclusivo dell’applicazione e che rimane isolato dagli spazi riservati alle altre applicazioni e ai file di sistema. In questo modo, è praticamente impossibile per una applicazione, anche se scritta male, andare a danneggiare il file system del device o gli altri programmi. Tale sistema non è una novità, è infatti lo stesso adottato anche sui device Apple. Il problema principale è che attualmente non esiste alcun modo di memorizzare dati locali se non tramite file XML, con tutti i limiti del caso. Non esiste infatti ancora una versione di SQL Server Compact per Windows Phone 7, anche se è in roadmap per un rilascio successivo al lancio ufficiale: l’unica soluzione alternativa attualmente è quella di sfruttare dei servizi (WCF, ad esempio) che permettano di salvare e leggere dati su DB remoti. Il problema di questa soluzione è che il telefono deve essere sempre always connected: è vero che Windows Phone (così come l’iPhone) nasce per essere sempre connesso alla rete e avrebbe poco senso utilizzarlo senza un piano dati. E’ anche vero però che non ha molto senso che una applicazione che necessità di dati che possono stare in locale sia costretta a collegarsi sempre e comunque alla rete: non è così improbabile che un telefono si trovi, ad esempio, in una zona non coperta. In tal caso, ci sta che io non possa guardare il traffico in tempo reale o leggere le ultime notizie; un po’ meno, ad esempio, che io non possa giocare a “Chi vuol essere milionario” su Windows Phone perchè il database delle domande è in remoto.

 

 

 

 

L’hardware

htc-touch-hd[1]

Microsoft, al contrario di Apple, è focalizzata sullo sviluppo di software e non di hardware: questo comporta che, al contrario di iPhone OS, Windows Phone 7 girerà su molteplici sistemi operativi. La differenza rispetto al passato è che questa volta Microsoft ha imposto delle caratteristiche hardware minime che i device dovranno rispettare per poter essere venduti con Windows Phone: oltre a requisiti minimi di CPU e RAM, ci sono anche dei requisiti specifici sulla dotazione accessoria, come la presenza del GPS o la bussola. Questa standardizzazione tenta di colmare uno dei grandi limiti di Windows Mobile 6.5 e precedenti, i quali venivano installati su una moltitudine di device dalle caratteristiche più disparate: realizzare una applicazione, ad esempio, che sfruttasse l’accelerometro era un incubo, perchè ogni vendor implementava un suo dispositivo hardware con delle sue API proprietarie, incompatibili con le altre. Certo, la standardizzazione a cui siamo abituati nel mondo Apple è ancora lontana: su certi aspetti come la CPU e la RAM (che influiscono notevolmente sulle prestazioni delle applicazioni) i vendor hanno ancora molta libertà. L’importante è che rispettino i requisiti minimi, se poi vogliono mettere il doppio della RAM nessuno vieta loro di farlo: ciò significa che la fase di testing su device Windows Mobile non sarà ancora così agevole come sui device Apple perchè le prestazioni potranno variare molto, al contrario di quanto avviene ad esempio su iPhone (dove un test su iPhone 3G e uno su iPhone 3GS copre tutte le possibili configurazioni hardware attualmente esistenti, iPod Touch inclusi). Si tratta comunque di un passo avanti importante e bisogna dare atto a Microsoft di aver fatto un buon lavoro su questo fronte.

 

ital market 08 (3)

Il Marketplace

Il Marketplace è l’App Store di Microsoft, il luogo in cui verranno distribuite tutte le applicazioni per Windows Phone. Il Marketplace non è una novità, è stato introdotto con Windows Mobile 6.5 ma, attualmente, ha delle grosse lacune, come il limite di 10 MB per applicazione e la necessità di dover pagare una quota (oltre a quella di iscrizione) per ogni applicazione che si vuole pubblicare, gratuita o a pagamento che sia. Purtroppo non ho avuto modo di investigare per capire se questo modello di distribuzione cambierà: io credo proprio di si, almeno per certi aspetti tecnici (10 MB di limite sono ridicoli se si pensa di distribuire giochi importanti dal punto di vista del comparto audio e video come quelli mostrati nelle varie demo).

Quello che si sa per ora è che tutte le applicazioni che verranno messe sul Marketplace dovranno essere firmate digitalmente con un certificato. Tale certificato può anche avere una durata limitata nel tempo, così che uno sviluppatore possa distribuire le proprie applicazioni come una sorta di shareware: la provi per un po’ e, scaduto il termine prefissato, scegli se cancellarla oppure acquistarla. Lo scopo di questo sistema è quello di evitare, come avviene su App Store, il proliferare di doppie versioni della stessa applicazioni: la versione lite, gratuita ma limitata, e la versione completa a pagamento. Nella fase iniziale (ovvero al lancio ufficiale di Windows Phone) il Marketplace sarà l’unico punto di distribuzione di applicazioni Windows Phone: non sarà quindi possibile, ad esempio, creare un pacchetto di installazione da copiare su altri dispositivi. In una seconda fase le cose dovrebbero cambiare e mi auguro succeda presto, dato che ci sono diversi scenari in cui non si ha la necessità di distribuire un’applicazione in maniera massiva: pensiamo ad esempio un’azienda che decide di sviluppare un software di gestione interno, da installare solo sui device dei dipendenti. Tale vincolo diventa ancora più fastidioso se il modello commerciale del Marketplace non dovesse cambiare; su App Store, ad esempio, questo problema non si pone: oltre ad esserci un tipo di abbonamento all’iPhone Developer Program specifico per la distribuzione interna di applicazioni, su App Store l’unica quota che si paga è quella annuale di iscrizione al programma. Anche se la mia applicazione risultasse utile per 5 persone su tutta la terra, posso comunque distribuirla tramite App Store dato che non devo sostenere alcun costo per la sottomissione.

Conclusioni

Per concludere, l’impressione che ho avuto di Windows Phone 7 è molto positiva, grazie ad un’interfaccia grafica innovativa unita ad un ambiente di sviluppo consolidato e di alto livello. Il problema principale nel prevedere il successo di Windows Phone è che, al contrario di Apple, Microsoft si occupa di curare solo il sistema operativo: tutti gli altri fattori che influiscono sulla scelta di un device piuttosto che l’altro (tra cui un criterio importantissimo al giorno d’oggi come il design) sono nelle mani dei produttori. Se, per assurdo, Windows Phone 7 si rivelasse un OS strepitoso, migliore di Android e iPhone, ma i vendor lo installassero solamente su cellulari esteticamente orripilanti e scomodi da usare sarà molto difficile far breccia nel cuore degli utenti: può essere un discorso difficile da comprendere, soprattutto per noi sviluppatori che siamo abituati ad andare al nocciolo delle cose e a vedere solo la parte tecnica, ma gli smartphone non sono solo un oggetto con cui si telefona, si guarda la posta o si ascolta la musica, ma sono anche un modo per esprimere sè stessi e quindi il design e l’estetica rivestono un ruolo importantissimo.

D’altronde, non è così anche per i software e le applicazioni web che sviluppiamo? Possiamo realizzarli utilizzando tutte le finezze tecniche di questo mondo, ma se esteticamente sono orribili e non rispecchiano alcun principio di usabilità difficilmente l’utente finale apprezzerà il nostro lavoro.

L’altra incognita è che l’impressione che ho avuto è che Windows Phone sia stato presentato con così largo anticipo per preparare la strada e avere una buona base di applicazioni al momento del lancio, ma molte cose non sono ancora ben chiare a Microsoft stessa: durante le sessioni del WhyMCA più e più volte alle domande dei presenti (ad esempio, quella su SQL Server Compact) è stata data la fatidica risposta “è in roadmap”, oppure “è previsto, ma in un secondo momento". Su Windows Phone inoltre pesa un grosso dubbio da parte della community di sviluppatori: si stratta di un OS che uscirà questo autunno basato su Silverlight 3, quando un mese fa circa è uscito ufficialmente Silverlight 4. Perchè questo disallineamento? Voci sostengono che Microsoft stia lavorando alacremente per portare alcune delle novità di rilievo di Silverlight 4 su Windows Phone in tempo per l’uscita, ma non è nulla di confermato.

Per ora quindi è impossibile tirare delle conclusioni e dare un giudizio vero e proprio: si possono solo fare delle considerazioni, in attesa dell’uscita ufficiale prevista quest’autunno. Stay tuned :)


Isolated Storage , Metro , Microsoft , Panorama , Silverlight , WhyMCA , Windows Marketplace , Windows Phone

1 comments

Related Post

  1. #1 da Mauro Servienti Sunday May 2010 alle 01:08

    Solo un commento: parlare di ufficialità e non ufficialità di roba che sta in una CTP è un ossimoro :-)

    .m


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