Win01 creare applicazioni universal per win8.1 e wp 8.1

Preview:

Citation preview

Template designed by

Universal Apps per Windows 8.1 e Windows Phone 8.1

Andrea Boschin – Microsoft MVP andrea@Boschin.ithttp://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: andrea@boschin.it

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