Win01 creare applicazioni universal per win8.1 e wp 8.1
1. Template designed by
Universal Apps per Windows 8.1 e
Windows Phone 8.1
Andrea Boschin – Microsoft MVP
andrea@Boschin.it
http://blog.boschin.it
Template designed by
2. Template designed by
Cosa vedremo?
• Novità architetturali in Windows Phone 8.1
• I punti in comune con Windows 8.1
• Come questo cambia le cose...
• Il nuovo template per le Universal Application
• Impatto sulle feature condivise: controlli, navigazione, etc...
Demo: semplice applicazione basata sul U.A.
Universal Apps per Windows 8.1 e Windows Phone 8.1
3. Template designed by
Presentato a BUILD
Presentazione ufficiale 2 Aprile 2014
Disponibilità
Consumer
• Il S.O. sarà disponibile per tutti i device che hanno la 8.0
• Presumibile rilascio per l'estate
Developer
• Disponibile da subito!
• Come
• Account Developer oppure App Studio
• Download app Preview for Developers
• Note
• Attenzione solo Sistema Operativo. No DRIVER OEM
Windows Phone 8.1
4. Template designed by
Rilasciato a BUILD
Update : introduce nuovi comportamenti
• Update «mouse-centrica»
Ad esempio:
• Miglioramenti nell’utilizzo del mouse
• Pin delle app sulla taskbar desktop
• Nuovo dropdown sulle tile quando si usa il mouse
Aggiornamento
• Download di una update (KB2919355) da Windows Update
• Non richiesto per lo sviluppo di Universal Apps
Windows 8.1 Update 1
5. Template designed by
Download
Installare Visual Studio Update 2 RC
• http://www.microsoft.com/en-us/download/details.aspx?id=42307
• Include Windows Phone SDK 8.1
ATTENZIONE: Necessario CPU con supporto SLAT
Sviluppo
6. Template designed by
Maggiore stabilita
• miglioramenti nella gestione dell’hardware
• ciclo di vita delle applicazioni
Nuove feature
• action center
• tastiera wordflow
• cortana
Convergenza tra piattaforme
• utilizzo di un runtime comune Win 8.1 e WP 8.1
• consente di usare un modello sostanzialmente uguale
• quasi il 90% di api in comune
Obbiettivi della nuova release
7. Template designed by
Windows Phone 7.5
• Kernel Windows Mobile
• Nessuna API in comune con Windows
Windows Phone 8.0
• Kernel: Windows NT Core
• 30% di API in comune con Windows
Windows Phone 8.1
• Common Windows Runtime
• 90% di API in comune con Windows
Platform convergence
Windows 8.1
Windows Phone 8.1
8. Template designed by
Developer platform condivisa
• Shared Windows XAML apps
• Shared API set
• Shared application model
• Shared live tiles
• Shared distribution model
• Shared control
Servizi applicativi condivisi
• Registrazione developer unificata
• Unico servizio di notifiche push
• Unico sistema di roaming e sincronizzazione/backup
Shared Windows Runtime
10. Template designed by
Windows 8.1 e Windows Phone 8.1
• Nuove Universal Apps
Obbiettivi
• Dare l’esperienza migliore per ciascuna piattaforma
• Accomunare il codice che non è verticale
• Gestire al meglio i casi «platform-specific»
• Usare librerie portable
Futures
• Anche per XBOX
Universal Apps
11. Template designed by
Visual Studio Tooling
Template di sviluppo Universal
• Blank app
• Hub App
• Portable class library
• Windows Runtime Component
• Direct X
Struttura di progetto predisposto per massimizzare la condivisione
Universal Apps
JS C# C++
Application SI SI SI
PCL NO SI NO
Runtime components NO SI SI
Direct X app NO NO SI
DLL NO NO SI
12. Template designed by
Windows
• Progetto per le versione Windows 8.1
Windows Phone
• Progetto per la versione Windows Phone 8.1
Shared
• Non un vero e proprio «progetto»
• E’ automaticamente «importato» da entrambi i progetti
PCL
• Libreria di tipo multiplatform
Universal Apps
WIN WP
SHARED
PCL
13. Template designed by
Referenze a assemblies
• Vanno sempre messe nel progetto «platform-specific»
• Possono essere referenziate dal progetto Shared
• Per usarla nel progetto shared
• importante che esistano versioni «simmetriche» per le due piattaforme
• diversamente si deve usare la compilazione condizionale
Esempio
• MVVM Light Toolkit
Universal Apps
14. Template designed by
Cosa posso mettere nel progetto shared?
Le cose più ovvie:
• Classi
• Stili (XAML)
• Template (XAML)
• Risorse (XAML)
Ma anche quelle meno ovvie
• User control
• Pagine
• Logiche condivise
Shared resources
15. Template designed by
Mettiamo nel progetto stili che accomunano i progetti
• lo stile delle TextBlock
• I colori di background e foreground
Risorse?
• Brush (importante avere una palette condivisa...)
• Font
• Misure (Margini, padding, etc...)
• Converters
Stili e risorse
16. Template designed by
Immagini???
Attenzione al Modern Resource Technology
• Supportato da Windows 8.1 e Windows Phone 8.1
Perchè?
• Seleziona le immagini in base alla dimensione dello schermo
• Windows 8.1 supporta: 100 – 140 – 180
• Windows Phone 8.1 supporta molte più risoluzioni
Quindi??
• Il progetto shared dovrebbe contenere solo le immagini che valgono per
entrambe le piattaforme
• Diversamente il package conterrà tutte le immagini, anche quelle non
utilizzate
Stili e risorse
Cos’è MRT
Tecnologia che seleziona la dimensione
corretta di una immagine in funzione della
dimensione dello schermo del device:
Assets/SplashScreen.scale-100.png
Assets/SplashScreen.scale-140.png
Assets/SplashScreen.scale-180.png
Windows Windows Phone
100 SI SI
140 SI SI
180 SI NO
240 NO SI
17. Template designed by
Ottimi candidati ma...
• Attenzione che siano realmente uguali!
• Spesso non è così a causa di dimensioni diverse per gli schermi
• Se sono leggermente diversi può essere utile usare stili locali per le differenze
• Uno stile in locale sistema alcuni dettagli
Template e Data template
18. Template designed by
Pagine e controlli possono far parte del progetto shared
• Valutare attentamente l’utilizzo dell’elemento
• Se è chiaramente specifico allora non ha senso metterlo nel progetto shared
Conviene sempre
• Inizialmente creare l’elemento nel progetto shared
• Gestire le differenze nel codebehind
• Oppure usare gli stili
• Se la pagina è troppo specifica cut & paste verso i progetti platform-specific
Pages and UserControls
19. Template designed by
Supporto del designer «shared»
• Il designer nella modalità shared fornisce supporto per l’edit
«platform-dropdown»
• Modifica la visualizzazione del designer
• Cambia la piattaforma di riferimento nel codice
Pages and UserControls
20. Template designed by
Controlli «platform-specific»
• Esistono solo in una delle piattaforme supportate.
• Servono a sfruttare le peculiarità della piattaforma
Controlli «optimized»
• Esistono in entrambe le piattaforme ma hanno un comportamento/aspetto diverso.
Controlli «converged»
• Esistono in entrambe le piattaforme e si comportano esattamente allo stesso modo.
Controlli
21. Template designed by
E quando le librerie non sono perfettamente compatibili?
• Capita di usare feature platform-specific in pagine «shared»
• Oppure possono essere richieste parametrizzazioni specifiche
Usare i simboli definiti in c#
• WINDOWS_APP
• WINDOWS_PHONE_APP
Oppure in C++
• WINAPI_FAMILY_PHONE_APP
Conditional compilation
#if WINDOWS_PHONE_APP
// phone specific code
#endif
#if WINDOWS_APP
// winrt specific code
#endif
22. Template designed by
Andrea Boschin – Elite Agency
Email: andrea@boschin.it
Facebook: https://www.facebook.com/thelittlegrove
Twitter: http://twitter.com/aboschin
Blog: http://blog.boschin.it
Contact me