Uppycare: Cyfrowa książeczka zdrowia zwierzaka
React Native + Expo + Offline Support
Aplikacja powstała z potrzeby ogarnięcia terminów szczepień i odrobaczeń mojego psa. Zamiast szukać kartek po szufladach, wszystko trzymam w telefonie.



Geneza projektu
Każdy właściciel zwierzaka zna ten moment: weterynarz pyta "kiedy było ostatnie odrobaczenie?" i zaczyna się nerwowe przekopywanie papierów. Albo nagle zdajesz sobie sprawę, że szczepienie było tydzień temu. Uppycare rozwiązuje dokładnie ten problem: wszystkie dane w telefonie, z automatycznymi przypomnieniami.
Kluczowe funkcjonalności
Profile zwierząt
Możliwość dodania wielu pupili z podstawowymi danymi: imię, gatunek, rasa, data urodzenia, waga.
Historia zdrowia
Chronologiczna lista wydarzeń: szczepienia, odrobaczenia, wizyty, zabiegi, podane leki.
System przypomnień
Lokalne powiadomienia push o zbliżających się terminach. Konfigurowalny czas wyprzedzenia.
Offline Support
Dane keszowane lokalnie. Aplikacja działa offline, bez konieczności połączenia z internetem.
Decyzje techniczne
React Native + Expo
Wybór podyktowany szybkością developmentu i możliwością wydania na iOS i Android z jednego codebase'u. Expo Go znacznie przyspiesza iteracje.
Backend + lokalne keszowanie
Backend obsługuje dane użytkowników i synchronizację między urządzeniami. Lokalne keszowanie zapewnia działanie offline.
TypeScript
Typy dla eventów zdrowotnych (Vaccination, Deworming, VetVisit, Medication) zapewniają spójność danych i łatwiejsze refaktorowanie.
Wyzwania
Problem
Expo Notifications wymagają specjalnej konfiguracji dla powiadomień lokalnych. Na iOS trzeba obsłużyć permissions i badge count.
Rozwiązanie
Wrapper hook useNotifications() który centralizuje logikę schedulowania, anulowania i obsługi uprawnień. Przypomnienia tworzone są przy dodawaniu eventu i aktualizowane przy edycji.