Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Tworzymy własny ValueConverter, czyli najbardziej przydatny obiekt w bindowaniu danych do widoku (XAML/C#)

Zapewne tworząc aplikacje w WPF czy UWP natknęliście się na to, że właściwość w modelu (ViewModelu) wymagała konwersja na inny typ lub inną wartość, aby móc jej użyć na widoku. Tworzenie jednak dodatkowych właściwości jest nieefektywne i zbędne.

Z pocą przychodzi interfejs IValueConverter, który konwertuje jedne dane na drugie, bez konieczność rozszerzania obiektu. W moim przypadku musiałem przekwaterować status notyfikacji NotificationStatus (New, Old, Unknown) na Opacity (nieprzezroczystość).

Na widoku nowe powiadomienia nie są przezroczyste, zaś stare mają przezroczystość ustawioną na 0.5. Efekt jest następujący:

Oczywiście najbardziej używanym konwerterem jest: Bool <=> Visibility, czyli mając zmienną o typu Bool(true/false), chcemy sterować widocznością elementu (Visibility.Visible/Visibility.Collapsed).Przejdźmy jednak do naszego przykładu.

Zamiast tworzyć nową właściwość, szybko tworzymy klasę implementującą interfejs IValueConverter.

Konfigurujemy Unit Test w Universal Windows Platform

Do każdego projektu w Universal Windows Platform możemy dodać test jednostkowy, niezbędny do dewelopingu nowych rzeczy, czy naprawy błędów.

Taki test zapewne w wielu przypadkach będzie wymagał dodania konfiguracji, aby nie hardcodować na sztywno parametrów niezbędnych do działania (np. danych do logowania). W tym celu można podać potrzebne parametry (klucz -wartość) w pliku, z którego będą zaczytywane niezbędne informacje podczas uruchomienia Unit Testu.

Taki plik jest niezależny od kodu, a zatem nie musi być dorzucany do otwartego repozytorium. Dzięki temu poufne dane, jak np. login i hasło do konta na dobrychprogramach, które pozwalają na testowanie DePeszy, nie będą udostępniane na zewnątrz. Zatem do dzieła!

Plik z parametrami w XML - konfiguracja

Plik z parametrami klucz - wartość jest następującym w formacie XML :

<?xml version="1.0" encoding="utf-8"?> <RunSettings> <!-- Parameters used by tests at runtime --> <TestRunParameters> <Parameter name="dpTestLogin" value="LOGIN" /> <Parameter name="dpTestPassword" value="HASŁO" /> </TestRunParameters> </RunSettings>

Aktualizujemy aplikację w nowym Windows DevCenter

Wydanie aktualizacji aplikacji to spore wydarzenie dla każdego dewelopera. Niezliczone ilości godzin przesiedziane przed monitorem, kartką z notatkami, rozmowami z klientami czy testami w końcu mogą zaowocować stworzeniem poprawionej, nowej wersji oprogramowania.

Wychodzę z założenia, że proces pierwszej certyfikacji macie już za sobą i dziewicza wersja dostępna jest już w markecie.

Tworząc kolejne odsłony aplikacji na Universal Windows Platform, natknąć się można na pewne problemy i niejasności przy aktualizacji naszego programu poprzez DevCenter. Dodatkowo Microsoft niedawno wydał odświeżoną wersję testową centrum developerskiego, która doczekała się kilu nowości i ułatwień.

Zatem jak tego dokonać? Na co uważać?

Proces aktualizacji na początku wydaje się skomplikowany, ale szybko można się oswoić z tym zadaniem. Oto kilka porad, o czym pamiętać przy wypuszczaniu nowej wersji do marketu. Oczywiście przydadzą się one również w przypadku dodawanie pierwszej wersji aplikacji.

  • Aktualizacji dokonujemy na zakładce Submissions poprzez przycisk Update

Uniwersalna wersja Windows DevCenter, czyli śledzimy naszą aplikację w markecie

Microsoft w ostatnich miesiącach mocno pracował nad stworzeniem nowej platformy dla deweloperów do zarządzania aplikacjami. Już w tamtym roku obiecał nam, iż użytkownicy Windows 10 i Windows 10 Mobile otrzymają dedykowany program (Universal Windows Platform) do śledzenie jak nasze dziecko radzi sobie w markecie Windows. Jak po kilku aktualizacjach sprawdza się DevCenter?

Na pierwszą wersję w sklepie musieliśmy czekać dobrych kilka miesięcy. W tym czasie Microsoft zaktualizował DevCenter przez www, która miała służyć jako alternatywa, przy braku dedykowanej aplikacji. Na szczęście finalna wersja ujrzała światło dzienne jakiś czas temu, a także doczekała się kilku poprawek.

Zaznaczmy to jednak na samym początku, nie jest to aplikacja, która może być zamiennikiem wersji www, a jedynie ograniczoną funkcjonalnie wersją podglądową. Niestety ona małe braki, które mogą przeszkadzać w używaniu jej na szerszą skalę.

Daj Się Poznać 2016 — podsumowanie prac nad DePeszą

Konkurs Daj Się Poznać 2016, organizowany przez Macieja Aniserowicza, można już uznać za zakończony. Jego celem było promowanie ciekawych pomysłów, blogów i ludzi związanych z programowaniem. O szczegóły odsyłam do pierwszego wpisu z marca.

W ramach konkursu, w którym udział wzięło niemalże 300 osób (!!!), postanowiłem stworzyć aplikację dla użytkowników portalu dobreprogramy.pl. Już od jakiegoś czasu krążył po mojej głowie pomysł, aby przenieść system powiadomień ze strony www do aplikacji, która w tle sama sprawdzałaby nowe notyfikacje. Była ona adresowana do wąskiej grupy odbiorców, czyli do najbardziej aktywnych użytkowników portalu (oczywiście zwrot wąska grupa proszę nie brać dosłownie :P ). Od początku wiedziałem, co chce osiągnąć, dzięki czemu finalny stan na koniec akcji blogowej jest bardzo satysfakcjonujący.

Nowa DePesza — statystyki z bloga i odświeżony interfejs

W niedawnym wpisie odnośnie pierwszej aktualizacji dostałem bardzo dużo ciekawych uwag i pomysłów, jak ulepszyć kilka elementów w DePeszy. Przyznaję, że wiele z nich było bardzo twórczych i skłoniło mnie do poświecenia kilku wieczorów na doszlifowanie aplikacji. Ciesze się, że DePesza zyskała spore grono zainteresowanych osób chętnych do testów i dzielenia się pomysłami. Obecne wydanie jest już stabilnym i przyjemnym dla oka programem. Dziękuję również wszystkim za wnikliwe testy i podesłane uwagi (mordzio, PAMPKIN, AntyHaker, Berion, tylko_prawda).

Od kilkudziesięciu godzin w markecie dostępna jest druga aktualizacja do DePeszy.

Html Agility Pack — uzyskujemy statystyki z bloga do DePeszy, czyli parsujemy HTML w C#

Portalowa aplikacja DePesza jest już od jakiegoś czasu w Sklepie Windows. Prace nad doszlifowaniem programu i dodaniem nowych elementów trwają i jeszcze przed końcem maja pojawi się w markecie nowa wersja. Dziś jednak chciałbym przedstawić mały element, który zostanie dodany w kolejnym wydaniu DePeszy - statystyki blogowe.

Parsowanie HTML w C# - Html Agility Pack

Logowanie lub pobieranie z portalu powiadomień można było oprzeć na wymianie zapytań pomiędzy aplikacją DePesza, a serwerem dobrychprogramów (wystawiony serwis). Niestety, jeśli zechcemy uzyskać statystyki odnośnie wpisów blogowych zalogowanej osoby, musimy pokusić się o czyste parsowanie HTML.

Z tym problemem poradzimy sobie szybko przy pomocy Html Agility Pack. Jest to najlepsza biblioteka .NET do parsowania HTML. Możliwość ma ona ogromne i działa zarówno na desktopie, aplikacji mobilnej, jak i platformie Universal Windows Platform. Obsługa jej jest bardzo prosta i szybka (daaawno temu użyta przy zabawie z globalnymi statystykami portalu:

DePesza — aktualizacja i nowe pomysły

Od wydania pierwszej wersji DePeszy minęło już kilka dni. Obecnie średnia ocena na Windows 10 i Mobile wynosi 4.1. Myślę, że to nie tak źle, jak na początek prac nad apką, która jest nadal early accessem. Dziękuję za wszelakie uwagi i zgłoszone błędy. Postanowiłem szybko wydać pierwszą aktualizację, która powinna umilić zabawę z aplikacją.

Nowe ekrany

Sporo osób zauważyło, że ekrany są dość ubogie od strony graficznej. Przyznaję, że nie skupiałem się zbytnio na tym aspekcie, stąd też w nowej wersji delikatnie urozmaiciłem UI. Ekran logowania jest już znacznie przyjemniejszy w odbiorze.

Lista z powiadomieniami również uległa zmianie. Tutaj jednak nie do końca jeszcze jestem usatysfakcjonowany z końcowego efektu. Będę musiał popracować nad tym ekranem, gdyż czegoś jeszcze w nim brakuje i nadal sprawa wrażenie dość siermiężnego.

W pierwszej wersji nie było jeszcze dwóch ważnych komunikatów. Aplikacja nie informowała o ładowaniu powiadomień i nie wyświetlała nic, gdy użytkownik nie posiadał żadnych notyfikacji. Szczególnie ta ostatnia opcja była newralgiczna, gdyż pusta lista błędnie sugerowała, iż aplikacja nie działa poprawnie. Wraz z aktualizacją dodałem także i te ekrany: