Windows Phone 7 – Specyfikacja i jej podstawowe konsekwencje

Z WP7 rozpocznę od samego początku. Czego można się spodziewać po urządzeniu?

WP ma mieć bardzo ustandaryzowaną specyfikację sprzętową na MIX10 opisaną poniższymi parametrami:

  • Pojemnościowy ekran dotykowy z minimum 4 punktami styku
  • Czujniki: A-GPS, akcelerometr, kompas, czujnik światła, czujnik zbliżeniowy
  • Kamera: Minimum 5 mega pikseli, flesz, osobny przycisk do robienia zdjęć
  • Multimedia: akceleracje sprzętowa dla kodeków, określone formaty wspierane
  • Pamięć: Minimum 256MB RAM, minimum 8GB dysku flash
  • Grafika: akceleracja sprzętowa zgodna z DirectX 9
  • Procesor: Minimum ARMv7 Cortex/Scorpion

Ekran ma wspierać dwie rozdzielczości:

image

Z tego co zrozumiałem rozdzielczość ma być stała, te dwie rozdzielczości oznaczają, że Microsoft najprawdopodobniej będzie wprowadzał na rynek różne urządzenia (nazwijmy je roboczo “full” i “mini”). Spodziewam się, że pozycjonowanie będzie następujące “full” droższe – highend; “mini” tańsze – dla większej grupy potencjalnych odbiorców. Na tym etapie jedna kto tylko moje przypuszczenie. Do wakacji powinno się to wyjaśnić.

Klawiatura nie jest objęta tą standardową specyfikacją, z rozmów na konferencji wynika, że Microsoft dopuszcza opcjonalnie klawiaturę, natomiast od razu zaznaczam, że na przykład w Xna nie jest ona w żaden sposób uwzględniona w API. Programistom zaleca się projektowanie aplikacji stricte pod ekran dotykowy.

Te proporcje i rozdzielczości mogą być istotne przy projektowaniu zawartości graficznej i layoutu aplikacji.

Rozdzielczości wspierane przez Zune to 240x320 oraz 272x480, w prostej linii proporcje ekranu były 4:3 lub 16:9. W przypadku Windows Phone te proporcje to 5:3 oraz 3:2. Warto na to zwrócić uwagę przy tworzeniu rastrowych elementów graficznych (zwłaszcza na potrzeby gier).

Podsumowując kwestię ekranu jako ciekawostkę jeszcze dodam, że najprawdopodobniej wszystkie telefony z Windows Phone będą już miały ekrany OLEDowe. To dobra wiadomość dla wszystkich tych (włączając mnie), którzy lubią piękno prawdziwej czerni na ekranie.

Poza ekranem dotykowym WP ma mieć (tylko i wyłącznie) trzy przyciski jak poniżej:

image

Wstecz (Back) , Start (Start :>) oraz Szukaj (Search)

Rozwijając kwestię czujników i dodatkowych usług i urządzeń zawartych w telefonie: oczywiście każdy telefon będzie miał WiFi, standardową przeglądarką na tym telefonie ma być nowa wersja Internet Explorer. Uzupełnieniem do aparatu fotograficznego ma być wbudowana aplikacja do podstawowej obróbki obrazu (post processing, efekty).

Akcelerometr ma swoje API w Xna i SL do wykorzystania na przykład jako alternatywne sterowanie aplikacją lub do symulacji fizyki. Przyznam, że jestem ciekaw kompasu i jego wykorzystania w różnych aplikacjach. Uzupełniając tę funkcjonalność o czujnik lokalizacji (GPS) już widzę brak potrzeby mapy w Bieszczadach, to jednak pewnie będzie zrealizowane przez standardowy zestaw aplikacji. Twórcy aplikacji nie raz mnie już zaskakiwali, wierzę, że i tutaj też tak będzie.

Z ciekawostek, Windows Phone będzie miał moduł rozpoznawania mowy. Tutaj nauczony Windows Vista i Windows 7 i specyfiką języka polskiego oraz nawet naszego akcentu po angielsku – wyrażę opinię jak zobaczę, pogadam i usłyszę efekty. Kolejna ciekawostka, wibracje dostępne programowalnie mogą zwłaszcza przy grach pomóc uzyskać podobne wrażenia jakie od lat znamy na padzie.

Windows Phone będzie miał powiadomienia Push. To ważne, niektóre usługi wymagają od telefonu częstego odpytywania aby mieć aktualną informację. To potrafi momentalnie zabić baterię. Z baterią związane jest też odświeżanie ekranu (ważne dla gier). Xna wyświetla zawartość na ekran nie częściej niż 30 klatek na sekundę, próba częstszego wyświetlania będzie ignorowana). Kolejna rzecz związana z baterią to pseudo-multitasking czyli w praktyce trochę jego brak. Od strony programistycznej nasze aplikacje będą miały możliwość obsługi zdarzeń do spauzowania aplikacji i odzyskania jej. W praktyce po wykonaniu kodu w ramach tych zdarzeń proces naszej aplikacji będzie ubijany i odzyskiwany w tym kontekście.

Windows Phone jako platforma aplikacyjna to oczywiście tylko Silverlight i Xna.

Silverlight będzie zgodny z wersją 3.0 (i zawierał pewne elementy z 4.0). Xna to nadchodząca wersja 4.0.

W przypadku gier parę istotnych parametrów: W większości przypadków będziemy się posługiwać buforami 16bitowymi. Zarówno tekstury, ekran jak i na przykład Stencil Buffer czy indeksy dla krawędzi w geometrii 3d. Maksymalna wielkość tekstury też jest mniejsza niż na innych platformach wspieranych przez Xna, czyli 2048 pikseli, a dla CubeMap = 512.
Będziemy też mogli narysować mniej prymitywów za pomocą jednego wywołania (stricte powiązane z wielkością bufora indeksów).

Pomimo zgodności z DirectX 9 na Windows Phone nie będziemy mieli w pełni udostępnionego modelu i potoku dla shaderów. Na premierę Windows Phone i w Xna 4.0 programowalne shadery nie będa wspierane. Xna ma mieć udostępnione pięć konfigurowalnych efektów. Jeden znany od dawna – BasicEffect – oraz cztery dodatkowe odpowiedzialne za Environment Mapping ,Alpha Blending, Multi Texturing i Skinning (terminy angielskie, czuje się głupio na siłę wymyślając polskie odpowiedniki).

Wsparcie dla shaderów w pełni programowalnych via HLSL jest planowane na dalsze wersje Xna (być może update, teraz trudno powiedzieć).

To tyle nakładem podstawowych informacji. Dalej już będzie bardziej szczegółowo.