Windows 8 dla programistów WP7 – wyniki ankiet

Wczoraj otrzymałem podsumowanie ankiet dotyczących mojej prezentacji z Warsaw CodeCamp (Windows 8 Community Launch). Dla przypomnienia prezentacja miała tytuł Windows 8 dla programistów Windows Phone. Okazało się, że wyniki ankiet oceniły prezentację na 4.64/5 i uplasowały ją na drugim miejscu tuż za prezentacją Tomka Kopacza! :)

Namiary na prezentację znajdują się w tym poście.


Windows Phone na TechEd

Czerwiec to miesiąc jednej z największych konferencji świata IT jaką jest TechEd. Już jutro (+- przesunięcie czasowe :) rozpocznie się TechEd North America. Będzie to już dwudziesta edycja tego wydarzenia. Dla osób, które nie miały możliwości pojechać na tą konferencję załączam linki do streamingu na channel9. Będzie też kilka sesji dostępnych dla wszystkich uczestników, które będą poświęcone Windows Phone. Link do przefiltrowanej listy.

To nie wszystko – 12 dni po zakończeniu konferencji w Orlando odbędzie się analogiczna impreza w Amsterdamie. Tu Windows Phone nie będzie mocno reprezentowany, przynajmniej oficjalnie. Jest to oczywiście spowodowane faktem silnej promocji platformy Windows 8.

 


Windows 8 w Warszawie – prezentacja

Obiecana przeze mnie prezentacja z sobotniej konferencji CodeCamp w Warszawie. Wszystkie ważne linki znajdują się w środku.

[download id=”9″]


Kilka moich aplikacji na Windows Phone

Nadszedł czas, żeby podzielić się kilkoma moimi aplikacjami, które do tej pory opublikowałem na Marketplace. Siedzę właśnie w autobusie do W-wy, mam internet, herbatkę, ciastka w pakiecie, więc nic nie stoi na przeszkodzie, żeby spędzić czas pożytecznie :)Zatem do dzieła! BTW – jeżeli chcecie przejść do szczegółów aplikacji, to klikajcie w jej tytuł lub ikonę – tak wiem, powinienem dodać znaczek “get for windows phone”, ale … dziś będę niestandardowy :)

A6W

Moja pierwsza “poważniejsza” aplikacja opublikowana na Marketplace. Aplikacja ta wciąż utrzymuje najwyższy stosunek ilości pobrań do ilości zakupionych licencji wynoszący prawie 12% i współczynnik ten się utrzymuje. Szykuje się również update dla niej, który pozwoli wykorzystać opcje jeszcze niedostępne podczas jej tworzenia.

Situps Counter

Kolejna odsłona pomocnika ćwiczeń. Tym razem nie jest to trener, a jak wspomniałem pomocnik. Aplikacja nie wydaje poleceń, lecz zlicza ilość wykonanych (dodam, że poprawnie wykonanych i zgodnych z ustawionymi wychyleniami) brzuszków. Dodatkowo oferuje licznik głosowy oraz zapis danych i prezentację w formie tabelarycznej i wykresu. Niektórzy twierdzą, że powinna być częścią A6W, ja jednakże wciąż się upieram, żę są to dwa różne tematy :)

PinIt

Pozwala na szybkie zarządzanie ustawieniami komunikacji takimi jak WiFi, dane pakietowe, Bluetooth, Flight mode. Osobiście używam jej bardzo często i znalazła się na moim pulpicie jako obowiązkowy jego element :) Moim zdaniem bardzo przydatna aplikacja (co widać między innymi po liczbie pobrań i ocenach). Opublikowana pod koniec stycznia 2012 została do tej pory pobrana ponad 2500 razy.

CatchEggs

Klasyka :) Pamiętacie “konsole” Elektroniki? Jedna konsola, jedna gra, żadnych kart, płyt i innych bzdur :P. Teraz wiele osób nie wie już co to była “Elektronika” i po zobaczeniu tej gry zastanawia się – czemu to się tak wolno odświeża, czemu ten obraz przeskakuje? Tak… Kiedyś hit i cutting-edge technology, teraz “gdzie ten framerate” :) Dla mnie klasyka zawsze będzie aktualna, a ten game play! :) Tu akurat implementacja znanych wszystkim “jajeczek”. Postanowiłem nieco zerwać z ideą konsoli widocznej na ekranie i dać użytkownikowi jak największą powierzchnię gdy. Czy słusznie? Nie wiem, narawie gra wygląda w ten sposób, ale planuję przygotowanie dwóch trybów, które pozwolą na przełączanie widoku między normal (widać przyciski i całą konsolę) i aktualnie dostępnym fullscreen.

Co więcej aplikacja wystartowała również w ramach konkursu GeekClub na CodeGuru gdzie zdobyła wynik 1000/1000 punktów!

Parachute

Klasyki ciąg dalszy – tym razem sterujemy łodzią i ratujemy spadochoroniarzy. Co tu więcej… Wiadomo o co chodzi, zatem nie będę się rozpisywał :) Obie pte klasyczne gry oferują możliwość podzielenia się swoimi wynikami na Facebook, a już wkrótce będą dostępne również statystyki globalne – tylko w pełnej wersji gry :) Czekam na rekordy!

Female Log

Aplikacja dedykowana dla pań :) Czy wiedziałem co piszę? Tak, bo wymagania dotyczące aplikacji przekazała mi moja żona :) Stwierdziła, że to co teraz jest dostępne nie spełnia jej oczekiwań i chce mieć “… tu lista wymagań …” oraz ” … dla pewności jeszcze jedna lista … ” :) zatem przygotowałem co trzeba, dostałem grafikę i oto rezultat. Jest to moja najnowsza produkcja, jednakże rozpoczęta prawie rok temu. Dlaczego trwało to tak długo? Wiele “przerywaczy” takich jak wyjazdy, konferencje, inne pomysły i projekty nie pozwoliły mi dokończyć tej aplikacji wcześniej. Ale z drugiej strony to dobrze, bo dzięki temu miałem możliwość poddać ją testom konsumenckim i podrasować grafikę. Jak sami / same zauważycie, aplikacja całkowicie zrywa z zasadami MetroUI – tak miała ona wyglądać, taki jest jej cel i tacy są jej odbiorcy :) W przygotowaniu kolejne ulepszenia, także aplikacja doczeka się jeszcze conajmniej kilku update’ów :)

Broken Phone

Na zakończenie fenomen w mojej ocenie. Aplikacja przydatna praktycznie do niczego – no może do odreagowania, zrelaksowania się, wyładowania, oderwania, rozerwania się, zaskoczenia znajomych… Hm – dużo tego… Czyli “przydatna” :) Dlaczego fenomen? Od czasu jej opublikowania, czyli w listopadzie 2011, pobrano ją 54 tysiące razy!!! (dziennie jest pobierana ok 300 razy).

 

Jeżeli pokusicie się o przejrzenie całej listy moich aplikajcji z pewnością zauważycie, że są tam również inne aplikacje z cyklu “śmieszne, mało przydatne, dziwne”. Zastanawiacie się dlaczego tam są? Z prostej przyczyny – wiele z nich służy / służyło do weryfikacji niektórych zasad, szybkości działania i zgłaszania wyjątków na Marketplace. Dzięki temu gdy przychodzicie na moją prezentację, lub wysyłacie mi maila z pytaniem o jakiś etap procesu lub wyjątek jestem w stanie udzielić na nie odpowiedzi (a przynajmniej w większości przypadków :))


Warsaw CodeCamp 2012

Wszystkich, którzy w najbliższą sobotę będą w Warszawie zapraszam na wydarzenie ogranizowane przez Warsaw Official .Net User Group. Szczegóły wydarzenia znajdziecie na jego stronie. Organizatorzy mocno postarali się, aby ściągnąć prelegentów z całej Polski. Podczas konferecji będzie można posłuchać Tomasza Kopacza oraz byłych i aktualnych MVP (Jakub Binkowski, Marcin Iwanowski, Wojciech Poniatowski i ja).

O czym opowiem?

Rozwinę temat poświęcony porównaniu Windows Phone i Windows 8, który poruszałem przy okazji Windows 8 Community Launch w Gdańsku, do którego dodam kilka elementów :) Tytuł pozostawiam niezmieniony, czyli “Windows 8 dla programistów Windows Phone“.

REJESTRACJA:

Wydarzenie jest darmowe, ale wymagana jest rejestracja – każdy zarejestrowany użytkownik = większe wsparcie dla organizatorów :)

Przy okazji

Uczestnicy konferencji będą mieli szansę wygrać XBoxa :)

 


Materiały z Windows 8 Community Launch w Gdańsku

Podczas konferencji, która odbyła się w sobotę (19.05.2012) miałem możliwość poprowadzenia prezentacji pod tytułem
Windows 8 dla programistów Windows Phone“. Poniżej do pobrania slajdy z tej prezentacji, które dodatkowo zawierają odnośniki do przykładów.
[download id=”8″]


Materiały z Nokia For Developers


Tak jak obiecałem garść materiałów, które mogę udostępnić po wczorajszej konferencji Nokia for Developers :) Zatem pobierajcie:

download
Materiały Nokia for Developers


Metropolis od Bee Mobile

Jakiś czas temu zostałem poproszony o przetestowanie zestawu kontrolek dostarczanych przez Bee Mobile i dedykowanych dla Windows Phone. Zestaw ten nazywa się Metropolis. Po pewnym okresie testów postanowiłem podzielić się moimi spotrzeżeniami dotyczącymi tego produktu, tak aby było wam łatwiej zdecydować, czy chcecie z niego skorzystać w swoich aplikacjach czy też nie.

Pierwsze co rzuca się w oczy to bardzo dobrze przygotowane dema oraz dokumentacja opisująca krok po kroku w jaki sposób można skorzystać z kontrolek.

Oto przykłady najciekawszych moim zdaniem kontrolek, które można znaleźć w pakiecie.

BookControl

Znana z wielu różnych implementacji “książka” charakteryzuje się w tym przypadku płynnym działaniem oraz elastycznością. Dzięki dobrej implementacji w łatwy sposób można osadzić w niej dowolną zawartość, a przewracane strony zachowują się bardzo naturalnie. Nie trudno również znaleźć dla niej zastosowanie na przykład jako oryginalnej wersji pomocy dla aplikacji, przeglądarki dla RSS lub jakichkolwiek innych danych w przyjazny i intuicyjny dla użytkownika sposób.

DatePicker, TimePicker oraz iWheel

Te trzy kontrolki oparte są o ten sam mechanizm. Są one zapewne znane wszystkim fanom Objective-C i platform “i” pochodnym :) Stanowią one ciekawą alternatywę dla *pickerów znanych z Silverlight Toolkit.

  

Warto pamiętać, że kontrolki te powinny być używane z rozsądkiem z racji na ich oderwanie od zasad Metro UI. Oczywiście można je ostylować samemu, ale na szczęście po zasugerowaniu tego dostałem informację, że Bee Mobile przymierza się do przygotowania odpowiednich predefiniowanych zestawów do całego pakietu podobnie jak ma to miejsce w przypadku następnej z kontrolek jaką jest SegmentedControl.

SegmentedControl

To kontrolka, która poniekąd przypomina radio button / check box list, jednakże jest wygodniejsza w użyciu jeżeli planujemy zdecydowanie przerobić jej styl. Jest to świetna alternatywa dla toggle switch i pozwala zmienić podejście do wyświetlania tych danych – aktualnie sam przymierzam się do wykorzystania tej kontrolki do wygodnej edycji danych modyfikowanych przed zapisem przez użytkownika – oszczędzi mi ona dużo czasu :)

Jak wspomniałem kontrolka ta posiada predefiniowane style, które pozwalają jednym kliknięciem zmienić jej wygląd na styl różnych platform…

Pozostałe

Do dyspozycji mamy również VistaButton, Waiting Bar oraz RegionControl. Waiting Bar bardzo przypomina znany z aplikacji webowych loader, dzięki czemu użytkownikowi poniekąd łatwiej będzie zrozumieć, że coś się dzieje w aplikacji (czasem proggress nie jest intuicyjną wizualizacją :( ).

Region Control pozwala na ciekawszy sposób przedstawienia danych – samo demo sugeruje zastosowanie w aplikacjach medycznych (lub np ubezpieczeniowych, car rental itp). Mi do głowy przyszła też mapa podbijanego świata w różnego rodzaju grach strategicznych (lub pseudo strategicznych) :)

Cena

Licencja dla pojedynczego dewelopera kosztuje niecałe 200$ – kwota ta wydaje się stosunkowo niewielka w porównaniu z przychodami jakie może wygenerować aplikacja wyposarzona w te kontrolki. Nie wszystkie aplikacje muszą być tylko Metro – mogą być aż Metro dzięki zastosowaniu innych kontrolek, do których z pewnością należy Metropolis.

Podsumowanie

Pakiet Metropolis jest bardzo ciekawy – przychodzi z interesującym podejściem do prezentacji i wprowadzania danych. Dzięki dynamicznej rozbudowie możemy zapewne liczyć na częste uaktualnienia i rozszerzanie nie tylko o nowe kontrolki, lecz również o nowe ich możliwości :)


Zapraszam na Nokia for Developers

Już w najbliższy piątek (11.05) zapraszam na warsztaty Nokia for Developers, na których wraz z Kamilem Stachowiczem wprowadzimy słuchaczy w zagadnienia związane z programowaniem na platformę Windows Phone 7. Pamiętajcie jednocześnie, że warsztaty te są skierowane do osób bardziej początkujących niż zaawansowanych, natomiast postaramy się je poprowadzić na tyle elastycznie aby usatysfakcjonować uczestników :) W międzyczasie wszystkim zarejestrowanym mówię – do zobaczenia w piątek :)


Windows Phone Game Services

Jakiś czas temu przy okazji tworzenia jednej z aplikacji na Windows Phone (w sumie to mogę nawet podać na nią namiary: CatchEggs – do pobrania na Marketplace) zacząłem się zastanawiać nad przygotowaniem statystyk globalnych dla gry. Wiadomo – każdy lubi pograć samemu w grę, ale jeżeli uda mu się zdobyć ciekawy wynik zawsze jest chęć podzielenia się nim z innymi… Warto o tym pamiętać i dodać taką opcję w swojej aplikacji. Jak to osiągnąć?

Sposób 1 – Facebook

Jak wiadomo na platformie Windows Phone mamy dostęp do bardzo wygodnej integracji z Facebookiem. W tym celu wystarczy stworzyć launcher ShareStatusTask lub też ShareLinkTask. Pierwszy z nich pozwala jedynie na wysłanie jakiejś wiadomości, natomiast drugi jest moim zdaniem dużo ciekawszy. Zamiast jedynie dzielić się wiadomością można wykorzystać go jako dodatkowe źródło promowania aplikacji zwyczajnie dodając do niej link w formacie http://www.windowsphone.com/s?appid={0} gdzie zamiast {0} należy wstawić ID aplikacji. To jednak nie jest najlepszy sposób, aczkolwiek jest on bardzo przydatny z marketingowego punktu widzenia…

Sposób 2 – WP7 Game Services

Ciekawszym moim zdaniem sposobem jest przygotowanie usługi, która będzie odpowiedzialna za zbieranie i udostępnianie statystyk dla gry, którą właśnie tworzymy lub też rozwijamy. Z racji na fakt, że wiele osób tworzy lub też planuje stworzyć grę z publicznymi statystykami postanowiłem podzielić się swoim kodem i udostępnić całość w ramach Codeplex pod nazwą WP7 Game Services.

Całość składa się z trzech projektów i bazy danych.

MaciejGrabek.WP7.Services jest projektem opartym o ASP.NET MVC 4.0 WebAPI (aktualnie w wersji beta do pobrania z tego miejsca). Aby uniknąć konieczności wystawiania wielu serwisów dla wielu gier postanowiłem dodatkowo dorzucić do obiekt logiczny gry, dzięki czemu jedna instancja usług wystarczy na potrzeby różnych gier :)

MaciejGrabek.WP7.Services.Phone jest biblioteką, którą każdy może dołączyć do swojej aplikacji działającej na WP7. Najważniejszym jej elementem jest GameServicesCaller, który jest odpowiedzialny za komunikację z usługą.

MaciejGrabek.WP7.Services.Phone.Demo zawiera przykładowe użycie wspomnianego GameServicesCaller’a. Z racji na fakt, że przez przykład ludzie najszybciej się uczą moim zdaniem nie mogło zabraknąć takiego właśnie projektu :)

Bezpieczeństwo

Z racji na to, że nie chcemy aby ktoś w łatwy sposób podszył się pod naszą aplikację GameServicesCaller używa do komunikacji jeszcze jednej ważnej rzeczy, a mianowicie hasha gry. Jest on niezbędny przy dodawaniu jakiegokolwiek wpisu do bazy.

Dodatkowo każdy wpis jest identyfikowany ID urządzenia, przez co jeżeli ktoś poprawi swój wynik, to w bazie przechowujemy tylko jeden wpis – drugi zwyczajnie nie jest potrzebny, a dodatkowo zmniejsza to prawdopodobieństwo “przepełnienia” bazy.

Pobranie wyników jest natomiast niezmiernie proste, bo wystarczy wywołać api podając znormalizowaną nazwę gry np tak: http://mydomain/api/gameresults/catcheggs, dzięki czemu możemy stworzyć nie tylko klienta WP7, ale również dowolnego innego. Oczywiście dla wygody cała komunikacja odbywa się przy wykorzystaniu REST i JSON, co otwiera to rozwiązanie również na inne platformy :)

P.S.

Kiedy w grze będą statystyki online? Aktualnie czekam na uruchomienie ASP.NET MVC 4 na hostingu (mam nadzieję, że się uda) i po paru dniach uaktualnienie będzie gotowe do pobrania z Marketplace :)


  • O mnie

    Maciej Grabek

    Moje profile na:

    MVP

    Codeguru.pl GoldenLine
    Twitter CodeProject

  • english version
  • Polecam

  • Copyright © Maciej Grabek. All rights reserved.
    Powered by WordPress
    %d bloggers like this: