BETA
Aby się zalogować, najpiew wybierz portal.
Aby się zarejestrować, najpiew wybierz portal.
Podaj słowa kluczowe
Słowa kluczowe muszą mieć co najmniej 3 sąsiadujące znaki alfanumeryczne
Pole zawiera niedozwolone znaki

Baza wiedzy











WP7 dla programistów. Część 1 - Hello World

06-02-2011 20:58 | Maciej Grabek
Pierwszy z serii artykułów poświęconych platformie Windows Phone 7 od strony możliwości dla programistów. Pierwszy odcinek tradycyjnie poświęcony będzie Hello World.

Wstęp

Zapraszam do lektury cyklu poświęconego nowej platformie mobilnej firmy Microsoft, jaką jest Windows Phone 7. Mieliśmy już okazję zapoznać się z tą platformą od strony użytkownika końcowego. Dominik Trojnar w swoich artykułach wprowadził nas w arkana nowego systemu, przedstawił sposób konfigurowania urządzenia oraz możliwość synchronizacji urządzenia oraz jego kontroli przy pomocy Zune. Ja natomiast postaram się przedstawić możliwości tego systemu z punktu widzenia programisty.

Artykuł ten nawiązuje do analogicznej serii webcastów, które będą ukazywały się równolegle na portalu Channel 9.

Odcinek 1

Platforma dla progamistów.

Windows Phone 7 wspiera dwie platformy programistyczne. Pierwszą z nich jest nieco zmodyfikowana wersja Silverlight 3. Dzięki temu każdy, kto do tej pory miał styczność z tą technologią, bez większych przeszkód może zacząć tworzyć aplikacje również na Windows Phone 7. Mobilna wersja Silverlight dysponuje kilkoma kontrolkami, których nie znajdziemy w "pełnej" wersji. Należą do nich między innymi panorama i pivot, którym przyjrzymy się bliżej w kolejnych odcinkach cyklu. Dodatkową zaletą tej technologii jest fakt, że możemy używać również Silverlight For Windows Phone Toolkit znajdujący się na codeplex, który dodatkowo rozszerza paletę dostępnych kontrolek.

XNA jest drugą platformą, przy pomocy której możemy tworzyć aplikacje na WP7. Jest to czwarta wersja tego popularnego frameworka. Z racji tego, że programujemy urządzenie mobilne mamy tu do czynienia z pewnymi ograniczeniami. Jednakże nie są one dokuczliwe i dotyczą między innymi implementacji własnych shaderów. Istotny jest fakt, że możliwości obu tych platform można ze sobą łączyć, tworząc w ten sposób jeszcze ciekawsze dla użytkownika aplikacje. Temat ten będzie poruszony w oddzielnym odcinku tak, abym mógł przedstawić to zagadnienie w całości.

Narzędzia

Zanim zaczniemy przygodę z Windows Phone 7 należy zdobyć do tego odpowiednie narzędzia. Są one w pełni bezpłatne i dostępne do pobrania na witrynie Microsoft Express. Po pobraniu i zainstalowaniu środowiska na naszym komputerze mamy dostępne:

Rysunek 1. Visual Studio 2010 Express For Windows Phone


Rysunek 2. Expression Blend 4 For Windows Phone


Rysunek 3. Emulator

oraz SDK dla Silverlight i XNA 4.0

Warto zaznaczyć, że gdy posiadamy już zainstalowaną wyższą wersję Visual Studio 2010 wówczas środowisko dla WP7 doinstalowuje się jako dodatek wraz z oferowanymi przez SDK szablonami projektów.

Hello world

Przyszedł czas na uruchomienie Visual Studio i przygotowanie pierwszego projektu na nowej platformie. Mamy do dyspozycji dwie grupy szablonów zawierające odpowiednio projekty dla Silverlight oraz dla XNA. Elementy, które się na nie składają widać na rysunkach 4 i 5.

Rysunek 4. Szablony silverlight


Rysunek 5. Szablony XNA

Na początku wybierzemy platformę Silverlight. Po stworzeniu nowego projekty mamy widoczne okno z kodem XAML, oraz jego podgląd odwzorowujący aplikację na ekranie urządzenia.

Rysunek 6. Okno Visual Studio

Tradycją już się stało, że pierwszy program jaki tworzymy w nowej technologii to Hello World. Nie pozostaje zatem nic innego jak przeciągnąć na ekran TextBlock oraz wpisać do niego stosowny tekst. Po wciśnięciu F5 uzyskujemy efekt widoczny na rysunku 7.

Rysunek 7. Aplikacja silverlight na emulatorze

Przy okazji tego projektu przyjrzyjmy się jeszcze plikom, jakie zostały utworzone. Widoczne są na rysunku 8, a do najważniejszych należą: MainPage.xaml - widok główny aplikacji ApplicationIcon.png, Background.png - ikony odpowiednio na liście aplikacji i ekranie głównym telefonu, SplashScreenImage.jpg - obraz widoczny w momencie uruchamiania aplikacji, WMAppManifest.xml - informacje o naszej aplikacji w tym sekcja "capabilities", która informuje system o wykorzystywanych modułach (np internet, akcelerometr itp). W przypadku braku wpisu dla wykorzystywanego modułu aplikacja wyrzuca wyjątek.

Rysunek 8. Solucja Silverlight

Z racji etgo, że Windows Phone 7 wspiera dwie platformy programistyczne przyjrzyjmy się analogicznemu projektowi przygotowanemu przy użyciu XNA. W tym celu wybieramy szablon z grupy widocznej na rysunku 5. W wyniku otrzymujemy dwa projekty. W odróżnieniu od wcześniejszych wersji XNA mamy tutaj rozdział głównego projektu od elementów dodatkowych takich jak tekstury, modele i dźwięki. Zmiana ta jednak ma charakter czysto organizacyjny i nie wpływa na sam sposób programowania. Do projektu "Content" dodajemy plik graficzny oraz definicję czcionki, które będziemy wykorzystywać w metodzie Draw odpowiedzialnej za odrysowanie widoku w pętli gry. Zawartość solucji po tych zabiegach widoczna jest na rysunku 9.

Rysunek 9. Solucja XNA

Żeby skorzystać z tekstury stworzymy sobie zmienne pomocnicze, określające jej umieszczenie i wielkość na ekranie.

Listing 1

Texture2D texture;
Rectangle textureSource = new Rectangle(0, 0, 100, 200);
Rectangle textureTarget = new Rectangle(190, 300, 100, 200);

W metodzie LoadContent inicjujemy teksturę korzystając z obiektu Content

texture = Content.Load("WP7");

W tym momencie możemy zmodyfikować metodę Draw do postaci widocznej na listingu 2

 

Listing 2

protected override void Draw(GameTime gameTime)
{
	GraphicsDevice.Clear(Color.CornflowerBlue);

	// TODO: Add your drawing code here
	spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
	spriteBatch.Draw(texture, textureTarget, textureSource, Color.White);
	spriteBatch.DrawString(Content.Load("myFont"), "Hello world from XNA", new Vector2(70, 250), Color.White);
	spriteBatch.End();

	base.Draw(gameTime);
}

Można oczywiście dodatkowo zoptymalizować tą metodę inicjując odpowiednie obiekty poza nią, gdyż powinna się ona wykonywać w jak najkrótszym czasie. Pozostawię to jako proste i szybkie ćwiczenie do samodzielnego wykonania. Po uruchomieniu aplikacji na emulatorze otrzymujemy wynik widoczny na rysunku 10.

Rysunek 10. Aplikacja XNA na emulatorze

Podsumowanie

Tak oto dotarliśmy do do końca pierwszego odcinka. Równolegle z tym cyklem artykułów na Channel 9 będzie również publikowana seria webcastów poświęcona Windows Phone 7. Tym samym zapraszam do obejrzenia pierwszego z odcinków. Autorami nagrań są Bartłomiej Zass, Michał Korzunowicz, Daniel Plawgo oraz Maciej Grabek (czyli ja :)). Gorąco zachęcam do śledzenia obu serii oraz w razie pytań umieszczania ich pod artykułami lub bezpośrednio pod nagraniami na CH9.

Maciej Grabek
Maciej Grabek
Pasjonat technologii oferowanych przez Microsoft , współzałożyciel i lider Toruńskiej Grupy Deweloperów .NET. Na co dzień programista .NET w jednej z największych firm e-commerce w Polsce.

Komentarze 3

Piotr Kolodziej Microsoft
Piotr Kolodziej
163 pkt.
Junior
08-02-2011
oceń pozytywnie 0

Słuchajcie dajcie nam znać jak Wam się podoba inicjatywa - pracowaliśmy nad nią od listopada :-)

Maciej Grabek Redaktor
Maciej Grabek
12328 pkt.
Guru
MVP
08-02-2011
oceń pozytywnie 0

Ponad 150 odsłon w ciągu pierwszej doby od publikacji artykułu - tego jeszcze chyba nie było :)

Maciek

Jeżeli odpowiedź okazała się pomocna kliknij [Pomógł mi]

BLOG

kojak3
kojak3
0 pkt.
Nowicjusz
17-02-2011
oceń pozytywnie 0

W kontekście wejścia Microsoftu w spółkę z Nokią artykuły na temat tworzenia aplikacji na temat WP7 są bardzo potrzebne ;)

 

pkt.

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.