Budżet offline — co dzieje się z wydatkiem bez internetu
Zasięg w telefonie jest czymś, o czym nikt nie myśli, dopóki nagle go nie ma — w piwnicy sklepu, na wsi u rodziny, w samolocie, w windzie. Aplikacja, która wymaga połączenia do każdej najprostszej czynności, w takich momentach po prostu przestaje działać, i to zwykle dokładnie wtedy, gdy właśnie trzeba coś zapisać.
Zapis, który nie czeka na sieć
Dodanie wydatku w Fynanso działa również bez internetu. Wpisana kwota, wybrana kategoria i data zapisują się lokalnie na urządzeniu, a gdy połączenie wraca — samodzielnie, bez żadnej dodatkowej akcji — wysyłają się na serwer. Widać przy tym komunikat, ile wydatków czeka jeszcze na wysłanie, więc nic nie znika w niewiadomym stanie.
To działa dlatego, że Fynanso jest zbudowane jako aplikacja PWA — progresywna aplikacja webowa, która potrafi działać częściowo niezależnie od połączenia, w przeciwieństwie do zwykłej strony internetowej wymagającej sieci do każdego kliknięcia.
Co działa offline, a co wymaga sieci
Zapisywanie nowych wydatków działa bez internetu w pełni. Nie działają natomiast funkcje, które liczą po stronie serwera przy użyciu modelu językowego — skan paragonu, opisywanie wydatku zdaniem, analiza budżetu. Te wymagają połączenia, bo model, który je obsługuje, nie działa lokalnie na telefonie.
To rozróżnienie ma sens praktyczny: podstawowa czynność, jaką jest zapisanie „ile i na co", działa zawsze. Wygody, które oszczędzają czas przy zapisie — na przykład opisanie wydatku jednym zdaniem — wracają, gdy tylko wraca sieć.
Dlaczego to nie jest szczegół techniczny
Aplikacja do budżetu, która przestaje działać bez internetu, uczy swojego użytkownika jednej rzeczy: że czasem lepiej nie zapisywać wydatku wcale, niż zapisywać go później z pamięci. A z pamięci znika najwięcej właśnie tych drobnych, codziennych zakupów, które akurat najtrudniej odtworzyć wieczorem.
Zapis, który działa niezależnie od zasięgu, usuwa tę lukę. Nie trzeba pamiętać, żeby wrócić do zapisania czegoś później — bo nie ma takiej potrzeby, zapis dzieje się od razu, tak samo jak przy pełnym połączeniu.
Co się dzieje z kolejką wydatków
Wydatki zapisane offline czekają w lokalnej kolejce na urządzeniu, dopóki nie znajdzie się połączenie, żeby je wysłać. Kolejka nie ma limitu liczby pozycji ani czasu oczekiwania — jeśli ktoś spędzi cały dzień poza zasięgiem, wszystkie zapisane w tym czasie wydatki wyślą się razem, gdy tylko telefon złapie sieć.
Jedyne, co jest wtedy wymagane, to otwarcie aplikacji — synchronizacja dzieje się automatycznie w tle, bez konieczności ręcznego odświeżania czy potwierdzania czegokolwiek.
Niezależność, która nie jest wygodą, tylko koniecznością
Sens działania offline nie polega na tym, żeby zaimponować kimś funkcją techniczną. Polega na tym, żeby zasięg internetu przestał być warunkiem prowadzenia budżetu. Pieniądze wydaje się wszędzie — w miejscach z dobrym zasięgiem i bez niego — a narzędzie, które to śledzi, powinno nadążać za tą rzeczywistością, nie odwrotnie.
Dlaczego aplikacje bankowe działają inaczej
Warto rozumieć, dlaczego akurat aplikacja bankowa nie może działać w ten sam sposób — to nie kwestia gorszego projektu, tylko innej natury danych. Bank musi w każdej chwili znać dokładny, aktualny stan konta, bo od tego zależy, czy transakcja się powiedzie. Zapis offline i wysłanie „później" nie ma tam sensu, bo „później" mogłoby oznaczać nieaktualne saldo w krytycznym momencie.
Zapis wydatku w aplikacji do budżetu ma inny charakter — to notatka o tym, co się stało, nie polecenie wykonania operacji finansowej. Notatka może poczekać w kolejce bez żadnych konsekwencji, bo nic nie zależy od tego, czy dotrze do serwera natychmiast, czy dopiero za godzinę. Ta różnica w naturze danych jest właśnie tym, co pozwala budżetowi działać offline tam, gdzie bank nie może.
Ile danych to kosztuje
Osoby z ograniczonym pakietem internetu w telefonie czasem świadomie wyłączają dane komórkowe poza domem, żeby oszczędzić transfer. Dla takich osób praca offline nie jest udogodnieniem na wyjątkowe sytuacje — jest codziennym trybem korzystania z aplikacji. Zapis wydatku poza domową siecią Wi-Fi po prostu czeka w kolejce do wieczora, gdy telefon automatycznie złapie znane połączenie, bez żadnego dodatkowego zużycia transferu w ciągu dnia.
Co się dzieje przy złym, ale niezerowym zasięgu
Offline nie oznacza wyłącznie „zero kresek". Wolne, niestabilne połączenie — typowe dla piwnic, dużych hal albo zatłoczonych miejsc — bywa gorsze niż jego całkowity brak, bo aplikacja może próbować wysłać dane i nie mieć pewności, czy operacja się powiodła. Fynanso traktuje taką sytuację tak samo jak pełny brak zasięgu: zapisuje lokalnie, próbuje wysłać, a jeśli się nie uda, zostawia wydatek w kolejce do następnej próby, zamiast zostawiać go w niepewnym stanie „może wysłane, może nie".
Co widać na ekranie, gdy coś czeka w kolejce
Wydatek zapisany bez połączenia nie wygląda identycznie jak wydatek już zsynchronizowany — na liście pojawia się przy nim niewielki znacznik informujący, że pozycja czeka na wysłanie. To ważne z jednego powodu: nikt nie musi zgadywać, czy dany zapis „na pewno się udał". Widać wprost, co już dotarło do serwera, a co wciąż czeka na połączenie — i ten sam znacznik znika automatycznie, gdy tylko synchronizacja się powiedzie.
Offline w budżecie rodzinnym
Wydatek zapisany offline i oznaczony jako wspólny trafia do wspólnej historii rodziny dopiero po zsynchronizowaniu — dopóki telefon nie złapie połączenia, pozostali domownicy go nie widzą, bo fizycznie nie dotarł jeszcze do serwera, na którym opiera się wspólny widok. To nie jest wada, tylko naturalna konsekwencja tego, jak działa praca offline: dane lokalne stają się wspólne dopiero w momencie, w którym faktycznie opuszczą urządzenie, na którym powstały.
Ile czasu telefon czeka z wysłaniem
Nie trzeba niczego uruchamiać ręcznie, żeby zaległe wydatki trafiły na serwer — aplikacja sprawdza dostępność połączenia automatycznie, w tle, za każdym razem, gdy jest otwarta albo gdy system operacyjny da jej taką możliwość. Praktyczna zasada jest prosta: jeśli w kolejce coś czeka, wystarczy otworzyć aplikację w miejscu z zasięgiem na kilka sekund, żeby wszystko się wysłało — nie trzeba czekać na żaden konkretny moment ani nic potwierdzać.
Co się dzieje, gdy telefon się wyłączy, zanim dane się wyślą
Wydatek zapisany lokalnie nie zależy od tego, czy aplikacja zostanie otwarta w tle nieprzerwanie — zapisuje się w pamięci urządzenia, nie w tymczasowej pamięci samej aplikacji, więc przetrwa wyłączenie telefonu, ponowne uruchomienie czy zamknięcie aplikacji na kilka dni. Przy kolejnym otwarciu aplikacja sprawdza, co czeka w kolejce, i próbuje wysłać to, co jeszcze nie dotarło do serwera — niezależnie od tego, ile czasu minęło od samego zapisu.
Dlaczego to nie jest ryzykowne rozwiązanie
Ktoś mógłby zapytać, czy trzymanie danych finansowych lokalnie na telefonie, zanim trafią na serwer, nie jest słabszym ogniwem pod względem bezpieczeństwa. W praktyce dane offline to te same informacje, które i tak trafiają na serwer po chwili — nazwa kategorii, kwota, data — nic, co nie byłoby już częścią normalnego działania aplikacji. Telefon, na którym leżą, i tak jest zabezpieczony własnym blokowaniem ekranu, tym samym, które chroni każdą inną aplikację na tym samym urządzeniu.
Testowanie trybu offline samodzielnie
Najprostszym sposobem, żeby zobaczyć, jak to działa w praktyce, jest włączenie trybu samolotowego na telefonie i zapisanie jednego, testowego wydatku. Widać wtedy dokładnie ten sam formularz, co zwykle, oraz znacznik informujący, że pozycja czeka na wysłanie. Wyłączenie trybu samolotowego chwilę później pokazuje, jak znacznik znika, gdy tylko połączenie wraca — cały mechanizm bez ryzyka utraty prawdziwych danych, bo testowy wydatek można potem po prostu usunąć.
Praca offline a otwarcie aplikacji po raz pierwszy
Pierwsze uruchomienie aplikacji wymaga połączenia z internetem — trzeba pobrać podstawowe elementy, zanim cokolwiek zacznie działać niezależnie od sieci. Dopiero po tym pierwszym otwarciu, gdy niezbędne elementy zostają zapisane lokalnie, praca offline staje się możliwa. To rozróżnienie ma znaczenie w jednej sytuacji: ktoś, kto próbuje otworzyć aplikację zupełnie po raz pierwszy w miejscu bez zasięgu, zobaczy komunikat o braku połączenia, zamiast normalnie działającego ekranu logowania — kolejne otwarcia w tym samym miejscu już zadziałają bez przeszkód.
Ograniczenia trybu offline nie są ukryte
Fynanso nie udaje, że praca offline nie ma żadnych granic — ekrany, które wymagają połączenia, pokazują to wprost, zamiast pozwalać na próbę i kończyć się niejasnym błędem. Ktoś, kto spróbuje zeskanować paragon bez internetu, zobaczy komunikat informujący, że ta funkcja wymaga sieci, zamiast pustego ekranu albo zawieszonego ładowania bez wyjaśnienia. Jasność co do tego, co działa, a co nie, jest częścią tego samego podejścia co reszta aplikacji — lepiej powiedzieć wprost, czego nie da się teraz zrobić, niż zostawić kogoś w niepewności.
Przeglądanie historii bez połączenia
Wcześniej zapisane wydatki, kategorie i cele pozostają widoczne offline, bo zostały już raz pobrane i zapisane lokalnie przy poprzednim połączeniu — nie trzeba mieć internetu, żeby przejrzeć historię z ostatniego tygodnia w poczekalni bez zasięgu. Ograniczenie dotyczy wyłącznie nowych operacji wymagających kontaktu z serwerem w danym momencie, nie danych, które już wcześniej trafiły na urządzenie.
Ile czasu przetrwa aplikacja bez żadnego połączenia
Dane zapisane lokalnie nie mają terminu ważności ani limitu czasu, po którym miałyby zniknąć z pamięci telefonu — mogą czekać na wysłanie tygodniami, jeśli akurat tyle trwa przerwa w dostępie do sieci. Jedynym praktycznym ograniczeniem jest pojemność samego urządzenia, a nie żadna sztuczna granica narzucona przez aplikację.
Praca offline jako fundament, nie dodatek
Warto na koniec spojrzeć na to szerzej — praca offline nie jest funkcją doklejoną na końcu, tylko częścią tego, jak od podstaw zaprojektowano samo zapisywanie wydatków. To dlatego działa tak niezawodnie: nie jest wyjątkiem obsłużonym na wszelki wypadek, tylko domyślnym trybem, który po prostu korzysta z sieci, gdy jest dostępna, zamiast od niej zależeć.