windows phone 7 web mobile e applicazioni matteo pagani mobile software engineer twitter: @qmatteoq...
TRANSCRIPT
WINDOWS PHONE 7
Web mobile e Applicazioni
Matteo PaganiMobile Software Engineer
Twitter: @qmatteoqFacebook: http://www.facebook.com/matteo.paganiBlog: http://qmatteoq.tostring.itE-mail: [email protected]
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 APPSSilverlight 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 MARKETPLACELa 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 ESTERNOServizi 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 iPhoneWindows 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 MOBILEUna 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
DEMODexter: 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 PaganiMobile Software Engineer
Twitter: @qmatteoqFacebook: http://www.facebook.com/matteo.paganiBlog: http://qmatteoq.tostring.itE-mail: [email protected]