sobota, 27 sierpnia 2011

WP SDK 7.1 RC - moje spostrzeżenia

Napiszę teraz trochę o nowym Windows Phone SDK 7.1 RC.

Zacznę od dwóch elementów, które na pewno występowały już w niepublicznym Beta 2 Refresh. Są to:

Screenshot tool

11_Screenshot

Oprócz narzędzia do screenshotów z Windows 7 możemy teraz używać dedykowanego narzędzia dostarczanego z emulatorem.

Marketplace Test Kit

12_Marketplace_Kit

Zbiór testów, którymi są poddawane aplikacje wrzucane na Marketplace. Dzięki temu znacznie spada prawdopodobieństwo “niespodzianki” po wysłaniu aplikacji, developer może poddać weryfikacji swoją aplikację już lokalnie na komputerze.

Co ostatnio zwróciło moją uwagę podczas przeglądania dokumentacji?

  • limit do 50 alarmów/notyfikacji per aplikacja
  • wyrzucenie z planu agenta po 2 błędnych zakończeniach jego pracy
  • czas pojedynczego wykonania dla agentów periodycznych 25s
  • uściślona kwestia komunikacji między aplikacją foreground i agentem - linq to sql lub plik, w komunikacji do odczytu zalecany plik z mutex-em dla dostępu do Isolated Storage (nie używać IsolatedStorageSettings), dedykowany sposób dla agentów audio
  • brak możliwości pauzowania kolejki BackgroundAudioPlayer by odtworzyć plik za pomocą MediaElement
  • dokładne opisy Zune Media Queue i Streaming Audio Application
  • klient notyfikacji push nie działa przy SOCKS proxy
  • opis obsługi binarnych BLOB w bazie danych, a także spore uściślenia co do procesów aktualizacji (szkoda, że nadal nie ma możliwości określenia wersji przy tworzeniu bazy jak sądzę) i migracji
  • brak możliwości usuwania tabel i kolumn z bazy danych (wcześniej też nie było, ale teraz to wyraźnie zaznaczono)
  • Shared/Media - nowy specjalny folder w Isolated Storage dla obrazka albumu, ma służyć do jego wyświetlania w systemowym panelu głośności (Universal Volume Control)
  • nowe launchery i choosery (o części z nich można już było czytać jakiś czas temu na niektórych blogach): ConnectionSettingsTask, SaveContactTask (pamiętam, jak Daniel Dudek porównując WP7 z Mobile nieraz mówił, że nie ma możliwości dodania kontaktu jako całości, mieliśmy tylko telefon i mail osobno - sic!), ShareLinkTask i ShareStatusTask (współdzielenie linka i swojego statusu w wybranym serwisie społecznościowym)
  • szczegółowy opis kontaktów i kalendarza/spotkań - wyraźne podkreślenie, żeby w miarę możliwości korzystać z filtrów search opartych o predefiniowane indeksowanie zamiast z LINQ, które zadziała wolniej
  • kamera – najnowsze API dopuszcza, że może jej … nie być w telefonie (przymiarka do upowszechnienia Windows Phone na tańszych telefonach, Tango?) albo mogą występować 2 rodzaje kamer (standardowa i front-face), dokładny opis konwersji formatów YCbCr i ARGB, sporo przykładów (w tym rozszerzona rzeczywistość, nagrywanie video)
  • SavePictureToCameraRoll – oficjalnie opisana w ramach przykładu
  • rozszerzenie huba Pictures (apps)
  • 2 rozmiary paska aplikacji - duży i mały
  • szczegółowo opisany SIP + nowe opcje

Całościowy spis zmian można znaleźć tu. To z pewnością i tak nie wszystko. Na głębsze zapoznanie przyjdzie czas podczas praktycznych zabaw w danych casach -:)

piątek, 26 sierpnia 2011

Co nowego w Silverlight for Windows Phone Toolkit–August 2011 ?

Windows Phone wciąż do przodu! Dziś podzielę się tym, co zwróciło moją uwagę w najnowszym toolkicie. Następny post poświęcę najnowszemu SDK.

Kierując się kolejnością chronologiczną zacznę od Windows Phone Toolkit – August 2011 (SDK 7.1). Dostajemy wraz z nim wiele nowych fajnych kontrolek i udogodnień, których nieraz po prostu brakowało. Najlepiej odpalić je i zobaczyć w działaniu. Moją uwagę zwróciły w szczególności następujące elementy:

MultiselectList

01_MultipleSelectListBox

Wybór wielu elementów z listy, zachowanie identyczne jak z Outlooka. W czasach Windows Phone 7 używałem takiego elementu posiłkując się implementacją na codeplexie. A teraz mamy to od ręki! Patrząc na źródła przykładu widzimy, że nie wszystkie zachowania są dostępne automatycznie, ale i tak komponent daje bardzo wiele.

LockablePivot

02_LockablePivot03_LockablePivot_2

Pivot, który po zablokowaniu pokazuje tylko aktualnie wybraną zakładkę i nie reaguje na przesuwanie w poziomie. Dzięki temu można umieścić kontrolki obsługiwane takimi gestami np. slidery. Pamiętam, że kiedyś mieliśmy taki problem z Bing Maps i nie było to polecane. Z takim pivotem można spojrzeć na to inaczej.

ExpanderView

04_ExpanderView_105_ExpanderView_2

Nazwa kontrolki mówi sama za siebie. W toolkicie mamy przykład stylowany na rozwijane drzewko, znane z grupowania tematów w Outlooku.

HubTile

06_HubTile

Absolutny hit sezonu!!! Za pomocą takich kontrolek “kafelków” możemy łatwo stworzyć ekran znany z huba People czy ekranu startowego. Ze zdjęciami, powiadomieniami i co najważniejsze z animacjami wykonywanymi losowo! Pamiętam jak kiedyś na potrzebę ważnej prezentacji trzeba było zrobić aplikację imitującą ekran startowy. A tu proszę dostajemy znowu takie coś za darmo!

ListPicker z multiselect

07_LictPicker_MultiSelect_108_LictPicker_MultiSelect_2

Przydatna opcja, która chyba nie wymaga komentarza.

PhoneTextBox

09_PhoneTextBox

Kolejna rzecz której brakowało! Kto nie chciałby mieć textboxa z obsługą watermarków i ikon z akcjami??? W czasach Windows Phone 7 podczas pisania aplikacji watermarki trzeba było tworzyć samemu, zresztą - co tu gadać - takiej kontrolki nie ma póki co także w Silverlight desktopowym! (od czasów jak wyrzucono WatermarkTextBox’a z Silverlight 2 Beta).

DateTimeConverters

10_DateTimeConverters

Kolejna rzecz, której mi brakowało przy tworzeniu aplikacji w Windows Phone 7. W nowoczesnych aplikacjach daty prezentuje się często w sposób relatywny np. “ponad rok temu”. Dostajemy wiele gotowych konwerterów!

Poza tym m.in znacznie zoptymalizowano animacje tranzycji między stronami oraz skorzystano w LongListSelector z płynnego przewijania zgodnego z WP 7.1(dedykowany wątek).

Więcej na ten temat nowego toolkita można przeczytać m.in na stronach:

środa, 24 sierpnia 2011

Mango 7712 + drugi artykuł o lokalnej bazie

Po powrocie z urlopu wgrałem na telefon system Mango 7712, o którym w ostatnim poście wspominałem. Mimo dość długiej książeczki instrukcji i wielu ostrzeżeń w niej zawartych wszystko poszło według planu. Na całość procesu złożyło się: instalacja narzędzi Beta 2 Refresh i specjalnej wersji Zune, pobranie najnowszych poprawek, zrobienie backupu urządzenia oraz instalacja 3 aktualizacji (pierwsza dla umożliwienia aktualizacji, druga - do wersji 7043, trzecia - do wersji 7712). Jedyna rzecz, o której wyraźnie nie napisano, to fakt że do pobrania właściwych aktualizacji trzeba być zalogowanym w programie Zune, ale to wydaje się oczywiste. Jako ciekawostkę powiem, że dokonałem tego na polskim Windows i większość komunikatów, w tym Zune były zlokalizowane w naszym języku –:)

Ostatnio dużo działo się z WP 7.1 - otworzono marketplace, pojawił się nowy toolkit oraz SDK w wersji RC. O tych dwóch ostatnich napiszę więcej w kolejnym poście.

Chciałbym nadmienić, że międzyczasie ukazała się na MSDN druga część mojego artykułu o lokalnej bazie danych. Miłej lektury!