
Realizacja
Aplikacja mobilna z KSeF dla biura rachunkowego - PodatkiPodatki
PPmobile to aplikacja mobilna na iOS i Androida dla przedsiębiorców obsługiwanych przez biuro rachunkowe PodatkiPodatki.pl. Klient ma w telefonie podatki do zapłaty, dokumenty dla księgowej i faktury z KSeF. Dzięki temu może je przejrzeć, opisać i przekazać do biura bez logowania do panelu w przeglądarce.
Aplikację zbudowaliśmy we Flutterze (Dart) z jedną bazą kodu na iOS i Androida. Z API biura komunikuje się przez REST według specyfikacji OpenAPI.

Wyzwanie
Biuro rachunkowe PodatkiPodatki.pl potrzebowało aplikacji mobilnej dla swoich klientów - przedsiębiorców. Mieli w niej sprawdzać podatki do zapłaty, przekazywać dokumenty księgowej i obsługiwać faktury z KSeF bez logowania do panelu.
Aplikacja miała działać na iOS i Androidzie, a także korzystać z API biura, które zmieniało się w trakcie projektu. Przechowuje dane finansowe firm, więc logowanie musiało być wygodne i bezpieczne. Natomiast przejście na nową wersję API miało się odbyć bez pustych ekranów u użytkowników starszej wersji aplikacji.
Rozwiązanie
Zaprojektowaliśmy i zbudowaliśmy od podstaw aplikację PPmobile we Flutterze, z jedną bazą kodu na iOS i Androida. Zintegrowaliśmy ją też z API biura i opublikowaliśmy w App Store i Google Play. Klient biura PodatkiPodatki.pl loguje się Face ID lub odciskiem palca i ma w telefonie podatki, faktury z KSeF i dokumenty.
Zgodność z API sprawdzają testy, które porównują każde zapytanie aplikacji ze specyfikacją OpenAPI. Poza tym użytkownik starszej wersji dostaje ostrzeżenie przed jej wyłączeniem. Aplikacja ma ponad 500 testów automatycznych, a dalej rozwijamy ją razem z zespołem backendu.



Najważniejsze funkcje aplikacji PPmobile
PPmobile łączy przedsiębiorcę z jego biurem rachunkowym. Oto, co klient biura ma w telefonie.
- Pulpit - dane biura rachunkowego i opiekun klienta z przyciskami połączenia i e-maila.
- Podatki - kwoty do zapłaty i terminy dla każdej deklaracji (VAT, PIT/CIT, ZUS) w wybranym miesiącu. Można też podejrzeć dokumenty PDF dodane przez biuro.
- Faktury z KSeF - połączenie z Krajowym Systemem e-Faktur, pobieranie faktur i lista z filtrami. Poza tym podsumowanie kwot w podziale na waluty i obieg statusów między firmą a biurem.
- Szczegóły faktury - numer KSeF, daty i kwoty, podgląd faktury w PDF, oznaczenie opłacenia i zmiana statusu.
- Opisywanie faktur - dekretacja w trzech trybach księgowych i podział pozycji na części. Są też operacje zbiorcze i tryb „opisz następną” do pracy seryjnej. Opis można od razu przekazać do biura.
- Dokumenty - wysyłka skanów i plików do biura z aparatu, galerii lub z plików, z miesięczną listą kontrolną.
- Logowanie biometryczne - Face ID i odcisk palca, bez ponownego wpisywania hasła.

Jak zadbaliśmy o niezawodność aplikacji
PPmobile powstała we Flutterze (Dart, Material 3) z jedną bazą kodu na iOS i Androida. Ma budowę modułową, warstwę serwisów API i zarządzanie stanem w BLoC. Z serwerem biura komunikuje się przez REST według specyfikacji OpenAPI.
- Kontrakt API sprawdzany automatycznie - testy porównują każde zapytanie aplikacji (adres, treść i nagłówki) ze specyfikacją OpenAPI. Przy migracji na nową wersję API wychwyciły 10 błędów, których nie złapały zwykłe testy, zanim trafiły do użytkowników.
- Logowanie biometryczne, które pamięta - token odświeżania jest jednorazowy i zmienia się przy każdym użyciu. Aplikacja odnawia sesję zamiast wylogowywać, a równoległe odświeżenia wykonuje po kolei, więc nie unieważniają się nawzajem.
- Bezpieczne wygaszanie wersji API - aplikacja odczytuje z odpowiedzi serwera wersję API i datę jej wyłączenia. Użytkownik starszej wersji dostaje wcześniej ostrzeżenie, a po terminie ekran z linkiem do aktualizacji.
- Oddzielone środowiska - serwer testowy lub produkcyjny jest wybierany przy kompilacji. Każda paczka jest sprawdzana, czy zawiera właściwy adres, a wersje testowe mają widoczne oznaczenie.
- Bezpieczne dane i pliki - tokeny w Keychain (iOS) i Keystore (Android). Poza tym aplikacja sprawdza typ przesyłanego pliku na podstawie jego zawartości.
Kod aplikacji to ok. 24 500 linii w 150 plikach, sprawdzanych przez ponad 500 testów automatycznych (jednostkowych i widgetowych).
Masz podobny projekt?
Opisz w kilku zdaniach, co ma robić aplikacja albo jaki proces chcesz usprawnić. Odpowiemy w ciągu 24 godzin w dni robocze - z pytaniami i wstępnym przedziałem ceny.
Opisz swój projekt