Úvod do vývoja pre windows phone 7 ii
TRANSCRIPT
Windows Phone 7
Opakovanie z minule• XAML• C#
Dnes• Navigácia• ApplicationBar• Lokalizácia• MVVM• Nuget• Komponenty tretích strán• Perzistencia nastavení aplikácie• Novinky vo Windows Phone 8
Opakovanie
XAML – kontajnery
Dva základné kontajnery
Grid• Možnosť rozdeliť na riadky a stĺpce• Zaberá vždy maximum plochy
Stackpanel• Vertikálna alebo horizontálna
orientácia• Zaberá vždy nutné minimum (podľa
veľkostí detí)
XAML – základné komponenty
• TextBlock, TextBox, ListBox, Button• Všetky komponenty obsahujú eventy, na
ktoré môžeme reagovať (OnClick pre Button)
• Kód reagujúci na eventy v „code behind“ súbore (*.xaml.cs)
• Priradenie do riadku a stĺpca vrámci Gridu pomocou Grid.Row a Grid.Column
• Odkaz na vlastnosti ViewModelu pomocou {Binding Name}
ListBox
• Nastavenie, odkiaľ má použiť dáta pomocou ItemSource
• Nastavenie šablóny pre jednotlivé položky pomocou ItemsTemplate
Šablóny a štýly
• Globálne umiestnené v App.xaml, lokálne v *.xaml v sekcií PhoneApplicationPage.Resources
• Štýl:<Style x:Key=“Key” TartgetType=“Type”>
<Setter Property=“..” Value=“..”></Style>
• Šablóna<DataTemplate>
…</DataTemplate>
• Odkazovanie pomocou {StaticResource key}
Konvertory
• Triedy implementujúce IValueConverter (metódy Convert a ConvertBack)
• Možnosť prevodu akehokoľvek typu na akýkoľvek iný typ
• Definované ako StaticResource• Použitie v Bindingu
{Binding Name, Converter={StaticResource MyConverter}}
ViewModel
• C# trieda, ktorej properties môžu byť použité v XAML cez Binding
• Nastavenie cez this.DataContext v *.xaml.cs
• Možnosť vygenerovať design time data v Blende
Dnes
Navigácia
• Jednotlivé „stránky“ aplikácie tvorené *.xaml súbormi
• Navigácia pomocou NavigationService.Navigate(Uri)
• Uri môže okrem cesty k *.xaml súboru obsahovať aj parametre ako URL na webe
• Pri vstupe na „stránku“ sa vykonáva OnNavigateTo – možnosť získať parametre
• Pri opustení stránky OnNavigatedFrom
ApplicationBar
• V spodnej časti stránky• Štandardný miesto na umiestnenie
ovládacích prvkov• Max 4 ikonky a max 5 textových odkazov• Nie je možné použiť Binding
• Možnosť definovať v XAML aj v C#
Lokalizácia
• Využitie *.resx súborov (.NET štandard)• Konvencie (kód jazyka alebo krajiny)
• AppResources.resx – neutrálny jazyk• AppResources.cs.resx – čeština• AppResources.en-US.resx – US
angličtina
• Jednoduché použitie v kóde• V XAML nutné použiť vlastnú triedu vo
WP7, vo WP8 súčasť šablóny nového projektu
• Možnosť testovať v emulátore
MVVM
• Preferovaný spôsob tvorby aplikácií pre WP7/8
• View• XAML súbor predstavujúci UI
•ViewModel• C# trieda obsahujúca properties, ktoré
využíva View (Binding)•Model
• Poskytuje dáta pre ViewModel
• Možnosť zlúčiť ViewModel a Model
MVVM – obojsmerný binding
• Vo View (XAML) je možné použiť obojsmerný Binding• <TextBlock Text=“{Binding Name,
Mode=TwoWay}” />• Zmena vo View sa prejaví zmenou
property vo ViewModeli• ViewModel musí implementovať
INotifyPropertyChanged
•Hodnoty prvkov vo View je možné priamo prepojiť s properties ViewModelu, nepotrebujeme s nimi manipulovať v code behind (*.xaml.cs”)
MVVM – INotifyPropertyChanged
• Musí implementovať každý ViewModel• Oznamuje View, že došlo k zmene hodnoty
property a tá sa má prekresliť
• Niektoré triedy implementujú automaticky (ObservableCollection)
• Viac na príklade ...
Nuget
• Štandardný spôsob inštalácie cudzích knižníc
• Katalóg dostupný na Nuget.org, priamo vo VS
• Jednoduchá inštalácia, update• Automatické riešenie závislostí
• Väčšina .NET knižníc dostupná na Nugete• Možnosť publikovať vlastné knižnice
Komponenty tretích strán
• SDK obsahuje len veľmi základné komponenty
• Možnosť použiť komponenty tretích strán (cez Nuget)
• Phone Toolkit• Sada komponent od zamestnancov MS• Všetky komponenty použité v systéme
ale chýbajúce v SDK
•Telerik• Platená sada komponent (99 USD)
Perzistencia nastavení aplikácie
• Dáta možné ukladať do IsolatedStorage (súbory), IsolatedStorageSettings (nastavenia)
• IsolatedStorageSettings.ApplicationSettings je klasický Dictionary<string,object>
• Automatická perzistencia• Nutnosť volať Save() po každej zmene
• Pri prístupe z viacerých vlákien nutné zamykať!
Novinky vo Windows Phone 8
• Native: DirectX, C++, and Direct3D graphics
• Speech to Text, Text to Speech, Voice Commands
• Lock Screen: Background image, counter, and text
• Nokia Maps• Camera: Lenses apps• Wallet• Apps Tracking GeoLocation in the
background• OS write access: Creating Calendar
appointments, Contacts• App2app: Custom protocols, File
associations• Bluetooth: phone to phone, Phone to
device• NFC: "Tap and Share"• Multi resolution
Projekt z úvodnej prednášky: http://dl.dropbox.com/u/73642/Demo.zipKompletné zdrojové kódy (BitBucket): http://code.kulman.sk/mff-wp7-basics
Demo