SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Windows Phone 7
   Igor Kulman

   igor@inmite.eu
   www.inmite.eu
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
Demo
Projekt z úvodnej prednášky: http://dl.dropbox.com/u/73642/Demo.zip
Kompletné zdrojové kódy (BitBucket): http://code.kulman.sk/mff-wp7-
basics

Weitere ähnliche Inhalte

Ähnlich wie Úvod do vývoja pre Windows Phone 7 II

Samuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingSamuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingDavinci software
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JSsrigi
 
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšieMatúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšieMichal Chabada
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Michal Fojtik
 
Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ RubyslavaIvan Srba
 
SecureCam Program Guide
SecureCam Program GuideSecureCam Program Guide
SecureCam Program Guideguest146c167
 
GWT Workshop
GWT WorkshopGWT Workshop
GWT Workshopseges
 
Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?Jano Suchal
 

Ähnlich wie Úvod do vývoja pre Windows Phone 7 II (12)

Samuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingSamuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud Computing
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JS
 
Mdsd
MdsdMdsd
Mdsd
 
Android libraries
Android librariesAndroid libraries
Android libraries
 
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšieMatúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010
 
Ro r
Ro rRo r
Ro r
 
Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ Rubyslava
 
SecureCam Program Guide
SecureCam Program GuideSecureCam Program Guide
SecureCam Program Guide
 
Programovanie v C++
Programovanie v C++Programovanie v C++
Programovanie v C++
 
GWT Workshop
GWT WorkshopGWT Workshop
GWT Workshop
 
Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?
 

Úvod do vývoja pre Windows Phone 7 II

  • 1. Windows Phone 7 Igor Kulman igor@inmite.eu www.inmite.eu
  • 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
  • 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. 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. ListBox • Nastavenie, odkiaľ má použiť dáta pomocou ItemSource • Nastavenie šablóny pre jednotlivé položky pomocou ItemsTemplate
  • 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. 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. 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. Dnes
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Demo Projekt z úvodnej prednášky: http://dl.dropbox.com/u/73642/Demo.zip Kompletné zdrojové kódy (BitBucket): http://code.kulman.sk/mff-wp7- basics