Artykuły dla tagu Universal Apps

freeimages.com
sie 27 2015
0

Universal Apps - mapowanie danych z API na potrzeby XAML

Tworząc aplikacje mobilne, nie jest łatwo zbudować model danych, który idealnie odpowiadałby potrzebom aktualnego widoku. Problem staje się jeszcze bardziej złożony, w sytuacji gdy korzystamy z API, które zwraca ogólny model, dla rożnych końcówek. W takiej sytuacji, programista aplikacji mobilnej musi sam zadbać o odpowiednie wyświetlenie i sformatowanie otrzymanych danych..

W świecie Universal Apps problem ten można rozwiązać na różne sposoby. Osobiście preferuje tutaj wykorzystanie architektury MVVM, która wymaga od programisty stworzenia dedykowanego ViewModelu zawierającego odpowiednio przygotowane dane do wyświetlenia. Nie wszystkie właściwości da się jednak sensownie odpowiednio przetworzyć - zwłaszcza jeśli określony element danych wyświetlany jest inaczej na komputerze i telefonie. W takiej sytuacji z pomocą przyjdą konwertery. W dzisiejszym tekście zaprezentuje mix obu rozwiązań na przykładzie prostej aplikacji na telefon.

freeimages.com
lip 26 2015
0

Więcej MVVM w Universal Apps dzięki Behaviors SDK

Technologie typu WPF, czy Universal Apps aż proszą się o zastosowanie MVVM, jednak wsparcie dla tej architektury po stronie tych rozwiązań, jest umówmy się - co najwyżej średnie. Bardzo mało kontrolek posiada wbudowaną obsługę komend. I nawet jeśli się ona pojawia, to i tak nie dotyczy ona wszystkich dostępnych w kontrolce zdarzeń. Poza tym, nie ma jawnego wsparcia dla ViewModeli. Standardowo zbudowana aplikacja składa się ze stron wykorzystujących code-behind.

Na szczęście oba te problemy można w pewnym sensie dość mocno zmarginalizować. O tym drugim pisałem już trochę przy okazji tekstu poświęconego bibliotece MVVM Light. Ten pierwszy jest odrobinę bardziej skomplikowany, ale również można go stosunkowo łatwo obejść. Wystarczy tylko włączyć w projekcie rozszerzenie Behaviors SDK, a następnie dokonać odpowiedniej implementacji:-) Nad tym właśnie tematem skupię się w dzisiejszym tekście.

Na koniec wstępu, jeszcze mała uwaga techniczna. Przykłady zostały napisane pod kątem systemu Windows Phone 8.1 (UA), ale z zaprezentowanych tutaj rozwiązań można skorzystać również w aplikacjach pisanych dla Windows 8.1, czy WPF:-)

freeimages.com
lip 12 2015
0

Player Framework by Microsoft - customizacja

Standardowy player Microsoftu (kontrolka MediaElement), z którego możemy korzystać m.in. w Universal Apps, ma wiele zalet i funkcjonalności, ale ma też niestety dwie poważne wady.

Po pierwsze - nie jest do końca zgodny z MVVM. Nie mamy tutaj wsparcia dla komend, czy ViewModeli. Po drugie, jest bardzo słabo rozszerzalny. Jakakolwiek modyfikacja w większości przypadków jest bardzo trudna, a przecież przy kontrolkach tego typu, rozszerzalność, czy skalowalność to wręcz podstawa. Czy jest zatem jakieś wyjście z całej tej opresji?

Okazuje się, że tak, a jest nim biblioteka Player Framework od Microsoftu, która oprócz wsparcia dla UA, oferuje również końcówki dla Windows 8, HTML5, Silverlight, Windows Phone itp. W dzisiejszym tekście przedstawię kilka ciekawych (mam nadzieję) niaunsów związanych z tym frameworkiem w kontekście użycia w Universal Apps.

freeimages.com
lip 03 2015
0

Efektywne wykorzystanie dyrektyw preprocessora

Tworzenie instrukcji warunkowych jest czymś naturalnym w praktycznie każdym języku programowania. Trudno sobie jest wyobrazić kod źródłowy nawet najprostszej aplikacji, który byłby pozbawiony konstrukcji IF - w pewnym sensie tego rodzaju instrukcje, kontrolują przepływ sterowania. Warto wiedzieć, że w C# nasze możliwości na tym polu są jeszcze większe m.in. dzięki dyrektywom preprocesora.

Dyrektywy preprocesora wpływają na to co zostanie skompilowane. Możemy np. inny fragment kodu przeznaczyć dla kompilacji Debug, a inny dla Release. W aplikacjach uniwersalnych możemy tworzyć warunki z perspektywy systemu docelowego (oczywiście ten element dotyczy części Shared/bibliotek Portable). Możliwości są znacznie większe, ale najważniejsze jest to, że nie musimy polegać na predefiniowanych przez Microsoft symbolach, lecz możemy też tworzyć swoje własne:)

freeimages.com
cze 26 2015
0

Ciekawe możliwości kontrolki TextBlock

Język znaczników XAML, jest integralnym elementem kilku ważnych technologii Microsoftu. Pojawia się on: w sukcesywnie upadającym Silverlighcie, WPFie, Windows Phonie, czy też w aplikacjach uniwersalnych. Dlatego też jeśli poznacie jedno z wymienionych wyżej środowisk, to bardzo łatwo będzie się Wam przestawić na dowolną z pozostałych technologi.

W zależności od środowiska, mogą pojawiać się pewne delikatne różnice w możliwościach jakie dostarczy nam XAML, ale mimo wszystko jest naprawdę sporo rzeczy wspólnych - ot choćby podstawowe kontrolki.

Jedną z takich kontrolek jest pozornie prosty TextBlock, który w praktyce skrywa w sobie spore możliwości. Jakie? Na te pytanie postaram się odpowiedzieć trochę szerzej w dalszej części tekstu;-)

freeimages.com
cze 18 2015
0

Implementacja dynamicznego doczytywania treści w kontrolce ListView

W architekturze WinRT możemy korzystać z dwóch bardzo przyjemnych kontrolek do prezentacji danych - ListView oraz GridView. Obie te kontrolki mają duże możliwości konfiguracyjne, posiadają sporo zdarzeń i można je również fajnie ostylować. Jednym słowem jest naprawdę dobrze;-)

Naszą piękną, idealistyczną sielankę może jednak w łatwy sposób zakłócić, pewien dość prozaiczny problem, który nazywa się nadmiar danych. Tego rodzaju sytuacja zasadniczo nie ma żadnych pozytywów. Nasza aplikacja pochłonie duże ilości pamięci, może zacząć się zacinać, a dodatkowo jeśli dane pochodzą z zewnątrz, niepotrzebnie pobierzemy dane, które być może nigdy nie zostaną wyświetlone...

W praktyce okazuje się, że można jednak łatwo wybrnąć z tej sytuacji - wystarczy bowiem w zbindowanej kolekcji zaimplementować interfejs ISupportIncrementalLoading i życie znów stanie się piękne;-)

freeimages.com
cze 11 2015
0

Hakowanie strony w kontrolce WebView

Aplikacje na telefon pełnią różne funkcje, ale z założenia często są one mobilnym odpowiednikiem stron WWW. I choć w dzisiejszych czasach coraz więcej mamy w sieci stron responsywnych, to i tak komfort pracy z dedykowanym programem wciąż często bywa znacznie wyższy. Nie oznacza to oczywiście, że strony WWW na przeglądarce telefonu są czymś złym.. czasem jest to naprawdę dobra opcja na start. Okazuje się również, że dzięki RWD możliwe jest również łatwe osadzanie pewnych fragmentów witryn bezpośrednio w aplikacjach i to z naprawdę przyzwoitymi efektami.

Dobrym tego przykładem mogą być wszelkiej maści strony regulaminów, czy FAQ, które raczej nie wymagają jakiejś wielkiej interakcji ze strony użytkownika i bez problemu można je osadzić praktycznie niezauważalnie w kontrolce WebView oszczędzając sobie konieczność dublowania tego rodzaju contentu.

Z tego typu tematami jest jednak pewien problem, ponieważ w pewnym sensie możemy stracić kontrolę nad wyświetlaną treścią. W praktyce okazuje się jednak, że kontrolka WebView ma pewną ciekawą metodę, która odpowiednio użyta daje naprawdę spore możliwości, którym warto się przyjrzeć bliżej, co też dzisiaj uczynimy:-)

freeimages.com
cze 05 2015
0

HttpClient - równoległe pobieranie danych z różnych żródeł

Rynek aplikacji mobilnych rozwija się niezwykle dynamicznie w ostatnich latach. Programy na telefony dotykają dzisiaj naprawdę wielu ważnych i istotnych obszarów naszego codziennego życia. Coraz częściej tego rodzaju aplikacje funkcjonują w chmurze, dzięki czemu mamy łatwy dostęp do wszystkich niezbędnych nam informacji, niezależnie od tego gdzie jesteśmy i z jakiego urządzenia aktualnie korzystamy.

Wykorzystanie chmury wiąże się najczęściej z użyciem odpowiedniego API, do którego podłączają się wszystkie aplikacje klienckie. W wielu przypadkach programy mobilne muszą wysyłać kilka różnych żądań na raz. Oczywiście w .Net mamy odpowiednie klasy do obsługi komunikacji sieciowej. Jedną z takich konstrukcji jest klasa HttpClient umieszczona w przestrzeni System.Net.Http. HttpClient działa naprawdę bardzo sprawnie, aczkolwiek jest jeden mały problem z tą konstrukcją - trzeba napisać trochę dodatkowego kodu, który pozwoli na równoległe wykonywanie wielu różnych żądań. Na szczęście nie jest to trudne i postaram się tego dowieźć w niniejszym tekście.

freeimages.com
maj 29 2015
0

Efektywne tworzenie GRIDów w XAMLu

XAML - czyli tzw. rozszerzalny język znaczników, jest motorem napędowym wielu technologi stworzonych przez Microsoft. Spotkać go można m.in. w Silverlighcie, WPFie, czy też katowanych ostatnio przeze mnie na blogu aplikacjach uniwersalnych. I choć między tymi technologiami jest sporo istotnych różnic, to w praktyce są one częściowo ze sobą zbieżne właśnie dzięki XAMLowi.

Tworząc frontend w WPF, można bardzo szybko złapać o co chodzi w aplikacjach uniwersalnych - i vice versa. Oczywiście poszczególne kontrolki mogą się różnić pomiędzy konkretnymi implementacjami, ale jest też kilka takich elementów, które albo są takie same, albo zachowują się bardzo podobnie. Do tej właśnie grupy można zaliczyć tytułowego GRIDa, który w praktyce jest moim ulubionym kontenerem do budowania efektywnych layoutów. W dzisiejszym tekście postaram się Wam przedstawić kluczowe jego elementy, które można wykorzystać w codziennej pracy.

freeimages.com
maj 21 2015
0

Biblioteki warte poznania w C# - Google Analytics SDK for Windows 8 and Windows Phone

Ponad dwa lata temu polskim Internetem wstrząsnęła ustawa o ciasteczkach, która nakazuje właścicielom stron informować użytkowników, że na ich witrynie mogą być oni śledzeni za pomocą cookies. Denerwujące popupy i divy informujące o ciasteczkach, zaczęły wyrastać jak grzyby po deszczu. Nowa regulacja nazwała po imieniu to o czym wiedzieli wszyscy internauci - jesteśmy śledzeni.

O ile jeszcze śledzenie zarobkowe może być denerwujące (ciekawe skąd cały Internet nagle wie, że szukałem przed chwilą wakacji?), o tyle w wielu przypadkach, ciasteczka dostarczają sensownych informacji właścicielom stron, którzy dzięki temu wiedzą np. co można poprawić w nawigacji witryny i dzięki temu mogą zyskać również użytkownicy końcowi.

Jednym z większym generatorów ciastek w sieci, jest usługa Google Analytics, która śledzi ruch użytkowników na stronie. Serwis giganta z Mountain View przez wiele lat kojarzył się tylko ze stronami WWW, ale w praktyce od jakiegoś czasu możemy go wykorzystywać również w aplikacjach. W ten oto trochę zawoalowany sposób, dotarłem do meritum, czyli do biblioteki Google Analytics SDK for Windows 8 and Windows Phone, która jak sam tytuł wskazuje pozwala na podpięcie analityk w naszych aplikacjach:)

1 2 3