Trwa konkurs "Ogól naczelnego", w którym codziennie możecie wygrać najnowsze maszynki systemowe Hydro Connect 5 marki Wilkinson Sword.

Więcej informacji
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

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:

DePesza — portalowa aplikacja już w markecie Windows 10

Nastał ten dzień i portalowa aplikacja DePesza zawitała do sklepu Windows 10.Zapraszam chętnych do zainstalowania aplikacji na systemie Windows 10, zarówno na desktopie, jak i na urządzeniu mobilnym.

DePesza w markecie Windows 10 i Windows 10 Mobile: link

Wersja alfa — co oferuje?

Nie ukrywam, że obecna wersja w markecie jest jeszcze wczesną wersją alfa, która posiada zapewne wiele błędów i niedoróbek. Jednakże już teraz można się zalogować w celu rozpoczęcia pracy z DePeszą i zarządzać w podstawom stopniu powiadomieniami z portalu.

Aplikacja obecnie oferuje swoim użytkownikom:

  • bezpieczne logowanie/wylogowanie
  • brak przetrzymywania hasła użytkownika
  • pobieranie listy powiadomień z portalu (odpowiednie wyświetlanie)
  • pobieranie powiadomień w trakcie pracy aplikacji (co 30 sekund)
  • pobieranie powiadomień, gdy aplikacja jest wyłączona (co 15 minut)
  • wyświetlanie graficznego okienka, gdy w pobranych powiadomieniach z portalu otrzymamy nową notyfikację

DePesza portalowa aplikacja na Windows 10 — z dziennika dewelopera

Prace nad aplikacją nadal trwają. Dziękuję, za docenienie tej serii i oddane głosy na moje wpisy w marcowym konkursie blogowym ;)

Jak już zapewne zauważaliście, została wybrana nazwa na aplikację portalową. Dziękuję wszystkim za komentarze. Propozycji było bardzo dużo. Wybór padł na nazwę, która jest prosta i wpadająca w ucho, a dodatkowo bardzo sprytnie kojarzy się z portalem:

DePesza

Autorem DePeszy jest użytkownik: Czajo. Gratuluję i dziękuję za wzięcie udziału w zabawie. Prócz klucza na Steam do gry Murdered: Soul Suspect dodatkowo dorzucam jeszcze klucz do gry Arma: Gold Edition.

Pozostałe wyróżnione osoby:

Zadania działające w tle w Universal Windows Platform

Aplikacja do powiadomień z portalu jest już na takim etapie, że z powodzeniem testuje ją na co dzień na swoim komputerze i smartfonie z Windows 10. Zapewne ważnym elementem jest praca w tle, nawet wówczas, gdy aplikacja nie jest uruchomiona.

Dziś zaprezentuję w jaki sposób powiadomienia są pobierane w czasie, gdy aplikacja nie jest na głównym planie, a także jeśli nie została nawet otwarta. Nowa platforma od Microsoftu oferuje kilka ciekawych elementów, które pozwalają na wykonywanie zadań w tle, w odpowiedzi na zadany trigger (wyzwalacz).

Background Task - niezależny kod wykonywany w tle

Zadania działające w tle mogą w ciekawy sposób rozszerzyć funkcjonalność aplikacji na urządzeniu mobilnym lub desktopie. W tym celu obecnie można stworzyć kilka Background Tasków, każdy z nich może być aktywowany w zależności od potrzeb. Taki task musi implementować interfejs IBackgroundTask. Działać on może nawet wówczas, gdy aplikacja nie jest uruchomiona.

Aktywacja na zdarzenie systemowe

Można zatem stworzyć zadanie, które będzie aktywowane w odpowiedzi na zdarzenia systemowe. Mogą to być np:

  • Internet stał się dostępny/niedostępny
  • otrzymano SMS

Konkurs na nazwę aplikacji dobreprogramy.pl, a także niesforny Visual Studio

Tworząc uniwersalną aplikację do powiadomień z portalu dobreprogramy natknąłem się na bardzo ciekawy problem. Postanowiłem opisać ową przygody, a także zapytać Was o pomysł na nazwę aplikacji portalowej :)

Na początku skupmy się jednak na ciekawym przypadku...

Device cannot be found

W ostatnim czasie dostaliśmy najnowszą aktualizację Update 2 do Visual Studio 2015. Oczywiście wersja Community, którą używam, otrzymała również ową paczkę. Okazało się jednak, że po tej aktualizacji VS przy próbie wrzucenia aplikacji portalowej na smartfon zaczął rzucać błędem:

Bootstrapping failed. Device cannot be found. 0x89731810: Deployment failed because no Windows Phone was detected. Make sure a phone is connected and powered on.

Żeby jeszcze bardziej zaciemnić obraz, w tym samym czasie wgrałem (ponownie!) na Lumię 925 Windows 10 Mobile z gałęzi Redstone.

Stanąłem przed niebłahym problemem. Visual Studio przestał wykrywać mój telefon. Pierwsze podejrzenia padły na Redstone.

Wyskakujące powiadomienia w Windows 10 — aplikacja portalowa w UWP

Ostatnio pokazałem pierwszą działającą wersję aplikacji w UWP (Universal Windows Platform), która posiadała logowanie i wyświetlała prosty, niesformatowany tekst powiadomień. W dzisiejszym wpisie przedstawię kolejne nowe rzeczy, jakie dodałem do programu.

Toast notifications w Windows 10

Microsoft w nowej wersji okienek udostępnił znacznie poprawiony system powiadomień. Opiera się on na dokumencie XML i umożliwia całkiem sporą konfigurację. Oczywiście notyfikacje dostępne są zarówno na Windows 10, jak i na mobilnych okienkach.

W tej wersji dostaliśmy większe pole do popisu, jeśli chodzi o dostosowanie powiadomienia do własnych potrzeb. Możemy dodawać przyciski, zmieniać ułożenie tekstu czy grafiki, a także umieścić pole tekstowe (idealne do szybkich odpowiedzi na SMSa). Powiadomienia trafiają również do Centrum Akcji i mogą posiadać własny schemat dźwiękowy.

Zobaczmy zatem jak wygląda to w praktyce, na przykładzie tworzonej aplikacji.

Wyskakujące powiadomienia z dobreprogramy.pl

Zacznijmy zatem od szablonu XML, jaki będzie użyty w naszym przypadku. Na tę chwilę jest on jawne wklejony jako string. Do operacji na XML używać będę klasy XmlDocument:

Pierwsza wersja aplikacji, ciasteczka i refactoring — dobreprogramy na Windows 10

Wcześniejsze dwa wpisy przedstawiały kompletny sposób na zalogowanie się do portalu i zarządzanie powiadomieniami. W momencie tworzenia już UI, pod Universal Windows Platform (UWP), okazało się jednak, że potrzebny jest mały refactoring, wymuszony przez cachowanie ciasteczek, które powoduje w pewnych przypadkach problemy. Dodatkowo zmieniło się założenie co do przechowywania danych użytkownika w apce, a także powstały dwa pierwsze ekrany do próbnej wersji aplikacji.

Cachowanie ciasteczek

Plan na napisanie aplikacji zakładał to, iż przy pierwszym requeście będziemy pobierali ciasteczko, a następnie do logowania i pozostałych działań na powiadomieniach będzie ono przesyłane z każdy zapytaniem. Był to dobry pomysł, ale niestety okazało się, że nadpisanie ciasteczka per request nie jest idealne.

Otóż ciasteczko z ID sesji przy logowaniu jest cachowane odgórnie i przesyłane w kolejnych zapytaniach.

Powiadomienia z dobreprogramy.pl w C# — z dziennika dewelopera

Prace ku stworzeniu uniwersalnej aplikacji Windows 10 (+ Mobile) obsługującej powiadomienia z portalu dobreprogramy.pl posuwają się na przódu. We wcześniejszym poście przedstawiłem kod (plus projekt w VS), który służy do logowania się na swoje konto z poziomu C#. Został nam zatem ostatni etap w przygotowaniu serca naszej aplikacji - zarządzanie powiadomieniami. Zatem do dzieła!

Pobieramy powiadomienia z portalu w formacie JSON

Analiza sposobu działania powiadomień na portalu została przedstawiona w poście: Analizujemy kod portalu dobreprogramy.pl — czyli jak działa system pow.... Dziś przejdziemy już jednak do kodowania.

Zacznijmy zatem od pobrania JSONa z listą powiadomień dla zalogowanego użytkownika. Zakładamy oczywiście, że posiadamy już ciasteczko (w kodzie jest to zmienna cookie), które identyfikuje zalogowanego użytkownika.

Logujemy się do dobreprogramy.pl z poziomu kodu C# (+ wprowadzenie do projektu)

Dwa ostatnie wpisy przedstawiały analizę sposobu logowania się i zarządzania powiadomieniami na portalu dobreprogramy. Przyszedł już czas na stworzenie kodu w C#, który pozwałaby już coś w praktyce zrobić.

Dzisiaj skupimy się na logowaniu do portalu, a zapewne na dniach przedstawię mechanizm do zarządzania powiadomieniami.

Na początku jednak mały wstęp odnośnie samego projektu.

Szkielet aplikacji

Aplikacja tworzona będzie w Visual Studio 2015 Community (wersja pozwala na działania komercyjne, zupełnie za darmo, szczegóły licencji tutaj).

Projektem naszym jest oczywiście aplikacja uniwersalna - Universal Windows. Pozwala ona na tworzenie oprogramowania zarówno pod Windows 10, jak i Winodows 10 Mobile.

Analiza logowania do portalu dobreprogramy.pl — uzyskujemy dostęp do zasobów użytkownika

Za nami już wpis odnośnie sposobu działania systemu powiadomień na portalu. Przed przystąpieniem do tworzenia kodu należy koniecznie przeanalizować jeszcze jeden, najważniejszy element tego zagadnienia - logowanie do portalu.

System powiadomień, opisany wcześniej, działa na podstawie zalogowanego użytkownika, czyli na podstawie ciasteczka przechowywanego w przeglądarce klienta.

Mieć ciastko i zjeść ciastko

Ponownie do pracy niezbędne będzie nam narzędzie deweloperskie, dostarczone wraz z przeglądarką. Zaczniemy od ciasteczka. Kiedy użytkownika podłączy się do aplikacji ASP.NET generowana jest sesja, która identyfikowana jest po unikalnym kluczu. Ów klucz zwracany jest dla użytkownika i przechowywany w ciasteczku w przeglądarce. Aplikacja ASP.NET wrzuca klucz w ciasteczko o nazwie: ASP.NET_SessionId.

Sesja tworzona jest już przy podłączeniu do aplikacji webowej, zatem już przed zalogowaniem otrzymujemy id sesji. Własne ciasteczko możemy podejrzeć w narzędziu deweloperskim, wchodząc na zakładkę Resources i klikając na

Gratulacje!

znalezione maszynki:

Twój czas:

Ogól Naczelnego!
Znalazłeś(aś) 10 maszynek Wilkinson Sword
oraz ogoliłaś naszego naczelnego!
Przejdź do rankingu
Podpowiedź: Przyciśnij lewy przycisk myszki i poruszaj nią, aby ogolić brodę.