Lepsze śledzenie postępów dzięki łączeniu wyzwań

To jest wpis z serii 1 sukces dziennie.

W tej serii publikuję codziennie jeden sukces, który osiągnąłem poprzedniego dnia. To praktyczna implementacja podejścia z książki Show Your Work!

Codziennie zapisuję swoje postępy w SlowTracker – aplikacji do zapisywania sukcesów. Następnego dnia rano wybieram jeden lub kilka i tworzę z nich krótki post.

Lepsze śledzenie postępów dzięki łączeniu wyzwań

Dodałem do SlowTracker funkcję subskrybowania wyzwań i przypisywania więcej niż jednego wyzwania do sukcesu. To umożliwi lepsze wykorzystanie wyzwań poprzez łączenie aktywności.

Przykładowo, jeśli masz wyzwanie pt. Codziennie coś nowego oraz inne wyzwanie Joga, to możesz podczas każdej sesji jogi wypróbować nową asanę. W ten sposób wystarczy jeden sukces, aby śledzić postępy w obu wyzwaniach.

To ma też dać większą satysfakcję i elastyczność dla użytkowników. Oczekuję, że będzie to prowadzić do większej retencji.

SlowTracker - wizualizacja nowej funkcji łączenia wyzwań

Od kuchni (dla koderów)

Przed zrobieniem tych funkcji postanowiłem trochę zrefaktorować kod (komponent dodawania sukcesu miał ponad 700 linijek). W przypadku funkcji zdjęć wiedziałem, że nie mogę tak po prostu wyeksportować komponentu, bo będę miał ich prawdopodobnie kilka w różnych miejscach formularza. Wszystkie będą musiały korzystać z tego samego stanu.

Dlatego zastosowałem React Context API i custom hooks. Opakowałem komponent w ImagesProvider, żeby umożliwić dostęp do współdzielonego kodu i stanu w kilku miejscach w formularzu dodawania sukcesu. Uprościłem tym samym kod w dość elegancki i elastyczny sposób. Chyba nie korzystałem z tego patternu jeszcze.

Podobne podejście zastosowałem wreszcie do zarządzania wyzwaniami, którymi zamierzałem się zająć.

Zaprogramowanie tych wyzwań odbyło się w kilku krokach. Najpierw zrobiłem backend kilka dni temu, a teraz na frontendzie dokończyłem.

Podsumowanie

Sukcesy są więc dwa:

  1. Nowe funkcje: łączenie wyzwań
  2. Nowe doświadczenie: użycie elastycznego patternu

Wyzwania to funkcja eksperymentalna. Aby ją włączyć, wejdź do ustawień (Menu -> Ustawienia).

Uwaga: nowe funkcje udostępniam stopniowo i nie na wszystkich urządzeniach mobilnych będzie jeszcze dostępne. Wszystkie funkcje w pierwszej kolejności są dostępne w wersji webowej.

Zapisz się do mojego newslettera

Wszystkie najnowsze posty i projekty dostarczane bezpośrednio do Twojej skrzynki e-mail.