Co oznacza "odświeżalny"
Większość użytkowników iPhone'a intuicyjnie wie, że przeciągnięcie w dół ekranu odświeża zawartość w wielu aplikacjach — to klasyczny gest pull-to-refresh, i to właśnie mamy na myśli mówiąc „odświeżalny”. Wcześniejsze wersje Splync nie obsługiwały tej funkcji. Jedynym sposobem na odświeżenie ekranu było zamknięcie aplikacji i jej ponowne otwarcie. Nie było to zbyt uciążliwe, ponieważ aplikacja utrzymuje zalogowanie od wersji Splync v1.3, ale wciąż nie było to idealne. Ponieważ Splync ma być najłatwiejszym narzędziem do śledzenia wspólnego budżetu, odświeżanie ekranu powinno być całkowicie bezproblemowe. Dlatego wprowadziliśmy pull-to-refresh w wersji v1.10, czyniąc Splync w pełni odświeżalnym.
Dwa sposoby odświeżania danych w Splync (pełne przeładowanie / aktualizacja widoku)
Na ekranie głównym — gdzie widzisz swoje zdjęcie profilowe, listę znajomych i listę projektów — pull-to-refresh wykonuje pełne przeładowanie. Pobiera ponownie wszystkie dane związane z kontem, podobnie jak przy wylogowaniu i ponownym zalogowaniu. Z tego powodu odświeżenie może zająć około sekundy, podczas gdy wyświetlany jest komunikat o ładowaniu. Na ekranie projektu, gdzie znajduje się lista wydatków, ten sam gest przeciągnięcia w dół uruchamia lżejszą aktualizację widoku. Odświeżane są tylko dane specyficzne dla projektu, takie jak zmiany kategorii i aktualizacje wydatków. Nie trzeba czekać pełnej sekundy, aby zobaczyć, czy ktoś dodał nowy wydatek. Warto również zauważyć, że Splync nie pobiera automatycznie danych projektowych z serwera w tle. Aplikacja sprawdza aktualizacje tylko wtedy, gdy dokonasz zmian, otworzysz wydatek, aby zobaczyć jego szczegóły, lub ręcznie odświeżysz stronę projektu.
Dlaczego nie synchronizacja w czasie rzeczywistym
Niektórzy użytkownicy mogą oczekiwać, że aktualizacje projektu pojawią się natychmiast, gdy znajomy doda nowy wydatek. Synchronizacja w czasie rzeczywistym brzmi wygodnie, ale wiąże się z ważnymi kompromisami. Ciągłe aktualizacje w tle wymagają więcej baterii, danych mobilnych i bardziej złożonego połączenia z serwerem, co może spowolnić działanie aplikacji dla wszystkich. Podejście Splync na żądanie sprawia, że aplikacja jest lekka i responsywna, oraz zapobiega nagłym zmianom ekranu podczas przeglądania budżetu. Istnieją również względy bezpieczeństwa. Utrzymywanie stałego połączenia z serwerem zwiększa ryzyko nieautoryzowanego dostępu i wymaga dodatkowej logiki uwierzytelniania działającej w tle. Odświeżając tylko wtedy, gdy podejmujesz działanie, Splync minimalizuje niepotrzebną aktywność sieciową i utrzymuje dostęp do danych bardziej przewidywalnym i kontrolowanym.
Za kulisami kodu .refreshable
Na początku myślałem, że ta aktualizacja będzie prosta. W Swift, języku używanym do tworzenia aplikacji na iOS, można włączyć pull-to-refresh, po prostu dodając modyfikator .refreshable do ScrollView lub List. Jednak nie działało to tak, jak się spodziewałem. Po zbadaniu problemu zrozumiałem przyczynę. Chciałem dodać pull-to-refresh do całego górnego ekranu, który zawiera listę znajomych i listę projektów. Ale w oryginalnym projekcie oba te komponenty były również scrollowalne. W rezultacie, .refreshable nie wiedział, do którego obszaru scrollowalnego należał, i gest nie był wykrywany konsekwentnie. Aby to naprawić, przemodelowałem listę znajomych i listę projektów, aby nie były już same w sobie scrollowalne. To jest bezpieczne, ponieważ widok najwyższego poziomu przewija się, gdy zawartość przekracza wysokość ekranu. Gdy uprościłem strukturę i upewniłem się, że istnieje tylko jeden scrollowalny kontener, .refreshable w końcu działał dokładnie tak, jak powinien. Dodałem także typowy przycisk odświeżania, aby użytkownicy mogli po prostu kliknąć, aby odświeżyć.
Przeciąganie nie działa? Przeciągnij trochę dalej
W większości aplikacji iOS funkcja pull-to-refresh nie aktywuje się w momencie rozpoczęcia przeciągania. SwiftUI ma wbudowany próg gestu: system czeka, aż przeciągniesz w dół na określoną odległość, zanim zostanie wyzwolone odświeżenie. To zapobiega przypadkowym aktualizacjom, gdy po prostu zaczynasz przewijać od góry ekranu. Splync przestrzega tego standardowego zachowania. Możesz zauważyć, że krótkie przeciągnięcie nie odświeża zawartości, ale nieco dłuższe — wystarczające, by pojawił się wskaźnik odświeżania — wyzwoli aktualizację. Ten projekt utrzymuje intencjonalność interakcji. Unika niechcianych odświeżeń, zwłaszcza na ekranach, gdzie użytkownicy często przewijają długie listy wydatków lub projektów. Gdy nieznacznie "przeciągniesz" górną granicę i pojawi się wskaźnik, odświeżenie rozpocznie się, gdy tylko puścisz palec. To drobny detal, ale przyczynia się do płynniejszego i bardziej przewidywalnego doświadczenia. Dla jasności: nie chodzi o dłuższe przeciąganie ani większy nacisk. Liczy się dłuższa odległość przeciągnięcia.
Mała funkcja, starannie wykonana
Pull-to-refresh może wydawać się drobną interakcją, ale jej stworzenie wiązało się z wyborami projektowymi, restrukturyzacją techniczną i zaskakującą liczbą rozważań za kulisami. Splync v1.10 sprawia, że odświeżanie danych jest naturalne, zamierzone i przewidywalne — dokładnie tak, jak powinno być w najprostszym narzędziu do śledzenia wspólnego budżetu. Mam nadzieję, że ta aktualizacja zapewni ci płynniejsze doświadczenie i da ci wgląd w staranność, z jaką podchodzimy do każdego szczegółu. Dziękuję za korzystanie ze Splync.