Artykuły dla kategorii Start

freeimages.com
gru 09 2016
0

Jak sprawnie budować aplikacje w Xamarinie

Xamarin może rozwiązać wiele problemów technologicznych związanych z samym procesem pisania aplikacji, ale może również wygenerować sporo nowych tematów m.in. w obszarze budowania programów, czy też obsługi tzw. błędów runtime. Proces buildu jest w tym przypadku dość złożony, ponieważ najpierw musi nam się udać kompilacja kodu napisanego w C#, a dopiero później powstaje wynikowy kod natywny upakowany do pliku apk w Androidzie czy pliku ipa w iOS. Jeśli dodamy do tego temat obfuskacji kodu, to szybko może się okazać, że temat budowania może nie pójść tak gładko, jak reklamowane jest to na stronie Xamarina.

Dlatego też warto poznać kilka reguł, które mocno zredukują prawdopodobieństwa wystąpienia błędów na etapie kompilacji, czy też testowania wersji debug.

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.