Moje Oszczędności to autorska aplikacja, którą zaprojektowaliśmy i wykonaliśmy od podstaw — od analizy potrzeb i projektu UX, przez modelowanie danych, integracje z zewnętrznymi API, aż po publikację w Google Play oraz dystrybucję wersji na Linuksa. Celem było stworzenie narzędzia, którego nam samym brakowało: prostej, szybkiej i prywatnej aplikacji do prowadzenia "domowej księgi oszczędności" — bez chmury wymuszanej z góry, bez reklam, bez kont w usługach trzecich.
Kluczowe funkcje
- Pięć typów oszczędności w jednym miejscu — lokaty bankowe, konta oszczędnościowe, konta zwykłe, gotówka w dowolnej walucie oraz metale szlachetne (złoto, srebro, platyna, pallad) liczone w uncjach trojańskich.
- Wbudowany kalkulator lokat — proste i kapitalizowane odsetki (miesięczna / kwartalna / roczna), automatyczne wyliczanie kwoty brutto, netto i podatku Belki (19%), z możliwością ustawienia własnej stawki dla IKE/IKZE.
- Wielowalutowość — PLN, EUR, USD, GBP, CHF i osiem innych walut. Dashboard sumuje cały portfel do złotówek po aktualnym kursie NBP (tabela A), pobieranym automatycznie i cache'owanym dziennie.
- Cena złota z NBP — integracja z usługą "ceny złota" Narodowego Banku Polskiego, automatyczne przeliczenie z gramów na uncje trojańskie.
- Wiele portfeli — np. osobny na emeryturę, drugi na fundusz remontowy, trzeci na bieżące cele. Szybkie przełączanie z paska tytułu.
- Powiadomienia lokalne w dniu zakończenia lokaty — przypomnienie bez backendu, w pełni na urządzeniu.
- Synchronizacja z Dropbox (opcjonalna) — OAuth 2 PKCE, backup jako pojedynczy plik JSON we własnym folderze aplikacji.
- Cztery języki interfejsu — polski, angielski, niemiecki, hiszpański.
- Personalizacja — tryb jasny / ciemny / systemowy, 10 wariantów koloru akcentu, wybór domyślnej waluty.
Podejście
- Offline-first — wszystkie dane przechowywane są lokalnie w bazie Hive, aplikacja w pełni funkcjonalna bez internetu (kursy są cache'owane).
- Privacy by design — żadne dane finansowe użytkownika nie trafiają na serwery dewelopera. Synchronizacja, jeśli włączona, idzie wyłącznie do prywatnego konta Dropbox użytkownika. Brak reklam, trackingu i telemetrii.
- Otwarty kod — całe źródło aplikacji opublikowane na licencji MIT, dzięki czemu każdy może zweryfikować, jak aplikacja obchodzi się z jego danymi.
- Material 3 — czysty, "fintechowy" interfejs zaprojektowany od zera z dbałością o czytelność typografii, hierarchię informacji i dynamiczny kolor.
Co zrobiliśmy w ramach projektu
- Architektura aplikacji w warstwach (features / core / ui), w pełni pokryta testami jednostkowymi (49 testów).
- Modelowanie danych dla pięciu typów oszczędności w jednym, spójnym schemacie z dyskryminatorem typu — eliminacja dziesiątek klas i znaczne uproszczenie eksportu.
- Implementacja kalkulatora odsetek z dokładnością dnia kalendarzowego (actual/365, dni liczone w UTC, odporne na DST).
- Integracja z dwoma publicznymi API NBP: kursy walut (tabela A) oraz ceny złota — z lokalnym cache, fallbackami i obsługą trybu offline.
- Implementacja synchronizacji Dropbox z autorskim flow OAuth 2 PKCE (bez deep linków, bez wbudowanego sekretu — wzorowane na podejściu aplikacji Joplin), z transparentnym refreshem tokenów.
- Powiadomienia lokalne na Androidzie z poprawną obsługą stref czasowych i kanałów (importance high), bez wymagania uprawnienia SCHEDULE_EXACT_ALARM.
- Build pipeline na dwie platformy: Android (APK split per ABI + AAB do Google Play, sygnowany kluczem upload) oraz Linux (.deb + .tar.gz).
- Cztery wersje językowe (pl/en/de/es) z poprawną obsługą formatu daty i waluty per locale.
Efekt
Działająca aplikacja produkcyjna w wersji 1.1.1, opublikowana w Google Play oraz w dystrybucji bezpośredniej dla Linuksa, z bazą kodu utrzymywalną przez jednego dewelopera, w pełni przetestowaną i otwartą dla społeczności.
Linki
- Google Play: (link po publikacji)
- Repozytorium: (link do GitHub)
- Polityka prywatności: https://strony.olsztyn.pl/privacy/moje-oszczednosci