Liczniki wydajności w Windows Store Apps

Ostatnio pisałem na temat zdarzenia BindingFailed klasy DebuggerSettings. Jedną z niewielu właściwości tej klasy jest EnableFrameRateCounter.

public App()
{
    InitializeComponent();
    Suspending += OnSuspending;

    DebugSettings.EnableFrameRateCounter = true;
}

Zmiana tej flagi na true sprawia, ze w górnym lewym rogu uruchomionej aplikacji pojawią się liczniki wydajności, które doskonale znają programiści Windows Phone.

FramerateCountersWindowsStoreApps

 

Znaczenie poszczególnych wartości:

  • Cp fps: the frames-per-second frame rate for the composition thread
  • UI fps: the frames-per-second frame rate for the UI thread
  • Memory: memory utilization for textures
  • Batch: the count of surfaces that are sent to the graphics processing unit (GPU)
  • Cp cpu: time in milliseconds spent on the composition thread’s processor
  • UI cpu: time in milliseconds spent on the UI thread’s processor

Debugowanie BindingExpression w Windows Store Apps

Jedną z zalet XAML’a, DataBinding i MVVM jest to, że grafik i programista mogę swobodnie pracować nad tą samą aplikacją. Miejscem styku są wyrażenia BindingExpression w kodzie XAML. Niestety, czasami styku nie ma, albo wręcz robią się zwarcia i trzeba na to jakoś zareagować. Czytaj dalej

Zastosowanie SemanticZoom z domyślnym ZoomOut

Ostatnio portowałem moją aplikację Relax z Windows Phone do Windows Store. Oryginalna aplikacja została utworzona w XNA, bo chciałem mieć ładne animowane, opadające kształty (tekstury) oraz płynne przejścia tła (wiem, wiem…to samo też można zrobić w Silverlight, ale miałem problemy z wydajnością i obciążeniem procesora). Relaxed (tak się nazywa w Windows Store, bo ktoś mi wcześniej zajumał nazwę „Relax”) to MonoGame + XAML.

Relax - Menu Relax - Rain theme Relax - Forest theme Relax - Beach theme

W tej wersji aplikacji zdecydowałem się na menu w XAML’u, a część releksacyjna (muzyka + animacje) to XNA. Pomyślałem sobię, że fajnie by było użyć kontrolki SemanticZoom. W trybie ZoomIn (normalny) nic nie ma (nie ma zawartości XAML) więc widać to co rysuje XNA. W trybie ZoomOut (oddalony) pojawiają się kontrolki, gdzie użytkownik wybiera interesujący go temat.

Relaxed - Main menu Relaxed - Forest  theme Relaxed - Rain theme Czytaj dalej

Skórka Dark i Light w aplikacjach Windows Store

Zapewne każdy Win8Dev wie, że szablony projektów aplikacji Windows Store (Windows 8) są domyślnie w ciemnej tonacji. Nie ważne czy wybierzesz BlankApp, GridApp czy SplitApp, aplikacja po uruchomieniu będzie wyglądała mniej więcej jak poniżej:

WindowsStore - Dark Theme WindowsStore - Dark Theme WindowsStore - Dark Theme

Ale wystarczy, że w App.xaml, w nagłówku wpiszesz jedną linijkę:

RequestedTheme="Light"

Windows Store apps - RequestedTheme

Teraz ta sama aplikacja będzie ubrana w białą skórkę:

WindowsStore - Dark Theme WindowsStore - Dark Theme WindowsStore - Dark Theme

Wysyłanie wiadomości SMS (Windows Phone SDK)

W tym poście znajdziesz informacje jak komponować (wysyłać) wiadomości SMS w Windows Phone. Opisuję tu:

  • proste wysyłanie SMS’a do jednego odbiorcy
  • wybieranie odbiorcy z listy kontaktów w telefonie
  • wysyłanie SMS’a do wielu odbiorców

Zapraszam do czytania i komentowania. Czytaj dalej

Ciekawoski Windows 8 – Przeglądarki

Jak wiadomo Windows 8 to rewolucja w interfejsie użytkownika. Nie wnikam, nie oceniam czy to się podoba czy nie. Ma swoje plusy i minusy. Jednym z minusów (w mojej ocenie) jest rozdzielenie przeglądarek na tryb desktop i tryb Windows 8  Metro.

Windows 8 - Start

To czego się czepiam występuje z IE 10 jak i z Chrome (czy inne przeglądarki też? Nie wiem, nie próbowałem). Czytaj dalej

WP XNA 13: Trial

Windows Phone jako jedyna platforma umożliwia tworzenie aplikacji z tzw. Trial’em. Wiem, ktoś może powiedzieć, że przecież w AppStore czy Android Market też są aplikacje płatne i darmowe. Czym więc różni się Windows Phone? Tym, że możemy stworzyć jedną aplikację, która będzie jednocześnie wersją Trial i pełną, a Windows Phone Marketplace automatycznie zadba o procedurę kupna i podniesienia wersji z darmowej na pełną.

W tym poście opiszę moje podejście do tego tematu. Na koniec opiszę jakiego rodzaju Triale można stosować oraz na co zwrócić uwagę.

Ten wpis jest częścią cyklu o moich przygodach w tworzeniu gier XNA dla Windows Phone. Czytaj dalej

WP XNA 8: Większa kontrola nad gestami (Raw gestures)

Windows Phone 7 GesturesZapewne każdy zna podstawowe gesty ekranów dotykowych. Wiemy też, że każdy telefon z Windows Phone 7 musi spełniać kilka podstawowych wymagań w tej dziedzinie (np. obsługa co najmniej 4 punktów dotyku). Co więcej, w SDK (dokładnie w XNA Framework) znajdziemy wbudowana obsługę pewnych gestów (np. Tap, FreeDrag, DoubleTap, Vertical/HorizontalDrag, Pinch itd). Ale jeśli to dla nas za mało to zakłwsze możemy „zejść” na niższy poziom API i tworzyć własne gesty.

Ten wpis jest częścią cyklu o moich przygodach w tworzeniu gier XNA dla Windows Phone. Czytaj dalej