Windows Phone 7

Download Report

Transcript Windows Phone 7

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