820 likes | 1.01k Views
Silverlight 4 dla Windows Phone 7. Bartłomiej Zass. ISV Developer Evangelist. Microsoft Polska. Wybrane elementy. Telefon – wstęp Marketplace Interfejs użytkownika Interakcja Nawigacja Tombstoning Akcelerometr. Launchers & Choosers WebBrowser Usługi lokalizacyjne
E N D
Silverlight 4dla Windows Phone 7 • Bartłomiej Zass • ISV Developer Evangelist • Microsoft Polska
Wybrane elementy • Telefon – wstęp • Marketplace • Interfejs użytkownika • Interakcja • Nawigacja • Tombstoning • Akcelerometr • Launchers & Choosers • WebBrowser • Usługi lokalizacyjne • Powiadomienia push • Integracja z OS • Media • Inne
Windows Phone 7 • Całkiem nowy początek • Inna grupa docelowa niż WM 6.x • Konsument: wygoda, design, platforma • ZUNE • Windows Phone 7 vs Windows Embedded Handheld
Inny nie bez powodu • Interfejs użytkownika • Integracja z sieciami społecznościowymi • Zupełnie nowe API • Aplikacje użytkowe – Silverlight • Gry – XNA (XBOX)
Panorama Hub
Unifikacja sprzętu Multimedia Dokładna specyfikacja Akceleracja kodeków Rozdzielczość 480x800 QVGA 320x480 HVGA 800 lub 480 Ekr. pojemnościowy 4 lub więcej punktów Pamięć 256MB RAM lub więcej 8GB flash lub więcej Sensory A-GPS, Akcelerometr, Kompas, Światło, Czujnik zbliżeniowy GPU Akceleracja DirectX 9 Aparat 5 mega pixeli lub więcej 480 lub 320 Radio FM Przyciski Start, Szukaj, Wstecz
Interfejs telefonu • Analogiczny do przeglądarki internetowej • 3 przyciski • Wstecz • Start • Wyszukiwanie
Marketplace • Sklep / katalog z aplikacjami, grami i muzyką • Na każdym telefonie (domyślnie jako quickstart) • Jedyna możliwość wgrania aplikacji • Dobry pomysł na zarobek • 70% zysków ze sprzedaży • Globalny rynek • iPhone’owi milionerzy = 1 USD * 100 000
Zasięg 30 rynków
Marketplace - warunki • Rejestracja - 100 USD za rok • Studenci • 5 aplikacji bezpłatnych, kolejne 19,99 USD • Model reklamowy • Dowolna liczba aplikacji płatnych • http://create.msdn.com • Rejestracja i weryfikacja konta • Możliwość przetestowania w biurze Microsoft lub na ITAD
Marketplace - cechy • Codzienna, zlokalizowana promocja • Trial API • Różne modele biznesowe • Paid, freemium, reklamy, bezpłatne • Różne modele płatności • Karta kredytowa, billing • Automatyczne aktualizacje (push) • Reguły (contentpolicies)
Marketplace - cechy • Miesięczna wypłata • Proces rejestracji • Potwierdzenie adresu e-mail • Aktywacja konta – średnio 10 dni • Wypłata – formularz W8B • Certyfikacja – średnio 5 dni
Dystrybucja • Dystrybucja beta • Do wybranej grupy użytkowników (live ID) • Deeplink przesyłany poprzez e-mail • Okres beta – krótki, określony • Wiele języków w jednym pliku XAP
Urządzenia deweloperskie • Konieczne aktywne konto w Marketplace • Max 3 telefony deweloperskie • Studenci • Max 1 telefon deweloperski • Pełna aktywacja po zgłoszeniu aplikacji
Integracja z aplikacją • MarketplaceDetailTask • ContentType: Application | Music • ContentID: null (detale aktualnej), lub app ID • MarketplaceHubTask • MarketplaceReviewTask • MarketplaceSearchTask
Silverlight dla Windows Phone • Bazuje na Silverlight 3 (zmodyfikowany) • Elementy Silverlight 4 • Dodatkowe funkcjonalności • Tylko out-of-browser (większe uprawnienia)
PhoneApplicationService • App.xaml • Zdarzenia globalne dla aplikacji • Launching • Closing • Activated • Deactivated
Capabilities • WMAppManifest.xml • Deklaracja zapotrzebowania na konkretną funkcję • Bezpieczeństwo! • Marketplace • Informacje o aplikacji • Ostrzeżenie podczas instalacji • Ostrzeżenie, kiedy funkcja zostanie wywołana • UnauthorizedException (brak API do sprawdzania)
Interfejs użytkownika • Prosty i elegancki • Ekran pojemnościowy (wielkość!) • Skórki • Ciemna • Jasna (bateria!) • Kolor akcentu - wiodący • Automatyczne skinowanie kontrolek wbudowanych • Możliwość nadpisania każdego elementu skórki
Themes (skórki) • Domyślne zasoby globalne • http://msdn.microsoft.com/en-us/library/ff769552(VS.92).aspx • Projektowatnie interfejsu - wyświetlacz • OLED (OrganicEmittingDiode) • Czerń – połowa mocy LCD • Biel – trzykrotna moc LCD • 30 klatek na sekundę
Kontrolki systemowe • Menu „Application Bar” • Maksymalnie 4 przyciski • Menu – rzadziej używane zadania • Możliwa przezroczystość • System Tray (możliwość schowania)
Grafika - Silverlight • Kontrolka Image • JPEG i PNG (XNA dodatkowo GIF) • Źródło • Buildaction = Resource lub Content • Internet URL • BitmapImage • newBitmapImage(URI) • ImageOpened, ImageFailed, DownloadProgress • Rozmiar aplikacji vs rozmiar zdjęć • Camerachooser
Orientacja ekranu • Możliwość obrócenia ekranu • Akcelerometr • Klawiaturka • Obsługa automatyczna • Własne zdarzenie (dodatkowe operacje)
Efekt Tilt • Efekt „pływających” przycisków • Dołączany jako Attached Property • ButtonBase, ListBoxItem • NajcześciejPhoneApplicationFrame • Możliwe włączenie dla wybranego kontenera • Właściwości • IsEnabled • SuppressTilt
Interakcja • TextBox zintegrowany z Software Input Scope • Tekst, URL, liczba, czas, telefon, e-mail, hasło, chat • Klawiatura - opcjonalnie
Touch w Silverlight • TouchPanel.GetCapabilities • IsConnected • MaximumTouchCount • TouchPanel.GetState() • Niskopoziomowo – Touch.FrameReported • GetTouchPoints • GetPrimaryTouchPoint i args.SuspendMousePromotionUntilTouchUp() • TouchPoint -> TouchDevice.DirectlyOver • Zdarzenia Manipulation (max 2 punkty) • ManipulationStarted, ManipulationDelta, ManipulationCompleted • ManipulationDeltaEventArgs– Velocities, FinalVelocities LinearVelocity, ExpansionVelocity • Dla kontrolki (sender) • Dla kontenera (args.OriginalSource – RoutedEvents)
Gesty • Standardowe kontrolki automatycznie • Silverlight Toolkit <Grid x:Name="LayoutRoot" Background="Transparent"> <toolkit:GestureService.GestureListener> <toolkit:GestureListener x:Name="gl" /> </toolkit:GestureService.GestureListener> </Grid> • XNA Gestures • ManipulationCompleted • TouchPanel.ReadGesture();
Nawigacjadomyślnie w Silverlight Application UserControl Content Content Content
Silverlight 3 Navigation Application Application UserControl UserControl Frame Page 1 Content Page 2 Content Page 3 Content
Windows Phone 7 ? Application Application UserControl Frame Frame Page 1 Page 1 Page 2 Page 2 Page 3 Page 3
Nawigacja • PhoneApplicationFrame, PhoneApplicationPage • Przycisk wstecz • Przełączanie między aplikacjami • Możliwość nadpisania obsługi zdarzenia • OnNavigating(ed)From, OnBackKeyPress • e.Cancel • NavigationService • GoBack, CanGoBack • NavigateTo • GoForward – brak • UriMapper
Świat pełen przerwań… phone calls low battery lock screen reminders App switch
Tombstoning • Brak przetwarzania w tle • Długotrwałe obliczenia – chmura • Aplikacja nigdy nie działa w tle – system ją zatrzymuje • Cykl życia aplikacji • Running • Closing • Deactivating • Activating • Stan aplikacji • Stan wizualny – focus, scroll, itp.
Tombstoning • Zamrażanie aplikacji • Dostępne zdarzenia • Launched (uruchomienie) • Closed (przycisk back) • Deactivated (przycisk start, telefon, sms, …) • Activated (przycisk back po wyjściu z aplikacji) • Debugowanie • Ponownie F5 w ciągu 10 sekund
Przywracanie stanu • PhoneApplicationPage • Ustawienia pojedynczej strony • OnNavigatedFrom • OnNavigatingFrom • OnNavigatedTo • PhoneApplicationService.Current.State • Dane tymczasowe (np. stan interfejsu użytkownika) • Dictionary<string, object> • Wyłącznie obiekty serializowalne • Publiczny bezparametrowy konstruktor
Wyjątki • PhotoChooserTask • CameraCaptureTask • MediaPlayerLauncher • EmailAddressChooserTask • PhoneNumberChooserTask • Multiplayer Game Invite [games] • Gamer You Card [games]
Isolated Storage • Ustawienia globalne aplikacji • IsolatedStorageSettings • IsolatedStorageFile • Wirtualne pliki przechowywane w pamięci flash • Brak ograniczeń przestrzeni
Akcelerometr +Y Mierzy siłe przyłożoną do każdej osi -Z -X Przynajmniej 1 sensor Grawitacja i inne źródła W planach kalibracja +X +Z -Y