Od prostego prototypu do bezpiecznego logowania
Na początku liczyło się tylko połączenie. Później okazało się, że prawdziwy produkt potrzebuje również tożsamości użytkownika, urządzeń i przewidywalnego logowania.

W pierwszych etapach projektu najważniejsze pytanie brzmiało: czy dwa urządzenia potrafią się ze sobą skutecznie połączyć? Gdy odpowiedź zaczęła być regularnie twierdząca, pojawiło się drugie, znacznie trudniejsze pytanie: kto właściwie łączy się z kim i jak zrobić to wygodnie bez zamieniania aplikacji w panel pełen technicznych ustawień?
Tak rozpoczęła się praca nad warstwą tożsamości MyDeskViewer. Prosty identyfikator urządzenia był dobrym punktem startowym, ponieważ użytkownik mógł szybko wskazać komputer, z którym chce się połączyć. Z czasem potrzebne stały się konta, przypisane urządzenia i możliwość korzystania z aplikacji bez każdorazowego odtwarzania całej konfiguracji.
Przebudowywaliśmy ten fragment kilka razy. Logowanie musi być proste, ale jednocześnie nie może omijać zasad bezpieczeństwa. Użytkownik powinien wiedzieć, czy pracuje na swoim koncie, jakie urządzenie wybiera i czy dana sesja jest autoryzowana. Z punktu widzenia interfejsu to kilka pól i przycisków. Pod spodem jest jednak znacznie więcej stanów: poprawne i błędne logowanie, wygasła sesja, utrata sieci, ponowne uwierzytelnienie oraz sytuacje, w których aplikacja działa na urządzeniu pozostawionym bez nadzoru.
W kolejnych wersjach pojawiły się wygodniejsze metody logowania, w tym logowanie za pomocą konta Google oraz klasyczny adres e-mail i hasło. Najważniejsze było jednak nie samo dodanie kolejnego przycisku, lecz ujednolicenie całego procesu tak, aby niezależnie od metody użytkownik trafiał do tej samej bezpiecznej sesji aplikacji.
Ten etap nauczył nas jednej rzeczy: zdalny pulpit nie zaczyna się od obrazu ekranu. Zaczyna się od tożsamości, zaufania i odpowiedzi na pytanie, kto ma prawo zobaczyć dane urządzenie.
Dziś logowanie jest jednym z elementów, które wyglądają na oczywiste. W praktyce powstało po wielu iteracjach i testach - i było konieczne, aby MyDeskViewer mógł przestać być wyłącznie wewnętrznym narzędziem.