poniedziałek, 18 października 2010

Windows Phone 7 RTM - wybrane zagadnienia cz.2

W ramach tego postu chciałbym się podzielić różnymi ciekawostkami i spostrzeżeniami. Z jednej strony w większości przypadków dotyczą one funkcjonalności dłużej znanych, ale spojrzymy tu czasem na nie od bardziej wysublimowanej strony. Znajdzie się też kilka całkowicie nowych wstawek z RTM.

Poniżej udostępniam moje wcześniejsze materiały z Windows Phone 7 dotyczące funkcjonalności sprzed bety, zaktualizowane, by działały poprawnie w wersji finalnej. Po drodze zaktualizowałem je do bety, ale nie zdążyłem opublikować, o czym pisałem niedawno.

Launchers & choosers

Wróćmy na chwilę do tematyki launcherów i chooserów. Nie wszystkie da się bezproblemowo przetestować na emulatorze. Potwierdzam za dokumentacją, że nie można wysyłać maili (nawet w sensie otwarcia ich w programie pocztowym), bo nie można skonfigurować konta pocztowego, nawet przy odblokowanym obrazie. Mogę też potwierdzić, że MediaPlayerLauncher ma problemy z wyświetleniem obrazu video na emulatorze (ewentualnie może nam coś mignąć). Co do tasków związanych ze sklepem, udało mi się odpalić MarketplaceHubTask i MarketplaceSearchTask.

02_MarketPlaceHub04_MarketPlaceSearch

W przypadku MarketplaceDetailTask w stosunku do bieżącej aplikacji i  MarketplaceReviewTask przy próbie wyświetlenia interfejsu dostaję informacje o błędzie. Dokumentacja informuje o problemach z tym drugim, o pierwszym pisze że nie ma różnic w porównaniu z telefonem. Task szczegółów pewnie nabierze sensu jak nasza aplikacja będzie opublikowana na MarketPlace, jak sądzę. Z pewnością warto rzucić okiem na aktualną zawartość sklepu, w przypadku aplikacji opatrzonego notą o testowym działaniu do 21 października. 

Przykład: WP7TasksDemo

Gesty

O gestach mówi się od pierwszego CTP narzędzi dla WP7, mamy na poziomie platformy działające zdarzenia manipulacji. Wersji finalnej towarzyszy ponadto toolkit, w którym zapewniono detekcję konkretnych gestów (dla dużej części wystarczy obsłużyć jedno zdarzenie). Moją uwagę zwróciła obsługa rotacji. Do tej pory możemy spotkać adnotację w dokumentacji, że rotacja nie jest obsługiwana (w przykładzie z Mixa też jej nie było). Oglądałem jednak ostatnio na Channel 9 filmik z premiery toolkita i na żywym telefonie zostały pokazane obroty. Ze swojej strony mogę potwierdzić, że w emulatorze też całkiem dobrze to działa (nawet jeśli nie dysponuje się ekranem dotykowym). 

05_Gestures_01

Dla wyjaśnienia - czerwone punkty, to wskaźniki dwóch myszy, za pomocą których testowałem gest pinch and stretch. Nie mając ekranu dotykowego można na Windows 7 zainstalować odpowiedni sterownik. W kwietniu opublikowałem na vimeo filmik, który dokładnie pokazywał, jak włączałem obsługę wielu myszek.

Przykład: WP7DemoApp

Notyfikacje push

Tu tylko napiszę, że pojawiła mi się pewna zagadka w działaniu notyfikacji toast w przykładowej aplikacji z WP7 Training Kit. Kiedy aplikacja subskrybująca jest wyłączona, wszystko jest w porządku. Natomiast gdy wyślemy notyfikację w trakcie działania aplikacji, to … następuje jej wyłączanie (pamiętam,że w Becie też mi się tak działo). Okazuje się, że dostaję wyjątek: Data at the root level is invalid. Co ciekawe w moim odświeżonym WP7DemoApp, gdzie w bardzo prosty sposób obsługuję notyfikacje toast, wszystko działa dobrze zarówno przy włączonej, jak i wyłączonej aplikacji. Mam nadzieję, że uda się to wyjaśnić. Być może jest jednak jakaś drobna różnica w formacie wysyłanej wiadomości, której nie dostrzegłem? Założyłem na forum WP7 wątek z tym tematem.

ShellTileSchedule

Jak możemy aktualizować obrazek w tile bez notyfikacji push? Od wersji finalnej możemy wykorzystać ShellTileSchedule. Funkcjonalność jest o tyle ciekawa, że … trudno ją przetestować. Najmniejszy okres to 1 godzina (ograniczenie systemu operacyjnego z uwagi na wydajność) i tyle trzeba nieraz odczekać, żeby zobaczyć efekt. W przykładowej aplikacji z WP7 Training Kit udało mi się zaobserwować po godzinie efekt podmiany obrazka:

03_ScheleTileSchedule_2

Na podsumowanie powiem, że… dokumentacja msdn, na którą się tak często powołuję została ostatnio odświeżona i sygnowana datą 7 października. Zmieniły się nieco szczegóły lokalizacji tytułu aplikacji, dodano dobry przykład integracji z Music + Videos hub (czego zawsze brakowało), lepiej udokumentowano niektóre, czasami dość istotne zagadnienia.

W związku z aktualizacją informacji na temat integracji z hubem multimedialnym dokonałem małej aktualizacji swojego ascetycznego przykładu z odtwarzaczem (MusicVideosHubAppDemo).

01_VMH

Zaktualizowaną wersję można pobrać tutaj. Mimo doprecyzowania przez dokumentację przekazywania do aplikacji informacji o uruchomieniu jej z tile i nazwy utworu i tak pozostało mi kilka niejasności. Dlaczego nie wyświetlają się z automatu tytuły utworów na tile’ach? Dlaczego na własnoręcznym tile aktualnego utworu pisze ciągle Paused i nie widać czasu? (jak się nic nie ustawi to domyślna reprezentacja to potrafi). Sporadycznie zdarzało mi się, że tło na tym tile mi się nie odświeżało (być może przy szybkich zmianach odtwarzanego utworu i przechodzenia z aplikacji na huba i odwrotnie). Zobaczymy jak to zadziała na fizycznym telefonie (bo emulator z odblokowanym obrazem nie może być do końca wyznacznikiem).

Ostatnio sporo dzieje się lub będzie się działo w tematyce WP7 na różnych frontach (samych urządzeń, MarketPlace, różnych frameworków). Z pewnością więc nie zabraknie mi tematów na kolejne posty -:)

poniedziałek, 11 października 2010

Windows Phone 7 RTM - wybrane zagadnienia

W dzień premiery systemu WP7 … nadrabiam zaległości w pisaniu postów o platformie i narzędziach. W przeddzień MTS zapowiedziałem, że napiszę dokładniej o wybranych tematach dotyczących wersji finalnej. Miałem tu na myśli zmiany w API oraz nowe informacje w oficjalnej dokumentacji, które zwróciły moją uwagę. Sprawdziłem niemal wszystko, co zaowocowało umieszczeniem 2 plików zip. Teraz… opiszę ich zawartość, omawiając przy okazji różne zagadnienia. Może to stanowić też pewne uzupełnienie do moich wypowiedzi na temat developmentu na stoisku ATE, gdzie często nie schodziliśmy do takich szczegółów. Zaczynajmy!

1. Nowe kontrolki (SDK)

Panorama

Panorama to jak wiadomo jeden z kluczowych filarów nowoczesnej koncepcji interfejsu użytkownika w WP7, bez trudu odnajdziemy ją w hubach i niektórych aplikacjach (np. Office). Od wersji finalnej mamy standardową kontrolkę, wcześniej można było korzystać m.in z rozwiązania z codeplex. Tutaj wziąłem na warsztat kluczowe elementy swojej wczesnej aplikacji pokazywanej na VSTL w maju w Krakowie

Panorama_01

Dla istniejących rozwiązań migracja nie jest trudna, ale ja sobie stworzyłem widok panoramy całkiem na nowo. VS 2010 i Blend 4 mają szablony projektów takiej aplikacji z przykładowymi view modelami. W istniejących projektach można skorzystać z szablonu strony z panoramą lub oczywiście umieścić samą kontrolkę na istniejącej stronie. Kontrolka Panorama ma bardzo dobre wsparcie w designie. Zaznaczając elementy PanoramaItem dostajemy podgląd odpowiedniej części panoramy.  Nie muszę tu chyba wspominać, że korzystając z Blend mamy standardowe udogodnienia w postaci szybkiego tworzenia przykładowych danych (także view modeli) czy usprawnień dla data bindingu z drag & drop. Dzięki temu  jesteśmy w stanie zrobić szybko i wygodnie panoramiczny widok (i nie tylko).

Panorama_02

Przykład: PanoramaAndPivotDemo

Pivot

Kontrolkę Pivot również otrzymujemy obecnie w standardzie, z analogicznym jak Panorama wsparciem. Panorama i Pivot znajdują się u mnie w tej samej aplikacji. Jako ciekawostkę powiem, że nadal używam kontrolki Rating z SL3 Toolkit.

Pivot_01Pivot_02

Przykład: PanoramaAndPivotDemo

Bing Map

Kontrolka Map obsługuje m.in różne tryby prezentacji, zoom, pushpins (chmurki opisujące punkty), krzywe (przydatne np. przy prezentacji ustalonej drogi) i powierzchnie.  Doczekaliśmy się oficjalnej wersji na WP7 (wcześniej można było próbować używać wersji dla desktopowego Silverlight, ale nie wszystko działało). Screenshoty aplikacji z mapą pokazywałem w poście przed MTS, więc tutaj ograniczę się do jednego. Jak przytrzymamy dłużej palec w danym punkcie ekranu (gest Touch and Hold), to zostanie dodana nowa chmurka wyświetlająca swoje położenie geograficzne. Obsługę gestu zrealizowałem z użyciem nowo powstałego Silverlight Toolkit for WP7 (o którym napiszę poniżej).

BingMap_02x

Przykład: MapNavigator

02. Silverlight Toolkit for WP7

W finalnym wydaniu został wydany po raz pierwszy toolkit, zawierający wiele kluczowych rozszerzeń.

GestureService/GestureListener

Za pomocą standardowych zdarzeń manipulacji, musimy sami zadbać o wykrywanie poszczególnych gestów. A może chcemy szybciej i prościej? GestureListener (w GestureService) obsługuje nam zdarzenia: Tap, DoubleTap, Hold (wykorzystuję w aplikacji z mapą), Drag (DragStarted, DragDelta, DragCompleted), Flick and Pinch (started/delta/completed). Dostajemy gotową obsługę dla prostszych gestów, bardziej złożone wykryjemy korzystając więcej niż z jednego zdarzenia. Adam Kinney napisał bardzo dobrego posta na ten temat. 

Przykład: MapNavigator 

ContextMenu 

Wygląda i zachowuje się tak samo jak kontrolka, którą widzimy w systemie operacyjnym (np. przy okazji przypinania skrótu do aplikacji). Zachowanie jest dość wyrafinowane. Jeśli odpowiednio długo przytrzymamy palec, to … cały ekran się nam nieco ugnie, po czym wyskoczy nam menu. Kontrolka została ciekawie zaimplementowana (animacja screenshotu ekranu z WriteableBitmap i animacja samego menu), wiąże się z tym też trochę ograniczeń. Menu kontekstowego użyłem w przykładzie z panoramą i z pivotem.

ContextMenu_01

Przykład: PanoramaAndPivotDemo

DatePicker

Standardowy DatePicker nie jest wspierany w ramach SDK dla WP7, zresztą nie pasowałby do specyfiki interfejsu użytkownika. W aplikacjach dostarczanych wraz z systemem operacyjnym możemy zaobserwować wybieranie daty poprzez otwarcie dodatkowej strony, na której dokonujemy wyboru (np. na formularzu spotkania). Kontrolkę o identycznym wyglądzie i zachowaniu oferuje teraz nam toolkit. Wykorzystanie standardowej nawigacji powoduje, że musimy zachować ostrożność. W ogólnej obsłudze nawigacji musimy ignorować strony implementujące interfejs IDateTimePickerPage. Wykorzystanie interfejsu zapewnia nam uniwersalność, twórcy kontrolki pozwalają na zdefiniowanie własnej strony, z której będzie korzystać DatePicker. Dokładnie opisuje to David Anson na swoim blogu. Kontrolkę DatePicker wykorzystałem na formularzu edycji produktu w aplikacji z panoramą i pivotem.

DatePicker_01DatePicker_02

Przykład: PanoramaAndPivotDemo

TimePicker

Odznacza się podobnymi właściwościami i zachowaniem jak DatePicker, więc nie będę się na jej temat rozpisywał.

ToggleSwitch

Kontrolka bedąca kompozycją labelki i suwaka o stanie On i Off, w zasadzie inna reprezentacja wizualna checkboxa. W systemie operacyjnym często możemy ją spotkać w ustawieniach. Toolkit dostarcza nam kontrolki o takim samym wyglądzie i zachowaniu. Wykorzystuję ją w przykładzie, gdzie eksperymentuję z lockowaniem ekranu (patrz niżej).

Przykład: IdleDetectionDemo

WrapPanel

Stary znajomy, którego chyba nie muszę  przedstawiać. Wcześniej można było używać wersji z toolkita dla Silverlight 3. Teraz zyskujemy pełną wygodę. WrapPanel wykorzystuję w aplikacji z panoramą i z pivotem.

Przykład: PanoramaAndPivotDemo

03. Cykl życiowy aplikacji

Co zmieniło się w cyklu życiowym?

Poprawiono debugging VS 2010 przy tombstoningu. Teraz po ubiciu procesu i przy reaktywacji debugowanie jest automatycznie wznawiane (w Becie pojawiał się czarny ekran i trzeba było ręcznie wznawiać tę czynność).

Uściślono, że deaktywacja nie musi jednoznacznie oznaczać tombstoningu w sytuacjach, gdy szybko naciśniemy przyciski Start i Back lub wywołamy większość chooserów (jeśli zasoby systemowe na to pozwalają). Dzięki temu zyskujemy większą płynność działania. Należy też pamiętać, aby przy deaktywacji nie czyścić danych na wypadek, gdyby aplikacja zaraz wznowiła działanie.

Doprecyzowano w oficjalnej dokumentacji zachowanie w przypadku zablokowania ekranu. Domyślnie w takim przypadku aplikacja ulega deaktywacji. Możemy jednak wyłączyć blokowanie ekranu (UserIdleDetectionMode) albo wymusić ciągłe działanie aplikacji przy zablokowanym ekranie (ApplicationIdleDetectionMode).

Dzięki zdarzeniom Obscured i Unobscured w PhoneApplicationFrame możemy wykryć zablokowanie ekranu i zmniejszyć zasoby używane przez aplikację w tym stanie.

Wydaje się, że do testowania blokowania ekranu koniecznie potrzebny jest fizyczny telefon. Dysponując emulatorem z odblokowanym obrazem mogłem ustawić czas, po którym następowała blokada, jednak wizualizacja nie wyświetlała daty i nie dała się później odblokować poprzez podciągnięcie ku górze palcem (w przeciwieństwie do opisu dot. wcześniejszej wersji na jednym z blogów).

LockScreen_01 LockScreen_02

W związku z tym, póki co w prezentowanym przykładzie zweryfikowałem jedynie wyłączenie blokowania ekranu dla danej aplikacji oraz zachodzenie zdarzenia Obscured. Jak już wyżej wspominałem, w interfejsie wykorzystałem kontrolkę ToggleSwitch z toolkita.

LockScreen_04

Przykład: IdleDetectionDemo

04. Lauchers & Choosers

W wersji finalnej za pomocą emulatora ze standardowym obrazem możemy przetestować wybieranie obrazków z kolekcji Pictures. Zauważyłem również predefiniowane kontakty. Do tematu wrócimy jeszcze w następnym poście.

Oczywiście należy pamiętać, że w przypadku wielu chooserów tombstoning może nie zachodzić.

Przykłady: PhotoExtrasAppDemo, SharePickerExtensibilityDemo

05. ShellTileSchedule

Daje możliwość okresowej aktualizacji tła tile w oparciu o wskazany serwis. Więcej w następnym poście.

06.Tilt Effect

Efekt “uginania się” kontrolki przy jej dotknięciu, znany z aplikacji systemu operacyjnego. Nie wchodzi co prawda w skład standardowego API, ale występuje w finalnej dokumentacji w formie przykładu. Użyłem go w aplikacji z panoramą i z pivotem. 

Przykład: PanoramaAndPivotDemo

07. Photo Extras

W wersji finalnej w trybie photo extras zdjęcie pozyskujemy za pomocą MediaLibrary i tokenu przekazywanego w adresie (w wersji Beta odbywało się to przy użyciu IsolatedStorage i nazwy pliku).

Przykład: PhotoExtrasAppDemo

08. Share Picker Extensibility

Funkcjonalność opisana w dokumentacji wersji finalnej, podobna do Photo Extras. Również w tym przypadku po wybraniu odpowiedniego menu z poziomu standardowej przeglądarki obrazków, nastąpi uruchomienie naszej aplikacji i zostanie przekazane jej zdjęcie. Zadaniem aplikacji jest wysłanie zdjęcia do danego serwisu.

W menu kontekstowym zdjęcia widzimy opcję share… (zobaczymy ją też w menu w widoku pojedynczego obrazka).

SharePhoto_01

Po wybraniu opcji share… pojawia się nam lista aplikacji, za pośrednictwem których możemy wysłać zdjęcie do różnych serwisów. Jeśli do naszej aplikacji dodamy plik XML o nazwie odpowiadającej pewnemu numerowi Guid (szczegóły w dokumentacji), to nasza aplikacja zostanie dodana do listy (w moim przypadku mc)

SharePhoto_02

Po wybraniu aplikacji z listy nastąpi jej uruchomienie oraz zostanie przekazane jej zdjęcie (za pomocą MediaLibrary i tokenu, analogicznie jak w przypadku Photo Extras).

SharePhoto_03

Przykład: SharePickerExtensibilityDemo

09. DeviceExtendedProperties

W finalnej dokumentacji możemy odnaleźć opis klasy DeviceExtendedProperties, która pozwoli nam odczytać różne informacje na temat sprzętu, oprogramowania oraz zużycia pamięci RAM przez naszą aplikację (co jest zalecane przy testach).

Trial_03 - Copy

Przykład: DeviceInfoAndTrialDemo

10. Guide (Trial Mode)

Jak przetestować funkcjonalność trial w swoich aplikacjach?

Trial_01 - Copy

Z pomocą może nam przyjść klasa Guide z XNA Framework. Potrafi m.in zasymulować proces kupna pełnej wersji aplikacji łącznie z wyświetleniem testowego okna dialogowego.

Trial_02 - Copy

Przykład: DeviceInfoAndTrialDemo

11.Lokalizacja tytułu

W finalnej dokumentacji podano sposób na lokalizację tytułu aplikacji na liście i w tile (co ciekawe wymagana jest budowa dll-ki C++ Win32).

12. Narzędzia

Pozwolę sobie jedynie wyliczyć zmiany w Visual Studio 2010 czy Blend 4 dla WP7.

Visual Studio 2010

Nowe szablony projektów i elementów projektów (stron) dla kontrolek Panorama i Pivot. W pełni zautomatyzowane wsparcie debugowania aplikacji przy ich deaktywacji i reaktywacji.  

Expression Blend 4

Nowe rodzaje projektów i ich elementów dla Panorama i Pivot. Przy okazji chciałbym wspomnieć, że stosunkowo niedawny Service Pack 1 oprócz wsparcia dla Windows Phone 7  (i różnych poprawek) dodaje import plików Adobe FXG.

Na zakończenie podam kilka linków (głównie na temat finalnej wersji platformy i narzędzi dla WP7, ale nie tylko):

środa, 6 października 2010

Moje wrażenia z MTS 2010 - Windows Phone 7 na żywo i nie tylko

MTS to z pewnością wydarzenie, w którym warto uczestniczyć. Spiszę dziś na świeżo po powrocie wrażenia, jakie wyniosłem z 2 ostatnich dni.

Zacznę od … stoiska ATE Windows Phone, które współdzieliłem z Danielem Dudkiem. Komunikacja z różnymi ludźmi daje nieraz cenne doświadczenie, jak dane zagadnienie, produkt, technologia jest postrzegana przez innych. Ze swojej strony starałem się udzielać jak najbardziej dokładnych informacji, sprzedając zainteresowanym szczegóły z zakresu samych technologii czy możliwości narzędzi. 

W tym momencie, pozwólcie, że napiszę o największej atrakcji – jak dla mnie – czyli aparatach z WP7  (były jeszcze modelki tańczące przy XBOX-ach, ale piszę tutaj w kontekście technicznym –:). Przeglądając na blogach pierwsze wpisy o MTS 2010 wyłapałem, że ktoś nie był usatysfakcjonowany, bo …  nie zobaczył nawet Windows Phone. Zupełnie nie mogę się z tym zgodzić. Faktycznie w pierwszym dniu do obiadu aparatów jeszcze nie było, ale wystarczyło odwiedzić nasze stoisko we wtorek później czy w środę … Ci, którzy nas wtedy odwiedzili mieli okazję mieć w ręku prototypowy model Samsunga czy LG!  Na żywym urządzeniu można było się  przekonać, jak prezentuje się nowoczesny interfejs użytkownika zwany Metro, widoki typu Panorama czy Pivot,  jakich aplikacji możemy spodziewać się w systemie …

DSC00038 DSC00039

Aby nie popaść w rutynę w przerwach, co jakiś czas zmieniałem kolor themy systemowej, przypinałem i odpinałem skróty tile na ekranie startowym, wchodziłem do różnych aplikacji. 

DSC00040 DSC00041

Oprócz przekazywania na stoisku już posiadanej wiedzy, dowiedziałem się kilku interesujących rzeczy.

Aby wgrać własne aplikacje na pokazywane prototypowe aparaty, należy użyć specjalną wersję klienta Zune Software. Nie wystarczy ta powszechnie dostępna, która poinformuje o brakujących sterownikach.

Producenci telefonów starają się wykorzystywać większe możliwości, jakie mają w stosunku do “zwykłych” developerów piszących aplikacje w Silverlight i XNA.  Wzbogacają swoje telefony o dodatkowe aplikacje, które mogą zaskoczyć końcowego użytkownika i sprawić mu jeszcze większy fun przy korzystaniu ze sprzętu. Nie oznacza to, że “zwykli” developerzy nie mają pola do popisu, np. tworzone przez nich gry mogą być bardzo realistyczne. Jak zawsze liczy się też pomysł. Prezentowane prototypy z pewnością nie stanowią ostatniego słowa w już i tak bardzo dobrej responsywności. Z dużym optymizmem patrzę w przyszłość tego systemu.

Windows Phone 7 a sprawa polska. Zgodnie z oficjalną dokumentacją nie nastawiałem się na polską lokalizację, tak więc rozczarowania nie przeżyłem. Póki co, są wskazania, że może nie być dedykowanego na nasz kraj sklepu. To czy wystartuje w późniejszym okresie (tzn. za kilka miesięcy) w dużej mierze będzie to zależało od globalnej sprzedaży. Ale nawet w takiej sytuacji nie popadałbym w pesymizm. Z pewnością będzie można sprawić, że aplikacje pozyska się z innych lokalizacji. Wielu powinien zadowolić fakt posiadania luksusowej “atrakcji turystycznej” z ciekawymi aplikacjami i wysoce realistycznymi grami, mogącej pełnić funkcje najzwyklejszego telefonu, używanego na co dzień. Zresztą nie tylko komunikacja czy rozrywka, wystarczy tu wspomnieć o mobilnym pakiecie MS Office, w tym ładnie działającej synchronizacji z Exchange.

To nie wszystko, to tylko wycinek z MTS, i tak dość skrócony. A społeczność i interesujące rozmowy, nowe znajomości czy spotkanie ludzi z innych miast, imprezy formalne mniej? Na MTS sporo się dzieje, tak więc z pewnością jest to dobrze spędzony czas.

poniedziałek, 4 października 2010

MTS 2010, jak szukałem drogi z WP7 i coś ponadto

Pragnę zaprosić jutro wszystkich zainteresowanych do stoiska ATE z kategorii Windows Phone na konferencji MTS 2010 w Pałacu Kultury. Jako ATE (Ask The Expert) postaram się udzielić wyczerpujących informacji przydatnych dla developerów Windows Phone 7. Być może będzie nawet jakiś “żywy” telefon, ale nie jest to przesądzone.

Pozostając przy samym temacie Windows Phone 7, ostatnio jeszcze przed wydaniem finalnych narzędzi obiecywałem, że przygotuję aktualizacje wcześniejszych materiałów, opublikowanych przed ostatnim postem. Miałem je praktycznie przygotowane, ale trochę się rozchorowałem, a potem była już wersja finalna. Od połowy września zdążyłem się już z nią bardzo wnikliwie zaznajomić, eksperymentując z prawie wszystkimi nowo wprowadzonymi funkcjonalnościami (włącznie z Toolkitem) i uważnie wyłapując różnice.

W nowościach nie skupiam się tylko na tych najbardziej oczywistych i popularnych, ale także na tych bardziej wysublimowanych, o których rzadziej się mówi (można je wyłapać np. studiując wnikliwie dokumentację). Dokładnie przedstawię je w kolejnych postach, natomiast już dziś mogę udostępnić źródła moich ostatnich eksperymentów.

Part 4 zawiera całkowicie nowe funkcjonalności, wprowadzone wraz z wersją finalną (wszystkie za wyjątkiem kilku drobnych). Natomiast Part 3 stanowi update do przykładów z ostatniego posta. To wszystko opiszę dokładnie w następnym … odcinku . W kolejnym opublikuję materiały z którymi nie zdążyłem przed wersją finalną (Part 1 i 2 okraszone w miarę potrzeby drobniejszymi nowościami).

Na koniec dzisiejszego postu … wspomnę jak można sobie poszukać drogi na mapie. Można tradycyjnie, ale można też … z użyciem Windows Phone 7. Z myślą o swoim wyjeździe na MTS wziąłem na warsztat samplową aplikacyjkę z  Training Kita, przy czym pisałem ją sobie od początku, miejscami po swojemu (np. zamiast helperów do toucha użyłem obsługi gestów z Toolkita).

Jutrzejsza konferencja odbywa się tutaj:

BingMap_01x

Interesująca mnie droga wygląda następująco:

BingMap_05xx

Wskazówki, co do mojej trasy mam tutaj:

BingMap_06xx

Do zobaczenia na MTS !