Windows Phone 7 - wstęp Andrzej Chybicki
Windows Phone 7 - początki Microsoft 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)
Środowisko pracy aplikacji Kod 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”
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
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
Windows Phone 7 jest w chmurze! Mapy Bing (LBS) Xbox Live Windows Phone Marketplace
Sprzęt, wymagania i usługi Wielodotykowy 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
Programowanie Windows 7!! Visual Studio 2010 Zune 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!!
Pierwsza aplikacja Silverlight Windows 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
Układ plików projektu Silverlight Cztery główne pliki każdego projektu: App.xaml MainPage.xaml App.xaml.cs MainPage.xaml.cs Postulat „code-behind”
App.xaml.cs, App.xaml oraz App.g.cs
MainPage.cs.xaml - > MainPage.g.cs Element w Silverlight i XML Hierarchia obiektów:
/bin/Debug Plik XAP – spakowany, przekompilowany projekt
A teraz „Hello World” w XNA Brak wbudowanych czcionek Czcionka jest bitmapą! Wszystko jest bitmapą! Czcionka musi być osobno zaimportowana do projektu (problemy licencyjne)
Game.cs – główna część projektu w XNA
Orientacja (Sliverlight) Portrait, Landscape, PortraitOrLandscape Orientacja a dynamiczne lokowanie komponentów (dynamic layout) HorizontalAlignment VerticalAlignment
Wynik
Marigin i padding Atrybuty: ActualWidth SizeChanged ActualSize Loaded LayoutUpdated
Powiązywanie zdarzeń poprzez XAML
Wykrywanie zmiany orientacji
Orientacja XNA BackBuffer i jego rola BackBuffer a wydajność
Obsluga zmiany orientacji w XNA
Dotyk w WP7 (XNA) 4 przyciski równocześnie Obsł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);
Dotyk w XNA - przykład
Gesty!! Tap, doubleTap, pinch, pinchComplete, fredrag, HorizontalDrag, VerticalDrag, DragComplete
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
Routed Event handling
Bitmapy (XNA) Definicja bitmapy w Silvelight (vector drawing, image, bitmap) a w XNA (Texture2D) BMP, JPG(S), PNG(S)
Bitmapy (Silverlight) <Image Source="Images/Hello.png" Stretch="None" /> W Silverlight można pobierać obrazek z URL:
Bitmapy (XNA)
Camera
Photo Library (XNA)
Photo Library Silverlight
Sensory w WP7 - akcelerometr
Akcelerometr w XNA