SlideShare a Scribd company logo
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)
Metro
Metro w Windows Phone 7
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
demo
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
demo
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)
Capabilities – c.d.
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)
Panorama
Pivot
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
demo
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
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();
demo
Nawigacjadomyślnie w Silverlight Application UserControl Content Content Content
Silverlight 3 Navigation Application Application UserControl UserControl Frame Page 3 Page 1 Page 2 Content Content Content
Windows Phone 7 ? Application Application UserControl Frame Frame Page 3 Page 1 Page 2 Page 3 Page 1 Page 2
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
demo
Ś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
demo
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
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!
demo
Launchers MediaPlayerLauncher PhoneCallTask PhoneNumberChooserTask PhotoChooserTask SaveEmailAddressTask SavePhoneNumberTask SearchTask SMSComposeTask WebBrowserTask CameraCaptureTask EmailAddressChooserTask EmailComposeTask MarketplaceDetailTask MarketplaceHubTask MarketplaceReviewTask MarketplaceSearchTask
Choosers EmailAddressChooserTask CaptureCameraTask PhoneNumberChooserTask PhotoChooserTask
demo
Kontrolka Web Browser Zdalna i lokalna zawartość Obsługa gestów – pan, doubletap, pinch Transformacje Możliwość interakcji z JavaScript Prywatność Skrypt domyślnie wyłączony Ciasteczka i cache wyizolowane
Silverlight -> JS string out =  wb.InvokeScript("runScriptStuff", arg1, arg2); javascript function runScriptStuff(arg1, arg2) { return “awesome”; }
JS -> Silverlight void wb_ScriptNotify(object s, NotifyEventArgs e) { string return = e.Value; } javascript window.external.Notify(string);
demo
Lokalizacja GPS +Dokładność -Energia -Szybkość -Zasięg -Dokładność +Energia +Szybkość -Zasięg WiFi +/-Dokładność +/-Energia +/-Szybkość +/-Miasta Nadajniki BTS Location services
Usługi lokalizacyjne Analogiczne API do Windows 7 Kompromis pomiędzy dokładnością,  czasem i energią Jednorodne API pomiędzy urządzeniami
A-GPS Assisted GPS System.Device.Location GeoCoordinateWatcher GeoPostitionAccuracy: High | Default PositionChanged PositionChanged udostępnia e.Position.Location Longitude (-180 – 180), Latitude(-90 - 90) VerticalAccuracy, HorizontalAccuracy- dokładność Speed - szybkość Course (0-360) - kierunek Altitude – wysokość GeoCoordinate -> GetDistanceTo
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
demo
Notyfikacje push Komunikacja inicjowana przez serwer Analogiczne do Exchange Push Przetwarzanie po stronie serwera Oszczędza baterię i poprawia użyteczność
Typy notyfikacji 14 15 New photos online! Seattle, WA: Sunny and 85 degrees
Notyfikacje push Push client Tile Toast Open push channel Return URI Data to toast Data to tile Data to App App Send URI to server Send push data to client Push service Your service Event Send push data to URI
Push HttpNotificationChannel Jeden dla aplikacji Konieczne uzupełnienie Publisher w WMAppManifest
Usługa push - odpowiedzi Status notyfikacji Received QueueFull Suppressed Dropped Status urządzenia Connected TemporarilyDisconnected Status subskrybcji Active, Expired
demo
Kafelki Notyfikacje push ShellTileSchedule Aktualizacja ikony aplikacji Minimum 1h Jednorazowo lub cyklicznie
Integracja z OS Launchers („uruchom i zapomnij”) Choosers („okna dialogowe”) MediaLibrary MediaHistoryTask Pictures Share Extras
demo
Wibracja Uruchamia wibrację na dany okres czasu Przywołanie uwagi użytkownika Powiadomienia o zmianach Itp.. VibrateControllervc = VibrateController.Default; vc.Start(TimeSpan.FromSeconds(3));
Media Obsługa mediów Dekodowanie sprzętowe PlayReady DRM Ograniczenia MediaElement Tylko jeden Brak VideoBrush (przysłanianie, itp.) Radio FM
Integracja z XNA Dostępne wszystkie assembly oprócz: Microsoft.Xna.Framework.Game Microsoft.Xna.Framework.Graphics SoundEffect Większa wydajność niż MediaElement SoundEffectse =  SoundEffect.FromStream(TitleContainer.OpenStream("hand-clap-1.wav"));   soundEffectInstance= se.CreateInstance();   soundEffectInstance.IsLooped= true;  soundEffectInstance.Play();
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
Integracja z XNA (3) Gesty – Microsoft.Xna.Framework.Input.Touch
demo
Inne Blokada ekranu Menu kontekstowe
demo
Programowanie Windows Phone 7

More Related Content

Viewers also liked

Porqué elegir pienso Gosbi para perros
Porqué elegir pienso Gosbi para perrosPorqué elegir pienso Gosbi para perros
Porqué elegir pienso Gosbi para perros
The Yellow Pet
 
Toro Si
Toro SiToro Si
Toro Si
spacioabierto
 
North Bergen City Expenses for May 2015 - 1 of 2
North Bergen City Expenses for May 2015 - 1 of 2North Bergen City Expenses for May 2015 - 1 of 2
North Bergen City Expenses for May 2015 - 1 of 2
Hudson TV
 
Wissenschaftliche Publikationen zwischen überteuerten Verlagslizenzen und Ope...
Wissenschaftliche Publikationen zwischen überteuerten Verlagslizenzen und Ope...Wissenschaftliche Publikationen zwischen überteuerten Verlagslizenzen und Ope...
Wissenschaftliche Publikationen zwischen überteuerten Verlagslizenzen und Ope...
Christian Gutknecht
 
EcoTokri Corporate Green Gifting
EcoTokri Corporate Green GiftingEcoTokri Corporate Green Gifting
EcoTokri Corporate Green Gifting
karneshm
 
Himnos 11 may2014
Himnos  11 may2014Himnos  11 may2014
Himnos 11 may2014
chinoxd190391
 
Escolaris & web2.0
Escolaris & web2.0Escolaris & web2.0
Escolaris & web2.0
escolaris
 
Mapeamento nacional e_internacional_csem
Mapeamento nacional e_internacional_csemMapeamento nacional e_internacional_csem
Mapeamento nacional e_internacional_csemRodrigo Delfim
 
1 a.elbelumbrense.agos.2013
1 a.elbelumbrense.agos.20131 a.elbelumbrense.agos.2013
1 a.elbelumbrense.agos.2013
Anita931001
 
2 biodiversidad
2 biodiversidad2 biodiversidad
2 biodiversidad
Emmanuel Velasco
 
M&A Hitting New Highs, GamesBeat presentation
M&A Hitting New Highs, GamesBeat presentationM&A Hitting New Highs, GamesBeat presentation
M&A Hitting New Highs, GamesBeat presentation
Alina Soltys
 
Seguridad del paciente: avances para 2014
Seguridad del paciente: avances para 2014Seguridad del paciente: avances para 2014
Seguridad del paciente: avances para 2014
Estrategia para la Seguridad del Paciente del SSPA
 
Laptop configuration through dialup connection (telenor)
Laptop configuration through dialup connection (telenor)Laptop configuration through dialup connection (telenor)
Laptop configuration through dialup connection (telenor)gemini2050
 
Democracia y participación
Democracia y participaciónDemocracia y participación
Democracia y participación
Anhelo Pirula
 
Vo ip
Vo ipVo ip
Vo ip
magnuss1
 
swim for you
swim for youswim for you
swim for you
687459
 
La maquina-de-hacer-pupu
La maquina-de-hacer-pupuLa maquina-de-hacer-pupu
La maquina-de-hacer-pupu
Yizza Delgado De Vita
 

Viewers also liked (17)

Porqué elegir pienso Gosbi para perros
Porqué elegir pienso Gosbi para perrosPorqué elegir pienso Gosbi para perros
Porqué elegir pienso Gosbi para perros
 
Toro Si
Toro SiToro Si
Toro Si
 
North Bergen City Expenses for May 2015 - 1 of 2
North Bergen City Expenses for May 2015 - 1 of 2North Bergen City Expenses for May 2015 - 1 of 2
North Bergen City Expenses for May 2015 - 1 of 2
 
Wissenschaftliche Publikationen zwischen überteuerten Verlagslizenzen und Ope...
Wissenschaftliche Publikationen zwischen überteuerten Verlagslizenzen und Ope...Wissenschaftliche Publikationen zwischen überteuerten Verlagslizenzen und Ope...
Wissenschaftliche Publikationen zwischen überteuerten Verlagslizenzen und Ope...
 
EcoTokri Corporate Green Gifting
EcoTokri Corporate Green GiftingEcoTokri Corporate Green Gifting
EcoTokri Corporate Green Gifting
 
Himnos 11 may2014
Himnos  11 may2014Himnos  11 may2014
Himnos 11 may2014
 
Escolaris & web2.0
Escolaris & web2.0Escolaris & web2.0
Escolaris & web2.0
 
Mapeamento nacional e_internacional_csem
Mapeamento nacional e_internacional_csemMapeamento nacional e_internacional_csem
Mapeamento nacional e_internacional_csem
 
1 a.elbelumbrense.agos.2013
1 a.elbelumbrense.agos.20131 a.elbelumbrense.agos.2013
1 a.elbelumbrense.agos.2013
 
2 biodiversidad
2 biodiversidad2 biodiversidad
2 biodiversidad
 
M&A Hitting New Highs, GamesBeat presentation
M&A Hitting New Highs, GamesBeat presentationM&A Hitting New Highs, GamesBeat presentation
M&A Hitting New Highs, GamesBeat presentation
 
Seguridad del paciente: avances para 2014
Seguridad del paciente: avances para 2014Seguridad del paciente: avances para 2014
Seguridad del paciente: avances para 2014
 
Laptop configuration through dialup connection (telenor)
Laptop configuration through dialup connection (telenor)Laptop configuration through dialup connection (telenor)
Laptop configuration through dialup connection (telenor)
 
Democracia y participación
Democracia y participaciónDemocracia y participación
Democracia y participación
 
Vo ip
Vo ipVo ip
Vo ip
 
swim for you
swim for youswim for you
swim for you
 
La maquina-de-hacer-pupu
La maquina-de-hacer-pupuLa maquina-de-hacer-pupu
La maquina-de-hacer-pupu
 

Similar to Programowanie Windows Phone 7

Seminarium .Net CF 2004
Seminarium .Net CF 2004Seminarium .Net CF 2004
Seminarium .Net CF 2004Tomasz Cieplak
 
Seminarium - Tworzenie Aplikacji Mobilnych 2004
Seminarium - Tworzenie Aplikacji Mobilnych 2004Seminarium - Tworzenie Aplikacji Mobilnych 2004
Seminarium - Tworzenie Aplikacji Mobilnych 2004Tomasz Cieplak
 
Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8
Bartlomiej Zass
 
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
PHPCon Poland
 
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Tomasz Kopacz
 
Programowanie aplikacji dla Windows 8 (WinRT)
Programowanie aplikacji dla Windows 8 (WinRT)Programowanie aplikacji dla Windows 8 (WinRT)
Programowanie aplikacji dla Windows 8 (WinRT)
Bartlomiej Zass
 
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
Infoshare
 
Titanium - RuPy Tuesday
Titanium - RuPy TuesdayTitanium - RuPy Tuesday
Titanium - RuPy TuesdayGaldoMedia
 
Windows 8 dla twórców gier - rzut oka
Windows 8 dla twórców gier - rzut okaWindows 8 dla twórców gier - rzut oka
Windows 8 dla twórców gier - rzut oka
Rafal Czuprynski
 
Tworzenie wieloplatformowych gier mobilnych
Tworzenie wieloplatformowych gier mobilnychTworzenie wieloplatformowych gier mobilnych
Tworzenie wieloplatformowych gier mobilnych
GameDesire Company
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz
 
Tworzenie wydajnych aplikacji na platformę Windows Phone
Tworzenie wydajnych aplikacji na platformę Windows PhoneTworzenie wydajnych aplikacji na platformę Windows Phone
Tworzenie wydajnych aplikacji na platformę Windows Phone
3camp
 
Programy na smartphone'a
Programy na smartphone'aProgramy na smartphone'a
Programy na smartphone'a
AGC
 
O danych w 2016
O danych w 2016O danych w 2016
O danych w 2016
Tomasz Kopacz
 
Bezpieczeństwo aplikacji mobilnych
Bezpieczeństwo aplikacji mobilnychBezpieczeństwo aplikacji mobilnych
Bezpieczeństwo aplikacji mobilnych
SecuRing
 
Aplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychAplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowych
Tomasz Borowski
 
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PROIDEA
 
Usability aplikacji mobilnych - wykład z WUD Tour 2009
Usability aplikacji mobilnych - wykład z WUD Tour 2009Usability aplikacji mobilnych - wykład z WUD Tour 2009
Usability aplikacji mobilnych - wykład z WUD Tour 2009
Comarch SA
 

Similar to Programowanie Windows Phone 7 (20)

Seminarium .Net CF 2004
Seminarium .Net CF 2004Seminarium .Net CF 2004
Seminarium .Net CF 2004
 
Seminarium - Tworzenie Aplikacji Mobilnych 2004
Seminarium - Tworzenie Aplikacji Mobilnych 2004Seminarium - Tworzenie Aplikacji Mobilnych 2004
Seminarium - Tworzenie Aplikacji Mobilnych 2004
 
Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8
 
Silverlight i PHP
Silverlight i PHPSilverlight i PHP
Silverlight i PHP
 
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
 
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
 
Programowanie aplikacji dla Windows 8 (WinRT)
Programowanie aplikacji dla Windows 8 (WinRT)Programowanie aplikacji dla Windows 8 (WinRT)
Programowanie aplikacji dla Windows 8 (WinRT)
 
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
 
Titanium - RuPy Tuesday
Titanium - RuPy TuesdayTitanium - RuPy Tuesday
Titanium - RuPy Tuesday
 
Windows 8 dla twórców gier - rzut oka
Windows 8 dla twórców gier - rzut okaWindows 8 dla twórców gier - rzut oka
Windows 8 dla twórców gier - rzut oka
 
Tworzenie wieloplatformowych gier mobilnych
Tworzenie wieloplatformowych gier mobilnychTworzenie wieloplatformowych gier mobilnych
Tworzenie wieloplatformowych gier mobilnych
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
 
Tworzenie wydajnych aplikacji na platformę Windows Phone
Tworzenie wydajnych aplikacji na platformę Windows PhoneTworzenie wydajnych aplikacji na platformę Windows Phone
Tworzenie wydajnych aplikacji na platformę Windows Phone
 
Programy na smartphone'a
Programy na smartphone'aProgramy na smartphone'a
Programy na smartphone'a
 
Developers Club 2003
Developers Club 2003Developers Club 2003
Developers Club 2003
 
O danych w 2016
O danych w 2016O danych w 2016
O danych w 2016
 
Bezpieczeństwo aplikacji mobilnych
Bezpieczeństwo aplikacji mobilnychBezpieczeństwo aplikacji mobilnych
Bezpieczeństwo aplikacji mobilnych
 
Aplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychAplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowych
 
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
 
Usability aplikacji mobilnych - wykład z WUD Tour 2009
Usability aplikacji mobilnych - wykład z WUD Tour 2009Usability aplikacji mobilnych - wykład z WUD Tour 2009
Usability aplikacji mobilnych - wykład z WUD Tour 2009
 

More from daniel.plawgo

Itad jakub jałbrzykowski - sztuka prezentacji - gwarancja sukcesu - fixed
Itad   jakub jałbrzykowski - sztuka prezentacji - gwarancja sukcesu - fixedItad   jakub jałbrzykowski - sztuka prezentacji - gwarancja sukcesu - fixed
Itad jakub jałbrzykowski - sztuka prezentacji - gwarancja sukcesu - fixeddaniel.plawgo
 
Inauguracyjne Spotkanie Grupy Eastgroup 2009
Inauguracyjne Spotkanie Grupy Eastgroup 2009Inauguracyjne Spotkanie Grupy Eastgroup 2009
Inauguracyjne Spotkanie Grupy Eastgroup 2009daniel.plawgo
 
Spotkania organizacyjne
Spotkania organizacyjneSpotkania organizacyjne
Spotkania organizacyjnedaniel.plawgo
 
Dodanie Prezentacji Z Slide Share Do Blog Engine
Dodanie Prezentacji Z Slide Share Do Blog EngineDodanie Prezentacji Z Slide Share Do Blog Engine
Dodanie Prezentacji Z Slide Share Do Blog Engine
daniel.plawgo
 
Model Widok Kontroler
Model Widok KontrolerModel Widok Kontroler
Model Widok Kontrolerdaniel.plawgo
 
2009 3 Windows Presentation Foundation Wtf
2009 3 Windows Presentation Foundation Wtf2009 3 Windows Presentation Foundation Wtf
2009 3 Windows Presentation Foundation Wtfdaniel.plawgo
 

More from daniel.plawgo (6)

Itad jakub jałbrzykowski - sztuka prezentacji - gwarancja sukcesu - fixed
Itad   jakub jałbrzykowski - sztuka prezentacji - gwarancja sukcesu - fixedItad   jakub jałbrzykowski - sztuka prezentacji - gwarancja sukcesu - fixed
Itad jakub jałbrzykowski - sztuka prezentacji - gwarancja sukcesu - fixed
 
Inauguracyjne Spotkanie Grupy Eastgroup 2009
Inauguracyjne Spotkanie Grupy Eastgroup 2009Inauguracyjne Spotkanie Grupy Eastgroup 2009
Inauguracyjne Spotkanie Grupy Eastgroup 2009
 
Spotkania organizacyjne
Spotkania organizacyjneSpotkania organizacyjne
Spotkania organizacyjne
 
Dodanie Prezentacji Z Slide Share Do Blog Engine
Dodanie Prezentacji Z Slide Share Do Blog EngineDodanie Prezentacji Z Slide Share Do Blog Engine
Dodanie Prezentacji Z Slide Share Do Blog Engine
 
Model Widok Kontroler
Model Widok KontrolerModel Widok Kontroler
Model Widok Kontroler
 
2009 3 Windows Presentation Foundation Wtf
2009 3 Windows Presentation Foundation Wtf2009 3 Windows Presentation Foundation Wtf
2009 3 Windows Presentation Foundation Wtf
 

Programowanie Windows Phone 7

  • 1. Silverlight 4dla 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)
  • 6. Metro w Windows Phone 7
  • 8. 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
  • 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 * 100 000
  • 13. 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
  • 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 (contentpolicies)
  • 15. 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
  • 16. 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
  • 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)
  • 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 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ę
  • 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 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
  • 28. Orientacja ekranu Możliwość obrócenia ekranu Akcelerometr Klawiaturka Obsługa automatyczna Własne zdarzenie (dodatkowe operacje)
  • 30. Pivot
  • 31. 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
  • 32. demo
  • 33. Interakcja TextBox zintegrowany z Software Input Scope Tekst, URL, liczba, czas, telefon, e-mail, 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 – RoutedEvents)
  • 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. Nawigacjadomyślnie w Silverlight Application UserControl Content Content Content
  • 39. Silverlight 3 Navigation Application Application UserControl UserControl Frame Page 3 Page 1 Page 2 Content Content Content
  • 40. Windows Phone 7 ? Application Application UserControl Frame Frame Page 3 Page 1 Page 2 Page 3 Page 1 Page 2
  • 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. Świat pełen przerwań… phone calls low battery lock screen reminders App switch
  • 44. 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.
  • 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 EmailAddressChooserTask 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 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
  • 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 SaveEmailAddressTask SavePhoneNumberTask SearchTask SMSComposeTask WebBrowserTask CameraCaptureTask EmailAddressChooserTask EmailComposeTask 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, doubletap, pinch Transformacje Możliwość interakcji z JavaScript Prywatność Skrypt domyślnie wyłączony Ciasteczka i cache wyizolowane
  • 57. Silverlight -> JS string out = wb.InvokeScript("runScriptStuff", arg1, arg2); javascript function runScriptStuff(arg1, arg2) { return “awesome”; }
  • 58. JS -> Silverlight void wb_ScriptNotify(object s, NotifyEventArgs e) { string return = e.Value; } javascript window.external.Notify(string);
  • 59. demo
  • 60. Lokalizacja GPS +Dokładność -Energia -Szybkość -Zasięg -Dokładność +Energia +Szybkość -Zasięg WiFi +/-Dokładność +/-Energia +/-Szybkość +/-Miasta Nadajniki BTS 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(-90 - 90) 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. Typy notyfikacji 14 15 New photos online! Seattle, WA: Sunny and 85 degrees
  • 67. Notyfikacje push Push client Tile Toast Open push channel Return URI Data to toast Data to tile Data to App App Send URI to server Send push data to client Push service Your 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 TemporarilyDisconnected 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.. VibrateControllervc = VibrateController.Default; vc.Start(TimeSpan.FromSeconds(3));
  • 75. Media Obsługa mediów 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 SoundEffectse = 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
  • 79. demo
  • 80. Inne Blokada ekranu Menu kontekstowe
  • 81. demo