Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Úvod do vývoja pre Windows Phone 7 II

882 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

Úvod do vývoja pre Windows Phone 7 II

  1. 1. Windows Phone 7 Igor Kulman igor@inmite.eu www.inmite.eu
  2. 2. 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
  3. 3. Opakovanie
  4. 4. 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í)
  5. 5. 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}
  6. 6. ListBox • Nastavenie, odkiaľ má použiť dáta pomocou ItemSource • Nastavenie šablóny pre jednotlivé položky pomocou ItemsTemplate
  7. 7. Š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}
  8. 8. 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}}
  9. 9. 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
  10. 10. Dnes
  11. 11. 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
  12. 12. 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#
  13. 13. 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
  14. 14. 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
  15. 15. 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”)
  16. 16. 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 ...
  17. 17. 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
  18. 18. 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)
  19. 19. 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ť!
  20. 20. 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
  21. 21. DemoProjekt z úvodnej prednášky: http://dl.dropbox.com/u/73642/Demo.zipKompletné zdrojové kódy (BitBucket): http://code.kulman.sk/mff-wp7-basics

×