Windows Phone 7 - wstęp Andrzej Chybicki.

1 Windows Phone 7 - wstęp Andrzej Chybicki ...
Author: Jarosław Dziugieł
0 downloads 3 Views

1 Windows Phone 7 - wstęp Andrzej Chybicki

2 Windows Phone 7 - początkiMicrosoft o Windows Phone 7: In golf, it’s known as a “mulligan”; in schoolyard sports, it’s called a “do-over”; and in the computer industry, we say it’s a “reboot.” Dwie ścieżki programowania : - XNA -Silverlight Silverlight – platforma developerska łącząca wygodę tworzenia interfejsu, automatycznym łączeniem zdarzeń z możliwością zaawansowanego przetwarzaniem danych XNA – platforma developerska do tworzenia gier (2D i 3D), -game-loop -XBOX, PC, Zune (mobile)

3 Środowisko pracy aplikacjiKod w pełni zarządzalny przez .NET Framework Języki programowania Sugerowane rozwiązanie – C# XNA i Silverlight współdzieli niektóre biblioteki, ale nie można tworzyć projektów „mieszanych”

4 Silverlight vs. XNA Dla aplikacji użytecznych (RIA)XAML (Extensible Application Markup Language ) Interfejs użytkownika Przekazywanie zdarzeń Niektóre elementy logiczne oraz animacyjne WP7 Silverlight = Silverlight 3 – niektóre rzeczy, których nie można zrobić na telefonie + niektóre rzeczy które można zrobić tylko na telefonie 

5 XNA vs. Silverlight Gry, aplikacje medialne, animacje z interakcją z użytkownikiem wymagające zaawansowanego renderowania grafiki Wewnętrzna synchronizacja wątków odświeżania i użytkownika 2D (sprites) i 3D (models) Silverlight (vector graphics) vs. XNA (bitmap graphics) Time-steered vs. user (event) steered apps

6 Two Flavors of ApplicationsHigh performance game framework Rapid creation of multi-screen 2D and 3D games Rich content pipeline Mature, robust, widely adopted technology spanning Xbox 360, Windows, and Zune Modern XAML/event-driven application UI framework Rapid creation of visually stunning apps Metro-themed UI controls HTML/JavaScript 500,000 developers spanning Windows and web

7 Windows Phone 7 jest w chmurze!Mapy Bing (LBS) Xbox Live Windows Phone Marketplace

8 General Concept Software Architecture App ModelCloud and Integration Services Hardware Foundation UI Model General Concept

9 New Concept DESIGN: END USER COMES FIRSTPLATFORM: RICHER, DEEPER, EASIER APPS HARDWARE: FASTER TO MARKET, LESS HEAVY LIFTING

10 Metro UI

11 Hardware Foundation (in 7.0)MIX 11 3/26/2017 Hardware Foundation (in 7.0) Capacitive touch 4 or more contact points 800 Sensors A-GPS, Accelerometer, Compass, Light, Proximity, Camera 5 mega pixels or more Multimedia Common detailed specs, Codec acceleration Memory 256MB RAM or more, 8GB Flash or more GPU DirectX 9 acceleration CPU Qualcomm MSM8x Mhz or higher Hardware buttons | Back, Start, Search 480 © 2011 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.

12 Sprzęt, wymagania i usługiWielodotykowy ekran OLED (“organic light emitting diode”) Przyciski: Rozmiar ekranu: 480 x 800 (480 x 320) (160 px) Modem 3G, Wi-fi, Camera, Akcelerometr Vibration FM Radio Push Notification

13 Windows Phone Developer ToolsPhone Emulator Samples Documentation Guides Community Packaging and Verification Tools Tools Windows Phone device Packaging & Verification Tools Windows Phone Emulator myapp.xap

14 Deployment Process Develop & Debug Submit & Validate Certify & SignWindows Phone Application Deployment Service Marketplace

15 Certyfikacja aplikacji – główne filaryApplications are reliable. Applications make efficient use of resources. Applications do not interfere with the phone functionality. Applications are free of malicious software.

16 Obszary procesu certyfikacjiApplication Policies Content Policies Application Submission Requirements Technical Certification Requirements Additional Requirements for Specific Application Types Patrz materiały do wykładu

17 Application Policies – Aplikacja……musi być w pełni funkcjonalna i nie może żądać dodatkowej opłaty za udostępnienie swojej funkcjonalności, chyba że… … nie może promować planów taryfowych połączeń … nie może stanowić zagrożenia dla bezpieczeństwa telefonu oraz Marketplace … jeśli aplikacja pobiera lub zajmuje ponad 50 MB danych musi poinformować o tym użytkownika … jeśli wymaga uwierzytelniania w komunikacji peer2peer należy się upewnić że użytkownik ma ponad 13 lat

18 Application Policies (2)– Aplikacja…… może określać pozycję tylko na podstawie API ... może udostępniać lokalizację tylko za zgodą użytkownika … musi spełniać jeszcze inne wymagania : patrz materiały do wykładu

19 Content Policies Logo i znaki towaroweaplikacja może (powinna) posiadać swoje logo Może korzystać z innych znaków towarowych pod warunkiem akceptacji właściciela Nie może zawierać treści niezgodnych z prawem, w szczególności Promowanie przemocy, rasizmu, alkoholu, broni palnej i innych Treści, które ogólnie nie są obraźliwe ale mogą być uznane za takie w niektórych krajach ->treść powinna uwzględniać aspekt prawny każdego kraju w jakim MarketPlace oferuje swoje aplikacje

20 Application Submission RequirementMaksymalny rozmiar pliku XAP – 225 MB Używanie tylko API Windows Phone Zabronione jest korzystanie z metod wywołania typu Pinvoke oraz obiektów COM Nie może zawierać konfiguracji DEBUG Nie jest możliwe łączenie technologii XNA i Silverlight Microsoft.Xna.Framework.Game System.Windows.Controls Phone Capabilites czyli prawidłowy Manifest

21 Technical Certification RequirementsKompatybilność z różnymi telefonami WP 7 (2) Unexpected closure Responsywność aplikacji Operacji trwające dłużej niż 3 sekundy muszą być obsługiwane przez ProgressBar lub BusyIndicator W momencie przekazania aplikacji do MarketPlace wszystkie zdalne serwisy i zasoby aplikacji muszą być dostępne i wpływają na proces certyfikacji! Czas startu i responsywności po starcie – 5 s. i 20 s.

22 Technical Certification (2)Elementy obsługi przycisków telefonu…. Zajętość pamięci Max 90 MB RAM, dla urządzeń do 256 MB RAMU całkowitego Zaleca się użycie obiektów DeviceExtendedProperties DeviceStatus Aplikacja nie może blokować , opóźniać, przerywać odbioru połączeń telefonicznych, wiadomości SMS oraz innych zdarzeń wywoływanych z poziomu OS

23 Additional RequirementsLokalizacja Jeśli użytkownik nie życzy sobie … Aplikacje działające w tle a oszczędność baterii Aplikacje działające w tle do pobierania danych Muszą umożliwiać podgląd stanu zaawansowania pobierania oraz anulowania

24 Software ArchitectureApp Model Cloud and Integration Services Hardware Foundation UI Model Software Architecture

25 Silverlight CapabilitiesInputs Keyboard, Mouse, Touch, Ink XAML UI Core Common Controls, Text, Images, Data Binding, Page Navigation, Vector Graphics, Animation, Transformation, Styles and Templates Media Capture and Playback, VC1, WMA, MP3 Data LINQ to Objects, LINQ to XML, Isolated Storage, XML Base Class Library Generics, Collections, Cryptography, Threading Communication REST, RSS/ATOM, SOAP

26 Multitouch OOB Controls support touchTranslate touch events to mouse events ScrollViewer has built-in support for pan and flick Manipulation for all UIElements Scale Translate

27 Keyboard Silverlight TextBox integrates with the SIP (on screen keyboard) Password has a delay SIP supports input scoping Key InputScopes: Text, Url, Number, Time, TelephoneNumber, NameOrAddress

28 Media Media support H/W decode MediaStreamSource PlayReady DRMMediaElement Limitations One MediaElement only XNA sound effect API Supports polyphonic, looping wav data

29 Isolated Storage Compatible APIs with Silverlight on desktopNo quota limits Not shared No write access to Media Library, use XNA for that Use for your application settings

30 Application Model Software Architecture App ModelCloud and Integration Services Hardware Foundation UI Model Application Model

31 Activation and NavigationActivation Events Handled by the Application instance Launching, Activated, Deactivated and Closing Navigation Events Handled by each PhoneApplicationPage class OnNavigatedTo, OnNavigatedFrom, OnBackKeyPressed, OnChooserReturn, OnOrientationChanged Controlled by Hardware using Back and Home keys Software using Navigation Service

32 Application LifecycleDeveloper should check the IsApplicationInstancePreserved property to know if the application is returning from being dormant or tombstoned state. If it’s value true, then the application was in dormant state else tombstoned state. Application Lifecycle Load State!

33 Application Bar and System TrayNo integration, but does affect Layout Show:Hide using SystemTray.IsVisible Application Bar Up to 4 Buttons Menu Items (Recommended 6) Toggle Visibility .ApplicationBar.IsVisible

34 Panorama Part of the native Windows Phone look and feelPanorama is a long horizontal canvas PanoramaItem serves as a container that hosts other content and controls

35 Pivot Provides a quick way to manage views or pagesPivot is a container of pivot items PivotItem contain individual page content such as controls, grids, or links

36 Many more… Standard ControlsButtons, Image, Layout, ListBox, TextBox, Slider, Other… Bing Maps Bing Map Control, Integration with Bing Maps Services Deep Zoom Included in core run-time , Optimized to take advantage of GPU, Consumes same content as SL on desktop, Supported for Online content Web Browser Displays network and local content, Supports pan, double tap and pinch to zoom, Supports transforms & projections, Application can interact with javascript

37 Integration Services Software Architecture App ModelCloud and Integration Services Hardware Foundation UI Model Integration Services

38 Launchers & Choosers Enable applications to provide a set of common phone tasks to their users Launchers let you fire and forget SMS, , Web Browser, Dialer, Search, etc. Choosers let you fire and pick the results back Picture, Camera, Contact, etc.

39 Push Notifications

40 Types of Push NotificationsTile notifications Update tile count, title and background image Toast notifications Display a on-top-like message Raw notifications Can be used in application logic

41 Location and Services The service obtains location data from multiple sources such as GPS, Wi-Fi, and cellular Applications can access location information Allows you to create location- aware applications

42 Accelerometer +Y +X +Z Measures force applied on each axis over timeDetermine in which direction the user is moving the device Expressed as a 3-dimensional vector +Y -Y +X -X +Z -Z

43 Register Your Device Test on a physical device Register your deviceInstall, run, and debug unsigned applications Use Zune to register your device

44 Programowanie Windows 7!! Visual Studio 2010Zune software (zamiast ActiveSync) Oczywiście będą problemy z deployowaniem aplikacji na Windows Mobile (dlaczego ma być zbyt prosto?) Co trzeba zrobić aby zsynchronizować kalendarz Windows XP z Windows Phone 7? UŻYĆ GOOGLA!!

45 Pierwsza aplikacja SilverlightWindows Phone Application WMAppManifest.xml Title="SilverlightHelloPhone„ Deployowanie na emulator albo prosto do urządzenia Rozdzielczość ekranu emulatora jest taka sama jak w urządzeniu Możliwość zmiany orientacji emulatora

46 Układ plików projektu SilverlightCztery główne pliki każdego projektu: App.xaml MainPage.xaml App.xaml.cs MainPage.xaml.cs Postulat „code-behind”

47 App.xaml.cs, App.xaml oraz App.g.cs

48 MainPage.cs.xaml - > MainPage.g.csElement w Silverlight i XML Hierarchia obiektów:

49 /bin/Debug Plik XAP – spakowany, przekompilowany projekt

50 A teraz „Hello World” w XNABrak wbudowanych czcionek Czcionka jest bitmapą! Wszystko jest bitmapą! Czcionka musi być osobno zaimportowana do projektu (problemy licencyjne)

51 Game.cs – główna część projektu w XNA

52

53 Orientacja (Sliverlight)Portrait, Landscape, PortraitOrLandscape Orientacja a dynamiczne lokowanie komponentów (dynamic layout) HorizontalAlignment VerticalAlignment

54 Wynik

55 Marigin i padding Atrybuty: ActualWidth SizeChanged Loaded ActualSizeLayoutUpdated

56 Powiązywanie zdarzeń poprzez XAML

57 Wykrywanie zmiany orientacji

58 Orientacja XNA BackBuffer i jego rola BackBuffer a wydajność

59 Obsluga zmiany orientacji w XNA

60

61 Dotyk w WP7 (XNA) 4 przyciski równocześnieObsługa przez zdarzenia (Sliverlight) W XNA sprawdzanie robimy w metodzie Update (TouchPanel) TouchCollection touchLocations = TouchPanel.GetState(); State : Pressed, Moved, Released. Position ( Vector2 ) Id TouchLocation previousTouchLocation; bool success = touchLocation.TryGetPreviousLocation(out previousTouchLocation);

62 Dotyk w XNA - przykład

63 Gesty!! Tap, doubleTap, pinch, pinchComplete, fredrag, HorizontalDrag, VerticalDrag, DragComplete

64 Dotyk w WP7 (Silverlight)Low-level Zdarzenie Touch.FrameReported (XNA TouchPanel), nie zawiera gestów TouchPoint Action (Down, Move, and Up). Position (Point), Size TouchDevice High-level 3 zdarzenia w klasie UIElement ManipulationStarted, ManipulationDelta, ManipulationCompleted

65 Routed Event handling args.Handled = true;

66 Bitmapy (XNA) Definicja bitmapy w Silvelight (vector drawing, image, bitmap) a w XNA (Texture2D) BMP, JPG(S), PNG(S)

67 Bitmapy (Silverlight) W Silverlight można pobierać obrazek z URL:

68 Bitmapy (XNA)

69 Camera

70 Photo Library (XNA)

71 Photo Library Silverlight

72 Sensory w WP7 - akcelerometr

73 Akcelerometr w XNA