Silverlight 4 dla Windows Phone 7

Slides:



Advertisements
Podobne prezentacje
Introduction to SystemC
Advertisements

Analiza wywołania i przebiegu przerwań w systemie Linux
Java Server Faces Tomasz Nowak.
ALLEGRO PIERWSZA GRA: WYŚCIG
Java vs C# Michał Prządka Tomasz Nowak
OOPC++ - operatory1 Operatory class complex { private: double re, im; public: complex (double r, double i = 0) { re = r; im = i; } friend complex operator+
Tworzenie ASP.NET Web Form
Strona Bierna.
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
Co nowego w Ganymede © 2008 by Jacek Pospychala; made available under the EPL v1.0.
Windows Phone 7 - wstęp Andrzej Chybicki.
Łukasz Monkiewicz.
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Networking Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Exceptions Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Threads Prezentacja.
MS SQL SERVER udział w rynku. Source: Gartner Dataquest (May 2006) Company Market Share (%) Market Share (%) Growth (%) Oracle6, ,
MS ASP.NET 2005/2006
Wstępna struktura serwisu internetowego BTW events wersja 1.0 Warszawa,
Maciej Grabek Agenda.
Tadeusz Janasiewicz IT Group, Tadeusz Janasiewicz, WSUS, IT Group, r.
Jakub Binkowski Visual C# MVP webEFS sp.j.. GET i POST.
Wstęp do programowania urządzeń z systemem. Windows Phone 7
Mariusz Maleszak Za oknami chmury Mariusz Maleszak
Najpopularniejsze aplikacje ASP.NET i PHP.
Avaya IP Office - Wersja 8
CLOUD COMPUTING.
Windows Phone 7 - wstęp Andrzej Chybicki.
KINECT – czyli z czym to się je?
Download the latest version at This message wont show up when youre presenting Windows Phone 7.
PRZELICZNIK DŁUGOŚCI w programie NetBeans IDE autorzy: Michał Mrozek i Marcin Mrugała 2012.
Krzysztof Manuszewski
Windows Phone 7 XNA Game development
Realizacja aplikacji internetowych Silverlight. Silverlight – krótka historia Silverlight 1 beta - wiosna 2007 Silverlight 2 beta – wiosna 2008 produkcja.
Microsoft Lync Online Service Overview.
Asynchroniczność w Windows 8 Jakub Binkowski. O mnie Jakub Binkowski Lead.NET Developer.
Wprowadzenie do Windows 8 Marcin Iwanowski. Agenda Podstawowe koncepcje Windows 8Wprowadzenie do Windows Run-timeWindows Store Zrozumiecie: W co Microsoft.
Zacznij, Twórz, Zarabiaj!
Programowanie Windows na przykładzie C# część 1
Click to show the screen.
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
PIO. Autor -Zofia Kruczkiewicz1 Wykład 1-część druga Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowania (część biznesowa aplikacji) iteracyjno-rozwojowy.
PIO. Autor -Zofia Kruczkiewicz1 Wykład 1-część druga Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowania (część biznesowa aplikacji) iteracyjno-rozwojowy.
Podstawy programowania
Porównanie możliwości serwerów OLAP
Adam Suwała DIY - DI.
Cz.8 Zdarzenia. Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
C# Platforma .NET CZ.3 Kuba Ostrowski.
Krótka historia asynchroniczności w.NET Jakub Binkowski.
Instalacja serwera WWW na komputerze lokalnym
KINECT – czyli z czym to się je?. Damian Zawada
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Rozdział 9: Przegląd usług sieciowych
Rozdział 3: Bezpieczeństwo w sieci opartej na systemie Windows 2000.
TYPY KOBIET WEDŁUG INTERNAUTÓW.
Elektroniczny rozdział siły hamowania
SZKOŁA DOSKONAŁA Składniki: Szczypta uśmiechniętych nauczycieli Kilkadziesiąt kilogramów szalonych nauczycieli Uśmiechnięci uczniowie Kilka sztuk ciekawych.
dla programistów Windows Phone
TROCHĘ HISTORII Marek Zając PO CO UŻYWAĆ OPENCL? Marek Zając.
1.
W ARSZTAT DO SZKOLENIA MS10264 D EVELOPING W EB A PPLICATIONS WITH M ICROSOFT V ISUAL S TUDIO 2010 Michał Kuciapski.
Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy.
Windows Phone 7. Plan prezentacji  Podstawowe informacje o Windows Phone  Platforma programistyczna  Demo.
Responsywne aplikacje w Windows 8 i.NET 4.5 Jakub Binkowski.
Platforma programistyczna  C#(VB) i XAML  Platforma programistyczna  Visual Studio 2010 Express for Windows Phone (Visual Studio 2010)  Windows Phone.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Windows 8 dla programistów Bartłomiej Zass Microsoft.
PHP (wstęp) Personal Home Page Tools (PHP Tools)
dla programistów Windows Phone
Previously discusses: different kinds of variables
Zapis prezentacji:

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

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 (content policies)

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. 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

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 (Organic Emitting Diode) 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 Ź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

Orientacja ekranu Możliwość obrócenia ekranu Obsługa automatyczna 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ściej PhoneApplicationFrame 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 – Routed Events)

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

Nawigacja domyślnie w Silverlight Application UserControl Content Content Content

Silverlight 3 Navigation Application UserControl Content UserControl Frame Page 3 Page 1 Page 2 Application

? Windows Phone 7 Application Frame Page 3 Page 1 Page 2 UserControl

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

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

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.

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 +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

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, double tap, pinch Transformacje Możliwość interakcji z JavaScript Prywatność Skrypt domyślnie wyłączony Ciasteczka i cache wyizolowane

Silverlight -> JS javascript string out = wb.InvokeScript("runScriptStuff", arg1, arg2); javascript function runScriptStuff(arg1, arg2) { return “awesome”; }

JS -> Silverlight javascript void wb_ScriptNotify(object s, NotifyEventArgs e) { string return = e.Value; } javascript window.external.Notify(string);

demo

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

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ść

14 15 Typy notyfikacji New photos online! Seattle, WA: Sunny and 85 degrees

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

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 Temporarily Disconnected 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.. VibrateController vc = VibrateController.Default; vc.Start(TimeSpan.FromSeconds(3));

Media Obsługa mediów Ograniczenia MediaElement 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 SoundEffect se = 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 <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         }       }

demo

Inne Blokada ekranu Menu kontekstowe

demo

3/31/2017 12: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.