Template designed by
Universal Apps per Windows 8.1 e Windows Phone 8.1
Andrea Boschin – Microsoft MVP [email protected]://blog.boschin.it
Template designed by
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
Template designed by
Presentato a BUILDPresentazione 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
Template designed by
Rilasciato a BUILDUpdate : 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
Template designed by
DownloadInstallare 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
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
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
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
Template designed by
Windows developer platform
Windows API Set
Graphics Audio Media
Networking File System Input
Commerce
Sensors
.NET CLRWindows Runtime
DirectX(C++)
SilverlightXAML
(C# | VB)
Windows XAML
(C# | VB | C++)
WinJS(HTML + JS)
App Model ServicesNavigatio
n
Packaging
Contracts
Background
Store
Push
Roaming
Legend
Windows Phone Only
Windows OnlyWindows + Windows
Phone
Windows Kernel
App Data Backup
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
Template designed by
Visual Studio ToolingTemplate 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
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
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
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
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
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.pngAssets/SplashScreen.scale-140.pngAssets/SplashScreen.scale-180.png
Windows Windows Phone
100 SI SI
140 SI SI
180 SI NO
240 NO SI
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
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
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
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
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
Template designed by
Andrea Boschin – Elite Agency
Email: [email protected]
Facebook: https://www.facebook.com/thelittlegrove
Twitter: http://twitter.com/aboschin
Blog: http://blog.boschin.it
Contact me
Template designed by
brought to you by