1 Silverlight 4 dla Windows Phone 7Bartłomiej Zass ISV Developer Evangelist Microsoft Polska
2 Wybrane elementy Telefon – wstęp Marketplace Interfejs użytkownikaInterakcja Nawigacja Tombstoning Akcelerometr Launchers & Choosers WebBrowser Usługi lokalizacyjne Powiadomienia push Integracja z OS Media Inne
3 Windows Phone 7 Całkiem nowy początek Inna grupa docelowa niż WM 6.xKonsument: wygoda, design, platforma ZUNE Windows Phone 7 vs Windows Embedded Handheld
4 Inny nie bez powodu Interfejs użytkownika Integracjaz sieciami społecznościowymi Zupełnie nowe API Aplikacje użytkowe – Silverlight Gry – XNA (XBOX)
5 Metro
6 Metro w Windows Phone 7
7 Panorama Hub
8 Unifikacja sprzętu 800 lub 480 480 lub 320 Multimedia Rozdzielczość480x800 QVGA 320x480 HVGA Multimedia Dokładna specyfikacja Akceleracja kodeków 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 Przyciski Start, Szukaj, Wstecz Radio FM
9 Interfejs telefonu Analogiczny do przeglądarki internetowej3 przyciski Wstecz Start Wyszukiwanie
10 demo
11 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 *
12 Zasięg 30 rynków
13 Marketplace - warunki Rejestracja - 100 USD za rokStudenci 5 aplikacji bezpłatnych, kolejne 19,99 USD Model reklamowy Dowolna liczba aplikacji płatnych Rejestracja i weryfikacja konta Możliwość przetestowania w biurze Microsoft lub na ITAD
14 Marketplace - cechy Codzienna, zlokalizowana promocja Trial APIRóżne modele biznesowe Paid, freemium, reklamy, bezpłatne Różne modele płatności Karta kredytowa, billing Automatyczne aktualizacje (push) Reguły (content policies)
15 Marketplace - cechy Miesięczna wypłata Proces rejestracjiPotwierdzenie adresu Aktywacja konta – średnio 10 dni Wypłata – formularz W8B Certyfikacja – średnio 5 dni
16 Dystrybucja Dystrybucja beta Do wybranej grupy użytkowników (live ID)Deeplink przesyłany poprzez Okres beta – krótki, określony Wiele języków w jednym pliku XAP
17 Urządzenia deweloperskieKonieczne aktywne konto w Marketplace Max 3 telefony deweloperskie Studenci Max 1 telefon deweloperski Pełna aktywacja po zgłoszeniu aplikacji
18 Integracja z aplikacjąMarketplaceDetailTask ContentType: Application | Music ContentID: null (detale aktualnej), lub app ID MarketplaceHubTask MarketplaceReviewTask MarketplaceSearchTask
19 demo
20 Silverlight dla Windows PhoneBazuje na Silverlight 3 (zmodyfikowany) Elementy Silverlight 4 Dodatkowe funkcjonalności Tylko out-of-browser (większe uprawnienia)
21 PhoneApplicationServiceApp.xaml Zdarzenia globalne dla aplikacji Launching Closing Activated Deactivated
22 Capabilities WMAppManifest.xmlDeklaracja 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)
23 Capabilities – c.d. Capability Klasa lub namespace, która jej wymagaID_CAP_MEDIALIB MediaStreamSource, Microsoft.Devices.Radio, Microsoft.Xna.Framework.Media.MediaLibrary and MediaSource, Microsoft.Devices.MediaHistory ID_CAP_NETWORKING System.Net, Microsoft.Xna.Framework.GamerServices.GamerServicesComponent, WebBrowser class, Smooth Streaming Media Element (SSME) ID_CAP_PUSH_NOTIFICATION ID_CAP_SENSORS Microsoft.Devices.Sensors ID_CAP_MICROPHONE Microsoft.Xna.Framework.Audio.Microphone ID_CAP_PHONEDIALER Microsoft.Phone.Tasks ID_CAP_PUSH_NOTIFICATION Microsoft.Phone.Notification ID_CAP_WEBBROWSERCOMPONENT WebBrowser class ID_CAP_LOCATION System.Device.Location
24 Interfejs użytkownikaProsty 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
25 Themes (skórki) Domyślne zasoby globalne Projektowatnie interfejsu - wyświetlacz OLED (Organic Emitting Diode) Czerń – połowa mocy LCD Biel – trzykrotna moc LCD 30 klatek na sekundę
26 Kontrolki systemowe Menu „Application Bar” Maksymalnie 4 przyciskiMenu – rzadziej używane zadania Możliwa przezroczystość System Tray (możliwość schowania)
27 Grafika - Silverlight Kontrolka Image Źródło BitmapImageJPEG i PNG (XNA dodatkowo GIF) Źródło Build action = Resource lub Content Internet URL BitmapImage new BitmapImage(URI) ImageOpened, ImageFailed, DownloadProgress Rozmiar aplikacji vs rozmiar zdjęć Camera chooser
28 Orientacja ekranu Możliwość obrócenia ekranu Obsługa automatycznaAkcelerometr Klawiaturka Obsługa automatyczna Własne zdarzenie (dodatkowe operacje)
29 Panorama
30 Pivot
31 Efekt Tilt Efekt „pływających” przyciskówDołączany jako Attached Property ButtonBase, ListBoxItem Najcześciej PhoneApplicationFrame Możliwe włączenie dla wybranego kontenera Właściwości IsEnabled SuppressTilt
32 demo
33 Interakcja TextBox zintegrowany z Software Input ScopeTekst, URL, liczba, czas, telefon, , hasło, chat Klawiatura - opcjonalnie
34 Touch w Silverlight TouchPanel.GetCapabilities IsConnectedMaximumTouchCount 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 – Routed Events)
35 Gesty
36 Gesty Standardowe kontrolki automatycznie Silverlight Toolkit
37 demo
38 Nawigacja domyślnie w SilverlightApplication UserControl Content Content Content
39 Silverlight 3 NavigationApplication UserControl Content UserControl Frame Page 3 Page 1 Page 2 Application
40 ? Windows Phone 7 Application Frame Page 3 Page 1 Page 2 UserControl
41 Nawigacja PhoneApplicationFrame, PhoneApplicationPage Przycisk wsteczPrzełączanie między aplikacjami Możliwość nadpisania obsługi zdarzenia OnNavigating(ed)From, OnBackKeyPress e.Cancel NavigationService GoBack, CanGoBack NavigateTo GoForward – brak UriMapper
42 demo
43 lock screen Świat pełen przerwań… phone calls low battery App switchreminders App switch
44 Tombstoning Brak przetwarzania w tle Cykl życia aplikacjiDł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.
45 Tombstoning Zamrażanie aplikacji Dostępne zdarzeniaLaunched (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
46 Przywracanie stanu PhoneApplicationPage Ustawienia pojedynczej stronyOnNavigatedFrom OnNavigatingFrom OnNavigatedTo PhoneApplicationService.Current.State Dane tymczasowe (np. stan interfejsu użytkownika) Dictionary
47 Wyjątki PhotoChooserTask CameraCaptureTask MediaPlayerLauncherAddressChooserTask PhoneNumberChooserTask Multiplayer Game Invite [games] Gamer You Card [games]
48 Isolated Storage Ustawienia globalne aplikacji IsolatedStorageSettingsIsolatedStorageFile Wirtualne pliki przechowywane w pamięci flash Brak ograniczeń przestrzeni
49 demo
50 Akcelerometr +Y +X +Z Mierzy siłe przyłożoną do każdej osi -Z -X -YPrzynajmniej 1 sensor Grawitacja i inne źródła W planach kalibracja +X +Z -Y
51 Akcelerometr Microsoft.Devices.SensorsWektor X, Y, Z (zasada prawej dłoni) Wartość - twierdzenie pitagorasa 1 = 1g (przyspieszenie ziemskie) Standardowa pozycja: [0, 0, -1] Możliwe odchylenie ok. 10% Accelerometer.ReadingChanged Dispatcher!
52 demo
53 Launchers MediaPlayerLauncher PhoneCallTask PhoneNumberChooserTaskPhotoChooserTask Save AddressTask SavePhoneNumberTask SearchTask SMSComposeTask WebBrowserTask CameraCaptureTask AddressChooserTask ComposeTask MarketplaceDetailTask MarketplaceHubTask MarketplaceReviewTask MarketplaceSearchTask
54 Choosers EmailAddressChooserTask CaptureCameraTaskPhoneNumberChooserTask PhotoChooserTask
55 demo
56 Kontrolka Web Browser Zdalna i lokalna zawartośćObsługa gestów – pan, double tap, pinch Transformacje Możliwość interakcji z JavaScript Prywatność Skrypt domyślnie wyłączony Ciasteczka i cache wyizolowane
57 Silverlight -> JS javascript string out =wb.InvokeScript("runScriptStuff", arg1, arg2); javascript function runScriptStuff(arg1, arg2) { return “awesome”; }
58 JS -> Silverlight javascriptvoid wb_ScriptNotify(object s, NotifyEventArgs e) { string return = e.Value; } javascript window.external.Notify(string);
59 demo
60 Lokalizacja GPS WiFi Location services Nadajniki BTS + Dokładność- Energia - Szybkość - Zasięg Nadajniki BTS - Dokładność + Energia + Szybkość - Zasięg WiFi +/- Dokładność +/- Energia +/- Szybkość +/- Miasta Location services
61 Usługi lokalizacyjne Analogiczne API do Windows 7Kompromis pomiędzy dokładnością, czasem i energią Jednorodne API pomiędzy urządzeniami
62 A-GPS Assisted GPS System.Device.Location GeoCoordinateWatcherGeoPostitionAccuracy: High | Default PositionChanged PositionChanged udostępnia e.Position.Location Longitude (-180 – 180), Latitude ( ) VerticalAccuracy, HorizontalAccuracy - dokładność Speed - szybkość Course (0-360) - kierunek Altitude – wysokość GeoCoordinate -> GetDistanceTo
63 Bing Maps https://www.bingmapsportal.com/Bezpłatne dla rozwiązań mobilnych Usługi (SOAP, JSON, REST …) Geocode / ReverseGeocode – adresy Search – np. restaurant in Warsaw Imagery Service – grafika Route – trasy Kontrolka Bing Maps dla WP7
64 demo
65 Notyfikacje push Komunikacja inicjowana przez serwerAnalogiczne do Exchange Push Przetwarzanie po stronie serwera Oszczędza baterię i poprawia użyteczność
66 14 15 Typy notyfikacji New photos online!Seattle, WA: Sunny and 85 degrees
67 Notyfikacje push Data to tile Tile Push client Data to toast ToastOpen push channel Data to App Return URI App Send URI to server Send push data to client Your service Push service Event Send push data to URI
68 Push HttpNotificationChannel Jeden dla aplikacjiKonieczne uzupełnienie Publisher w WMAppManifest
69 Usługa push - odpowiedziStatus notyfikacji Received QueueFull Suppressed Dropped Status urządzenia Connected Temporarily Disconnected Status subskrybcji Active, Expired
70 demo
71 Kafelki Notyfikacje push ShellTileScheduleAktualizacja ikony aplikacji Minimum 1h Jednorazowo lub cyklicznie
72 Integracja z OS Launchers („uruchom i zapomnij”)Choosers („okna dialogowe”) MediaLibrary MediaHistoryTask Pictures Share Extras
73 demo
74 Wibracja Uruchamia wibrację na dany okres czasuPrzywołanie uwagi użytkownika Powiadomienia o zmianach Itp.. VibrateController vc = VibrateController.Default; vc.Start(TimeSpan.FromSeconds(3));
75 Media Obsługa mediów Ograniczenia MediaElement Dekodowanie sprzętowePlayReady DRM Ograniczenia MediaElement Tylko jeden Brak VideoBrush (przysłanianie, itp.) Radio FM
76 Integracja z XNA Dostępne wszystkie assembly oprócz:Microsoft.Xna.Framework.Game Microsoft.Xna.Framework.Graphics SoundEffect Większa wydajność niż MediaElement SoundEffect se = SoundEffect.FromStream(TitleContainer.OpenStream("hand-clap-1.wav")); soundEffectInstance = se.CreateInstance(); soundEffectInstance.IsLooped = true; soundEffectInstance.Play();
77 Integracja z XNA (2) Mikrofon RAW PCM WAVDynamicSoundEffectInstance – dźwięki dynamicznie MediaLibrary Obrazy i muzyka (bez DRM) Także zapis zdjęć (muzyki nie) Song (Song.FromUri(„”), MediaPlayer.Play(song) MathHelper, Vector, itp. GameServices
78 Integracja z XNA (3) Gesty – Microsoft.Xna.Framework.Input.Touch
79 demo
80 Inne Blokada ekranu Menu kontekstowe
81 demo
82 3/31/ :36 AM © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.