Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Silverlight 4 dla Windows Phone 7

Podobne prezentacje


Prezentacja na temat: "Silverlight 4 dla Windows Phone 7"— Zapis prezentacji:

1 Silverlight 4 dla Windows Phone 7
Bartłomiej Zass ISV Developer Evangelist Microsoft Polska

2 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

3 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

4 Inny nie bez powodu Interfejs użytkownika Integracja
z 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 internetowej
3 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 rok
Studenci 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 API
Róż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 rejestracji
Potwierdzenie 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 deweloperskie
Konieczne 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 Phone
Bazuje na Silverlight 3 (zmodyfikowany) Elementy Silverlight 4 Dodatkowe funkcjonalności Tylko out-of-browser (większe uprawnienia)

21 PhoneApplicationService
App.xaml Zdarzenia globalne dla aplikacji Launching Closing Activated Deactivated

22 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)

23 Capabilities – c.d. Capability Klasa lub namespace, która jej wymaga
ID_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ż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

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 przyciski
Menu – rzadziej używane zadania Możliwa przezroczystość System Tray (możliwość schowania)

27 Grafika - Silverlight Kontrolka Image Źródło BitmapImage
JPEG 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 automatyczna
Akcelerometr Klawiaturka Obsługa automatyczna Własne zdarzenie (dodatkowe operacje)

29 Panorama

30 Pivot

31 Efekt Tilt Efekt „pływających” przycisków
Dołą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 Scope
Tekst, URL, liczba, czas, telefon, , hasło, chat Klawiatura - opcjonalnie

34 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 – Routed Events)

35 Gesty

36 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();

37 demo

38 Nawigacja domyślnie w Silverlight
Application UserControl Content Content Content

39 Silverlight 3 Navigation
Application 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 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

42 demo

43 lock screen Świat pełen przerwań… phone calls low battery App switch
reminders App switch

44 Tombstoning Brak przetwarzania w tle Cykl życia aplikacji
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.

45 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

46 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

47 Wyjątki PhotoChooserTask CameraCaptureTask MediaPlayerLauncher
AddressChooserTask PhoneNumberChooserTask Multiplayer Game Invite [games] Gamer You Card [games]

48 Isolated Storage Ustawienia globalne aplikacji IsolatedStorageSettings
IsolatedStorageFile 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 -Y
Przynajmniej 1 sensor Grawitacja i inne źródła W planach kalibracja +X +Z -Y

51 Akcelerometr Microsoft.Devices.Sensors
Wektor 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 PhoneNumberChooserTask
PhotoChooserTask Save AddressTask SavePhoneNumberTask SearchTask SMSComposeTask WebBrowserTask CameraCaptureTask AddressChooserTask ComposeTask MarketplaceDetailTask MarketplaceHubTask MarketplaceReviewTask MarketplaceSearchTask

54 Choosers EmailAddressChooserTask CaptureCameraTask
PhoneNumberChooserTask 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 javascript
void 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 7
Kompromis pomiędzy dokładnością, czasem i energią Jednorodne API pomiędzy urządzeniami

62 A-GPS Assisted GPS System.Device.Location GeoCoordinateWatcher
GeoPostitionAccuracy: 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 serwer
Analogiczne 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 Toast
Open 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 aplikacji
Konieczne uzupełnienie Publisher w WMAppManifest

69 Usługa push - odpowiedzi
Status notyfikacji Received QueueFull Suppressed Dropped Status urządzenia Connected Temporarily Disconnected Status subskrybcji Active, Expired

70 demo

71 Kafelki Notyfikacje push ShellTileSchedule
Aktualizacja 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 czasu
Przywoł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ętowe
PlayReady 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 WAV
DynamicSoundEffectInstance – 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
<Grid x:Name="ContentPanel" Grid.Row="1" ManipulationCompleted="ContentPanel_ManipulationCompleted"> TouchPanel.EnabledGestures = GestureType.Pinch | GestureType.Hold | GestureType.DoubleTap; private void ContentPanel_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e) {     while (TouchPanel.IsGestureAvailable)     {         GestureSample gesture = TouchPanel.ReadGesture();          if (gesture.GestureType == GestureType.Pinch)         {             // Do something with pinch         }       }

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.


Pobierz ppt "Silverlight 4 dla Windows Phone 7"

Podobne prezentacje


Reklamy Google