43
Template designed by What's new in Windows Phone Matteo Pagani [email protected] - @qmatteoq http://www.qmatteoq.com Template designed by

Mob03 what's new in windows phone

Embed Size (px)

Citation preview

Page 1: Mob03   what's new in windows phone

Template designed by

What's new in Windows Phone

Matteo [email protected] - @qmatteoqhttp://www.qmatteoq.com

Template designed by

Page 2: Mob03   what's new in windows phone

brought to you by

Page 3: Mob03   what's new in windows phone

Software Engineer @ Funambol

Microsoft MVP – Windows Phone Development

Nokia Developer Champion

Autore dei libri «Sviluppare applicazioni per Windows Phone 8» e «Windows Phone 8 Development Succinctly»

Membro della community DotNetLombardia e fondatore di WPDev Fusion

chi sono

Page 4: Mob03   what's new in windows phone

Universal app

Cosa cambia per lo sviluppatore?

• La gestione del layout

• I nuovi controlli XAML

• La navigazione

• La gestione dello storage

Quale percorso?

agenda

Page 5: Mob03   what's new in windows phone

Windows Developer Platform in 8.1

Windows Runtime API Set

Graphics Audio Media

Networking File System Input

Commerce

Sensors

.NET CLRWindows Runtime (WinRT)

DirectX(C++)

Windows PhoneSilverlight(C# | VB)

Windows XAML

(C# | VB | C++)

WinJS(HTML + JS)

App Model Services

Navigation

Packaging

Contracts

Background

Store(s)

Push

Roaming

Windows Kernel

App Data Backup

Legend

Windows Phone Only

Windows OnlyWindows + Windows Phone

Page 6: Mob03   what's new in windows phone

Convergenza delle API

6

WinRT API comuni

WinRT API specifiche di Windows Phone

WinRT API specifiche di

Windows

Il Windows Runtime (WinRT) è la piattaforma che consente di condividere il runtime e le API usate dalle Store app (telefono e tablet / pc)

Convergenza quasi totale in 8.1• L’obiettivo è la convergenza al 100% per gli

scenari di sviluppo• 8.0 aveva circa il 30% di API convergenti• 8.1 ha più del 90% di API convergenti

Page 7: Mob03   what's new in windows phone

• Due applicazioni separate per le due piattaforme

• Un progetto comune, che permette di condividere:• Codice

• Controlli XAML

• Asset grafici

• Template basato sul meccanismo dei linked files: i file è come se fossero presenti in entrambi i progetti, ma fisicamente sono memorizzati in una sola posizione

Welcome Universal Windows app

Page 8: Mob03   what's new in windows phone

dem

o Universal app

Page 9: Mob03   what's new in windows phone

Il layout

Page 10: Mob03   what's new in windows phone

La gestione del layout – WP 8.0

1.0x 1.6x 1.5x 2.25x

480x800 480x800 480x853 480x853

Page 11: Mob03   what's new in windows phone

La gestione del layout – WP 8.1

7”

6”

5”

4.5”

canvas virtualmente infinito

Limiti superiori di X, Y vengono calcolati a seconda del dispositivo utilizzando • dimensione del

display• risoluzione dello

schermo Funziona sia per i device attuali che per quelli futuriStesso approccio di Windows 8.1y

Page 12: Mob03   what's new in windows phone

La gestione del layout – WP 8.1

12:38

larghezza

alt

ezz

a

“raw” pixels

12:38

larghezza

alt

ezz

a

“view” pixels

diviso per ilfattore discala

Page 13: Mob03   what's new in windows phone

Stessa dimensione, diverse risoluzioni

12:38

540

96

05.5”

12:38

5.5”

720

12

80

12:38

5.5”

1080

19

20

450

800

“view” pixels

aumento fattore di scala

Page 14: Mob03   what's new in windows phone

Stessa risoluzione, diverse dimensioni

12:38

4.7”

1080

19

20

“view” pixels 368x686

12:38

5.5”

1080

19

20

450x800

12:38

6”

1080

19

20

491x873

diminuzione del fattore di scala

Page 15: Mob03   what's new in windows phone

• In alcuni scenari (ad esempio, un gioco) non è possibile mostrare più contenuto

• Il controllo ViewBox consente di applicare il vecchio approccio di 8.0

• Il contenuto all’interno del controllo viene semplicemente scalato

Il controllo ViewBox

Page 16: Mob03   what's new in windows phone

dem

o Gestire il layout

Page 17: Mob03   what's new in windows phone

I controlli

Page 18: Mob03   what's new in windows phone

Convergenza dei controlli

80% XAML condiviso 20% personalizzato

Common SignatureOptimized

DatePickerTimePicker

CommandBar

Button

CheckBox

RadioButton

ProgressBar

Slider

ToggleSwitch Hub

PivotListViewGridViewSysTray

Page 19: Mob03   what's new in windows phone

• Il controllo Panorama è stato sostituito dal controllo Hub

• E’ composto da HubSection per definire le varie sezioni

• Principale differenza con il controllo Panorama: le sezioni sono definite da un DataTemplate

Panorama

Page 20: Mob03   what's new in windows phone

<Hub>

<HubSection Header="Prima sezione">

<DataTemplate>

<Image Source="/Assets/small-logo.jpg" />

</DataTemplate>

</HubSection>

<HubSection Header="Seconda sezione">

<DataTemplate>

<StackPanel>

<TextBlock Text="Contenuto della seconda sezione" />

</StackPanel>

</DataTemplate>

</HubSection>

</Hub>

Il controllo Hub

Page 21: Mob03   what's new in windows phone

Il controllo ApplicationBar è stato sostituito dal controllo CommandBar

ApplicationBar

 <Page.BottomAppBar>        <CommandBar x:Name="commandBar">            <CommandBar.PrimaryCommands>                <AppBarButton Label="edit" Icon="Edit" />             <AppBarButton Label="favorite" Icon="Favorite" />             <AppBarSeparator />             <AppBarToggleButton Label="play" Icon="Play" />            </CommandBar.PrimaryCommands>             <CommandBar.SecondaryCommands>                <AppBarButton Label="help" Icon="Question" />            </CommandBar.SecondaryCommands>        </CommandBar>    </Page.BottomAppBar>

Page 22: Mob03   what's new in windows phone

Il controllo CommandBar

Windows Phone

Windows

Page 23: Mob03   what's new in windows phone

• E’ stato sostituito dai controlli GridView e ListView

• Il controllo GridView è ottimizzato per una visualizzazione a griglia

• Il controllo ListView è ottimizzato per una visualizzazione a lista

• Entrambi non richiedono più di creare una classe ad hoc per gestire il raggruppamento

Il controllo LongListSelector

Page 24: Mob03   what's new in windows phone

ListView e GridView

Page 25: Mob03   what's new in windows phone

Semantic Zoom

<SemanticZoom> <SemanticZoom.ZoomedInView> <!-- ListView or GridView --> <!-- ItemsSource binds to CollectionViewSource --> </SemanticZoom.ZoomedInView> <SemanticZoom.ZoomedOutView> <!-- ListView or GridView --> <!-- ItemsSource bound to CollectionViewSource, Path=CollectionGroups --> </SemanticZoom.ZoomedOutView></SemanticZoom>

Page 26: Mob03   what's new in windows phone

dem

o ListView e GridView

Page 27: Mob03   what's new in windows phone

E’ stata sostituita dal controllo StatusBar e non può essere gestito dallo XAMLMostra la Status BarWindows.UI.ViewManagement.StatusBar.GetForCurrentView().ShowAsync();

Nascondi la Status BarWindows.UI.ViewManagement.StatusBar.GetForCurrentView().HideAsync();

Imposta il colore di Background della Status BarWindows.UI.ViewManagement.StatusBar.GetForCurrentView().BackgroundColor = Colors.Red;

Imposta l’opacità della Status BarWindows.UI.ViewManagement.StatusBar.GetForCurrentView().BackgroundOpacity = 0.4;

Ottieni la grandezza della Status Bar Windows.UI.ViewManagement.StatusBar.GetForCurrentView().OccludedRect;

SystemTray

Page 28: Mob03   what's new in windows phone

I flyout sostituiscono i controlli ContextMenu e ListPicker

Flyout

Page 29: Mob03   what's new in windows phone

<Button Content="Show Menu Flyout" Margin="20, 20, 100, 20"> <Button.Flyout> <MenuFlyout> <MenuFlyoutItem Text="Option 1" /> <MenuFlyoutItem Text="Option 2" /> <MenuFlyoutSeparator /> <ToggleMenuFlyoutItem Text="Toggle Option 1" IsChecked="True" /> <ToggleMenuFlyoutItem Text="Toggle Option 2" /> </MenuFlyout> </Button.Flyout></Button>

MenuFlyout

Page 30: Mob03   what's new in windows phone

<Button> <Button.Flyout> <ListPickerFlyout x:Name="ListPickerFlyout" ItemsSource="{Binding Path=Comics}"> <ListPickerFlyout.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding Title}" /> </StackPanel> </DataTemplate> </ListPickerFlyout.ItemTemplate> </ListPickerFlyout> </Button.Flyout></Button

ListPickerFlyout

Page 31: Mob03   what's new in windows phone

La navigazione

Page 32: Mob03   what's new in windows phone

Il nuovo approccio

Window

La Window contiene un singolo Frame, che occupa il 100% dell’area.Il Frame contiene le Page, anche loro di solito dimensionate al 100% dell’area disponibile.Nelle Windows Store App per Tablet/PC, le applicazioni potrebbero avere più di una Window mentre sul telefono ne hanno solo una.

Frame

PageWindow

Page 33: Mob03   what's new in windows phone

• Si usa il metodo Navigate() della classe Frame

• E’ richiesto il tipo della pagina e non l’url

• Ora è supportato il passaggio di oggetti complessi

private void Comics_OnSelectionChanged(object sender, SelectionChangedEventArgs e)

{

Comic selectedComic = Comics.SelectedItem as Comic;

Frame.Navigate(typeof (DetailPage), selectedComic);

}

Navigazione tra le pagine

Page 34: Mob03   what's new in windows phone

• La classe Frame sostituisce il NavigationService• BackStack per accedere allo stack delle pagine

• GoBack() per tornare alla pagina precedente

• CanGoBack per sapere se ci sono pagine nello stack

• Di default viene sempre restituita una nuova istanza della pagina

• E’ possibile controllarlo tramite la proprietà NavigationCacheMode

Gestione dello stack delle pagine

Page 35: Mob03   what's new in windows phone

Gestire lo stato della pagina

Scenario comune: L’utente naviga su una pagina che permette l’inserimento di dati (Page 2). La prima volta la pagina è nuova, nessun dato è stato inserito. L’utente interagisce con la pagina e riempie i campi con dei dati. Poi naviga in avanti su una nuova pagina (Page 3) per poi tornare indietro (Page 2).

Quello che si aspetta di trovare è la pagina (Page 2) nello stesso stato di quando l’ha lasciata.Con NavigationCacheMode.Disabled, viene sempre creata una nuova istanza della pagina e quindi lo stato originale della pagina viene perso. Con NavigationCacheMode.Enabled o Required, la pagina memorizzata nella cache è riutilizzata cosicché lo stato originale della pagina venga mantenuto. Ma questo vale anche per la navigazione in Avanti sullo stesso tipo di pagina.

Page 1

Page 2

Page 3

new

new

?

Page 36: Mob03   what's new in windows phone

• Nuovo comportamento predefinito per allinearsi a Windows 8: il pulsante Back porta all’applicazione precedente

• Tutti i template di Visual Studio (tranne Blank App) contengono la classe NavigationHelper che include la logica per mantenere il comportamento tradizionale

• E’ possibile modificarlo pagina per pagina sottoscrivendosi all’evento Windows.Phone.UI.Input.HardwareButtons.BackPressed

Il pulsante Back

Page 37: Mob03   what's new in windows phone

Esempio di gestione del pulsante Back

Page 38: Mob03   what's new in windows phone

E tanto altro ancora

Email with Attachment

s

SL XAML/ Direct3D

enhancements

FileOpenPicker,

FileSavePicker

Read/Write access to SD

card

Easier NFC secure

payment

Wallet cards New application

lifec

Appointments/Calendar

API enhancement

s

Appointments/Calendar brokered UI

New background Transfer API

Sensors: Acceleromete

r, light, magnet …

Data Sense 2 WinRT HttpClient

Storage API enhancement

s

Graphics enhancements D2D/DWrite

Social RT AtomPub, Http,

Syndication (Windows.We

b)

Advertising ID

Data.XML Audio effects

Page 39: Mob03   what's new in windows phone

Attenzione!

Page 40: Mob03   what's new in windows phone

• Alcune feature non sono ancora supportate dal Windows Runtime

• Non esiste un processo di conversione automatico da un progetto già esistente

• Le librerie e i toolkit per Windows Phone 7.x / 8.0 non sono compatibili con le Windows Phone Store app

Windows Phone Store app

Page 41: Mob03   what's new in windows phone

• Migliori performance e minor consumo di memoria

• Possibilità di condividere la maggior parte del codice con Windows 8 e, in futuro, Xbox One

• Possibilità di sfruttare tutte le novità introdotte in Windows Phone 8.1

Ma…

Page 42: Mob03   what's new in windows phone

• Molte librerie hanno già una versione compatibile con il Windows Runtime (Caliburn Micro, MVVM Light, JSON.NET, ecc.)

• I principali produttori di toolkit sono al lavoro per supportare le Universal Windows app:• Telerik -> Beta disponibile su richiesta: [email protected] 

• Syncfusion

• Infragistics

Ma…

Page 43: Mob03   what's new in windows phone

Grazie a tutti per la partecipazione

Riceverete il link per il download a slide e demo via email nei prossimi giorni

Per contattarmi

[email protected]

@qmatteoq

Grazie