Artykuły dla kategorii Start

freeimages.com
lis 29 2016
0

Targetowanie paczek pod różne systemy w Xamarnie

Tworząc biblioteki do rozwiązań Xamarinowych, właściwie nigdy nie myślimy tylko o jednym systemie docelowym. To w końcu dlatego przecież wybraliśmy właśnie rozwiązanie Microsoftu, by nie ograniczać się do jednej platformy. I o ile twórcy Xamarina starają się reklamować to rozwiązanie jako takie, w którym odsetek współdzielonego kodu jest niezwykle wysoki, to w praktyce nawet we wdrożeniach opartych o Xamarin.Forms nie da się uniknąć rozwiązań dedykowanych pod konkretne platformy.

Na szczęście nie jest to wielkie wyzwanie. Wystarczy tylko odpowiednio przygotować projekt oraz plik nuspec naszej wynikowej paczki:)

freeimages.com
lis 17 2016
0

Przeciążanie operatorów w C#

C# posiada w swojej ofercie wiele operatorów, które pełnią rozmaite funkcje. Z pewnością dobrze znacie większość z nich, a jeśli nie to warto nadrobić swoje braki przeglądając dokumentację MSDN.

Z operatorów mogą korzystać również nasze własne obiekty, ale w normalnej sytuacji nie będą one wiedziały jak. Na szczęście twórcy C# dali nam narzędzia, dzięki którym będziemy mogli nauczyć nasze klasy zupełnie nowych możliwości.

Czy nie byłoby fajnie, gdyby obiekty faktur można było dodawać do siebie i dzięki temu otrzymalibyśmy sumę wszystkich faktur? Okazuje się, że w C# jest to banalnie proste:)

freeimages.com
lis 08 2016
0

ILSpy - podgląd assembly i dekompilacja kodu

Czasem chcielibyśmy sprawdzić szczegóły techniczne wybranego Assembly, bądź też nawet fragmenty kodu źródłowego, które wspomniany zasób zawiera. Przyczyny takiego stanu rzeczy bywają różne. Najczęściej chcemy się upewnić, że wdrożony kod, to rzeczywiście ten którego oczekujemy, bądź też chcemy podejrzeć kod używanej przez nas biblioteki, w sytuacji w której brakuje nam dokumentacji.

Okazuje się, że w świecie .netowym jest to jak najbardziej wykonalne. Wystarczy tylko odpowiednie narzędzie i DLLka, która nie przeszła procesu obfuskacji.. W .Net standardowo obfuskacja jest wyłączona, dlatego też bardzo łatwo zdekompilować kod IL zawarty w DLLce/pliku exe do kodu, który będzie wyglądać prawie jak oryginał. Do szczęścia potrzebne jest tylko odpowiednie narzędzie - np. opensource'owa aplikacja ILSpy.

freeimages.com
paź 27 2016
0

Onet vs WP - porównanie aplikacji do programów TV

Sporo się mówi i piszę o tym, że VOD oraz ogólnie Internet może wyprzeć tradycyjną, liniową telewizję. Być może coś jest na rzeczy i udział klasycznej TV systematycznie spada, jednak ten rodzaj medium jest mimo wszystko wciąż na tyle istotny, że cały czas budzi on spore zainteresowanie konsumentów.

Popularność TV w klasycznej postaci przekłada się również na Internet i aplikacje mobilne, które możemy wykorzystywać choćby do śledzenia programu TV. I to właśnie w tym temacie, na naszym rodzimym rynku zadziało się ostatnio naprawdę sporo.

freeimages.com
paź 20 2016
0

DataTemplateSelector w Xamarin.Forms

ListView to jedna z najważniejszych kontrolek w Xamarin.Forms. Jak sama jej nazwa wskazuje, jest ona odpowiedzialna za ogarnięcie tematu listy. Listy można spotkać w praktycznie każdej aplikacji, począwszy choćby od najprostszych programów typu TODO poprzez rozbudowane aplikacje wyświetlające video, obsługujące naszą pocztę, czy dbające o temat komunikacji.

Kontrolka którą dostarcza Xamarin.Forms, posiada wiele przydatnych elementów (temat na inny wpis to historia jak w praktyce działa ta kontrolka, a warto dodać że wymaga ona sporej dawki cierpliwości od programisty..), a jedną z nich jest możliwość ustawienia szablonu elementu wyświetlanego na liście.

Domyślnie na ListView, możemy wyświetlać elementy tylko w jednym layoucie, który oczywiście można modyfikować odpowiednimi wartościami modelu i dobrze napisanym XAMLem. W praktyce jednak, nie zawsze jest to najlepsze rozwiązanie. Dużo lepszą opcją będzie zastosowanie klasy DataTemplateSelector, która na podstawie właściwości zawartych w modelu, jest w stanie dostarczyć odpowiedni układ, dopasowany do aktualnych danych.

pl.wikipedia.org
paź 11 2016
0

Multimedialne centrum na Raspberry Pi

Jakiś czas temu, postanowiłem zakupić swoją pierwszą malinkę. Przyznaję - był to zakup odrobinę spontaniczny i do końca nie miałem wymyślonego zastosowania dla niej. Bardzo często jest ona stosowana jako media center, ale w takim obszarze wykorzystywałem dotychczas mój router.

Mimo wszystko postanowiłem przetestować malinkę w roli media-center i okazało się, że był to bardzo dobry krok. Nie dość, że wszystko działa tutaj szybciej i stabilniej, to jeszcze jest to pełnoprawny Linux (zasadniczą różnicą jest obsługa architektury ARM oraz ewentualne ograniczenia wynikające z tego faktu), w którym swobodnie można korzystać z menadżera pakietów apt-get. Poniżej opis tego co postanowiłem zainstalować na moim małym komputerku.

freeimages.com
paź 02 2016
0

Obsługa wielu tasków na raz w C#

W dobie wielordzeniowych procesorów, umiejętność programowania współbieżnego jest niezwykle istotna. Scenariusz programowania synchronicznego, w którym wszystko wkładamy w jeden wątek i kolejkujemy może spowodować, że nasza aplikacja będzie funkcjonować gorzej od konkurencji. Dobrym tego przykładem są aplikacje operujące na żądaniach sieciowych.

Przykładowo aplikacja mobilna może na starcie wymagać pobrania konfiguracji, ściągnięcia informacji na ekran typu home, czy też aktywacji opcji auto-logowania na bazie zapisanych wcześniej danych użytkownika.

Wszystkie te operacje możemy wykonać w trybie synchronicznym, w którym to będziemy wykonywać każdą operację po kolei. Dużo lepszą opcją będzie jednak w tym przypadku programowanie asynchroniczne zrealizowane za pomocą tasków. Taski mogą być wykonywane w tym samym czasie i jednocześnie wciąż możemy dojść do punktu, w którym będziemy oczekiwać na rezultat działania wszystkich uruchomionych zadań. Poniżej krótki przepis na sukces w nowoczesnym programowaniu współbieżnym.

freeimages.com
wrz 18 2016
0

.Net Standard Library - sposób Microsoftu na uporządkowanie swoich API

Świat technologi działających w oparciu o .Net Framework jest ostatnimi czasy niezwykle bogaty. Mamy tutaj kilka rozwiązań mobilnych, webowych, a także wsparcie dla desktopów. Można by powiedzieć - czysta sielanka. Pewne problemy zaczynają się jednak w sytuacji, w której rzeczywiście chcielibyśmy pracować z kilkoma rozwiązaniami naraz.

W takiej chwili, naturalne stają się próby współdzielenia raz napisanego kodu, w różnych rozwiązaniach. Microsoft udostępnia w takim celu choćby tzw. Class library. Jednak jeśli kiedykolwiek próbowaliście użyć tego rozwiązania dla różnych targetów, to z pewnością już wiecie, że jest to po prostu technicznie niewykonalne.

Rozwiązaniem tego problemu, miały być tzw. portable class library. W praktyce rzeczywiście za ich pomocą można przygotować bibliotekę, która będzie mogła być skonsumowana na różne sposoby, o ile tylko odpowiednio wybierzemy jej profil. Tych jest całkiem sporo, a każda zmiana wymagana ponownej rekompilacji wszystkich elementów w naszej układance. Zmiana profilu powoduje również zawężenie, bądź też rozszerzenie zestawu dostępnych API. Ogólnie jest to rozwiązanie na tyle problematyczne, że tęgie głowy postanowiły wypracować nowe, bardziej uniwersalne rozwiązanie.

freeimages.com
wrz 08 2016
0

Klasa Device w Xamarin.Forms

W poprzednich wpisach sporo pisałem o różnych sposobach obsługi poszczególnych systemów wspieranych przez aplikację. Odradzałem wykorzystywanie projektów typu Shared, zachęcałem zaś do bibliotek portable.

Rozwiązanie w wariancie portable niesie swoje ograniczenia, ale tak na dobrą sprawę wymusza na programiście bardziej przemyślane podejście i zwiększa przejrzystość tworzonego kodu. Okazuje się jednak, że nawet w takiej sytuacji, można skorzystać z pewnych specjalnych rozwiązań przygotowanych przez twórców Xamarina. Konkretniej chodzi o klasę Device, która wystawia dwie istotne właściwości oraz udostępnia kilka przydatnych metod, które pozwalają na uruchamianie kodu specyficznego dla poszczególnych systemów.

freeimages.com
wrz 01 2016
0

Efekty w Xamarin.Forms

Kilka tygodni temu na łamach bloga, opisywałem CustomRenderery. Rozwiązanie daje to ogromne możliwości i pozwala na zapewnienie stricte natywnych wrażeń w sytuacji gdy korzystamy z Xamarin.Forms i nie wystarczają nam standardowo dostępne kontrolki i właściwości. Wykorzystując CustomRenderery, możemy w miejsce wskazanej kontrolki (czyli dowolnego elementu, który w Xamarin dziedziczy z View) wstawić natywną implementację dla wybranego, bądź też dla wszystkich obsługiwanych systemów. Jest to bardzo kompleksowe rozwiązanie, które czasem może jednak przytłaczać mnogością dostępnych opcji. Na szczęście Xamarin zapewnia również inne narzędzia.

Jednym z nich są tytułowe efekty, które możemy aplikować do kontrolek. I choć podejście to pozwala częściowo uzyskać podobne efekty jak CustomRenderery, w praktyce funkcjonuje w zgoła innych realiach.