Web mobile e Applicazioni WINDOWS PHONE 7 Web mobile e Applicazioni Matteo Pagani Mobile Software Engineer Twitter: @qmatteoq Facebook: http://www.facebook.com/matteo.pagani Blog: http://qmatteoq.tostring.it E-mail: matteo.pagani@gaia.is.it
Agenda UI e design Il device Lo sviluppo di applicazioni Il marketplace L’accesso ai dati e al mondo esterno Le notifiche push IE Mobile Demo: client Dexter per WP7
Qualcosa di nuovo... Un taglio netto rispetto al passato
LA UI: QUESTA SCONOSCIUTA Microsoft e il design: la strana coppia
Metro Una nuova UI ispirata alla segnaletica aereoportuale e metropolitana. Al centro l’utente: su questo paragidma è stata sviluppata tutta la UI e la logica delle applicazioni OS rivolto ad un target consumer Forte integrazione con i social network
IL DEVICE
Linee guida per i vendor Per la prima volta, Microsoft ha predisposto delle linee guida per i vendor Requisiti hardware minimi e dotazione di accessori obbligatoria Presenza obbligatoria dei pulsanti Back, Start e Search
Le caratteristiche hardware Multitouch capacitivo con 4 punti di contatto Sensori: A-GPS, Accelerometro, Bussola, Luce, Prossimità Fotocamera: 5 MP Schermo: WVGA al lancio, HVGA in seguito GPU: accelerazione DirectX 9 Memoria: 256 MB Ram Storage: 8 GB CPU: ARMv7 Cortex / Scorpion
Cosa significa per gli sviluppatori? API univoca per interfacciarsi con (quasi) tutti i sensori del telefono (accelerometro, GPS, ecc.) Testing delle applicazioni più agile Prestazioni indipendenti dal device Semplicità di interfacciamento con tastiera e hardware buttons
LO SVILUPPO DI APPS Silverlight e XNA
Due ambienti diversi in un solo device
Microsoft Silverlight Applicazioni di tipo business / tradizionali / giochi vettoriali Basato su Silverlight 3 con alcuni controlli e librerie specifiche per il device Apps Windows Phone = Apps Silverlight 3 Out Of the Browser Rumors sull’allineamento a Silverlight 4 per la RTM
XNA Giochi / applicazioni multimediali / applicazioni con uso intensivo di audio e grafica Compatibilità con DirectX 9 Allineato con le versioni PC / Xbox Unica differenza: i metodi di input
Cosa cambia per il dev WM? Tutto! Programmazione solamente in C# (anche se... Template per VB in arrivo?) Architettura delle applicazioni completamente diversa Concetto di storage e di manipolazione dati completamente differente
Cosa cambia per il dev Silverlight? Pochissimo! Nella maggior parte dei casi basta adattare lo XAML Stesso approccio orientato ai servizi Stesso approccio per la gestione dei dati
Perchè Silverlight? Lo XAML è molto potente e permette di realizzare interfacce complesse e moderne. Offre uno strumento sia per gli sviluppatori (Visual Studio) che per i designer (Expression Blend). Gli sviluppatori Silverlight, in linea di massima, sono molto più sensibili ai temi di UX e design
Il marketplace La distribuzione delle applicazioni
I costi e i guadagni 99 $ all’anno Submit di applicazioni a pagamento illimitato Submit di applicazioni gratuite: max 5, poi 19,99 $ Agevolazioni per gli studenti tramite il programma Dreamspark Revenue sharing del 30% con Microsoft
Il processo di approvazione
I punti di forza del Marketplace Il concetto di trial: niente più doppioni della stessa applicazione Una API a disposizione degli sviluppatori per gestire semplicemente le trial Le applicazioni vengono firmate digitalmente da Microsoft stessa
I vincoli del Marketplace Si possono registrare massimo 3 device per lo sviluppo. Unico punto di distribuzione delle applicazioni: non è possibile distribuirle privatamente. Problematiche per il testing su larga scala e per la distribuzione aziendale Dimensione massima delle applicazioni: 2 GB Dimensione massima delle applicazione scaricabili con connessione 3G: 20 MB
L’ACCESSO AI dati E AL MONDO ESTERNO Servizi e Isolated Storage
I limiti nell’accesso ai dati Niente accesso all’esterno tramite socket Non esiste, per ora, la possibilità di utilizzare database locale (anche su Codeplex ci sono alcuni progetti open source) Non esiste il concetto di file system del device Non è possibile condividere risorse tra più applicazioni
Isolated storage File system in cui possiamo scrivere e leggere dati isolato per ogni applicazione Accesso tramite la classe IsolatedStorageFile Possibilità di utilizzare l’isolated storage per salvare facilmente i settings tramite la classe IsolatedStorageSettings Dimensione massima dello storage utilizzabile: 2 GB
Come possiamo memorizzare i dati? Servizi XML (sfruttando l’Isolated Storage) Rumors: SQL CE... Come? Dove? Quando?
Le notifiche push
No al multitasking Le applicazioni di terze parti possono essere eseguite solo una alla volta. Attenzione! No multitasking ≠ no multithread Navigazione tra le applicazioni Concetto di tombstoned
Le notifiche push Permettono di segnalare eventi all’utente anche se la nostra applicazione è chiusa.
Le tipologie di notifiche push RAW: può contenere informazioni di qualsiasi tipo, viene attivata solo se l’applicazione è aperta Toast: tipologia più invasiva, visualizza un alert sullo schermo. Può veicolare testo. Tile: aggiornamento della tile in home screen. Può contenere testo, un’immagine e un numero.
Differenze tra WP e iPhone Windows Phone iPhone Maggiore varietà di tipologie Limitate a pop up e badge Maggiore semplicità nell’architettura Elevata complessità nell’architettura Maggior semplicità di integrazione Difficoltà di integrazione a causa della diversa infrastruttura Possibilità di gestire solo notifiche remote Supporto a notifiche remote e locali QoS a carico dello sviluppatore QoS supportato nativamente Infrastruttura a pagamento (anche se prime 500 notifiche gratuite) Infrastruttura gratuita
IE MOBILE Una nuova concezione di browser mobile
Un vero Internet Explorer Non una versione realizzata ad hoc, ma una versione mobile del browser standard di Windows Basato su IE7 con alcune feature di IE8 Niente supporto ad HTML5 No plugin per Silverlight e Flash (per ora? )
WebControl per le applicazioni Controllo per includere una finestra di IE all’interno di una applicazione Possibilità di interagire con il controllo tramite Javascript Due eventi per passare comandi dall’applicazione alla pagina e viceversa
DEMO Dexter: un client WP7 e Silverlight
Cos’è Dexter? Blog engine realizzato da Ugo Lattanzi (http://www.tostring.it) Basato su ASP.NET MVC2 Espone le operazioni principali per interfacciarsi con il blog tramite un servizio WCF Hosted by Codeplex http://dexterblogengine.codeplex.com/
Cosa abbiamo visto? Un’applicazione Windows Phone che consuma un servizio WCF La semplicità nell’adattare un’applicazione Silverlight per Windows Phone Come gestire l’asincronia degli eventi
Grazie! Matteo Pagani Mobile Software Engineer Twitter: @qmatteoq Facebook: http://www.facebook.com/matteo.pagani Blog: http://qmatteoq.tostring.it E-mail: matteo.pagani@gaia.is.it