DEVCRAFTED.PL
Case study

Aplikacja do obsługi zamówień we Flutterze: iOS i Android dla personelu lokali gastronomicznych

Aplikacja mobilna dla personelu lokali, powiązana z platformą SaaS

Projekt objęty NDA

O projekcie

Aplikacja na iOS i Androida dla personelu restauracji: zamówienia w kolumnach na telefonie i tablecie, zmiana oferty i kilka lokali na jednym koncie. Przejąłem ją po innym wykonawcy i przebudowałem razem z ponad 500 testami.

Wyzwanie

Przejąłem aplikację mobilną dla personelu lokali gastronomicznych, zbudowaną wcześniej na szablonie sklepu internetowego: bez testów, z nieużywanymi ekranami i niedziałającymi powiadomieniami. Aplikacja miała stać się codziennym narzędziem pracy – obsługiwać zamówienia w wielu lokalach na jednym koncie i działać razem z panelem web platformy SaaS, a wszystkie reguły biznesowe zostawić po stronie backendu.

Moja rola

  • Mobile Developer
  • Backend Developer
  • Architektura aplikacji

Projekt objęty NDA: bez nazwy klienta, zrzutów ekranu i kodu.

Zakres funkcjonalny

  • Zamówienia w widoku Kanban
    Lista zamówień podzielona na etapy realizacji, ze szczegółami zamówienia i zmianą statusu.
  • Obsługa zamówienia
    Przyjęcie z czasem realizacji, odrzucenie zamówienia, wiadomość do klienta oraz druk paragonu.
  • Logowanie kodem QR
    Parowanie urządzenia jednorazowym kodem QR obok standardowego logowania kontem.
  • Powiadomienia i czas rzeczywisty
    Powiadomienia push o nowych zamówieniach oraz odświeżanie w czasie rzeczywistym, gdy zamówienie zmieni inny pracownik.
  • Wiele lokalizacji
    Jedno konto z dostępem do wielu lokali, przełączanie między nimi oraz uprawnienia pracowników.
  • Zarządzanie ofertą
    Podgląd oferty, aktywacja i dezaktywacja pozycji oraz sterowanie widocznością lokalu.

Rozwiązanie

Audyt i dokumentacja techniczna

Zacząłem od audytu kodu i bezpieczeństwa: opis stanu zastanego, kontrakt API, rejestr ryzyk, decyzje architektoniczne (ADR) i lista otwartych pytań do klienta – zanim powstała pierwsza linia nowego kodu.

Tablica zamówień kanban na telefon i tablet

Zamówienia w kolumnach według etapu realizacji: przyjęcie z czasem przygotowania, odrzucenie, wiadomość do klienta i druk paragonu. Na telefonie zakładki, na tablecie kolumny obok siebie.

Logowanie i parowanie urządzenia kodem QR

Logowanie kontem albo parowanie urządzenia jednorazowym kodem QR z panelu web, z dostępem do wielu lokali i szybkim przełączaniem między nimi.

Czas rzeczywisty i powiadomienia push

Odświeżanie zamówień przez WebSocket oraz powiadomienia push w tle i na pierwszym planie. Powiadomienie jest tylko sygnałem – aktualny stan zawsze pochodzi z API.

Odporna obsługa sesji i błędów

Jeden klient HTTP obsługuje wygaśnięcie sesji, brak dostępu do lokalu, przerwę techniczną platformy i konflikt równoczesnej zmiany statusu przez dwóch pracowników.

Przygotowanie do wydania

Konfiguracja wydań na iOS i Androida, podpisywanie aplikacji, powiadomienia push oraz informacja o dostępnej nowej wersji.

Efekt

  • Aplikacja jest w Google Play, a wersja na iOS czeka na publikację w App Store.
  • Ponad 500 testów pilnuje, żeby poprawka jednego ekranu nie zepsuła innego.
Jak przebiegało przejęcie aplikacji krok po kroku

Architektura

  • Flutter na iOS i Androida; aplikacja jest klientem REST API, a uprawnienia, przejścia statusów i dostęp rozstrzyga backend.
  • Dwa poziomy API: poziom konta (logowanie, lista lokali, parowanie urządzenia) i poziom lokalu (dane jednego lokalu).
  • Jeden klient HTTP odpowiada za autoryzację i reakcję na błędy; warstwa sieci nie zna nawigacji.
  • Komunikacja w czasie rzeczywistym przez WebSocket za abstrakcją transportu – brak połączenia nie blokuje pracy, ekran działa dalej na REST.
  • Powiadomienia przez Firebase Cloud Messaging w tle i lokalne powiadomienia na pierwszym planie, zsynchronizowane z panelem web.
  • Układ responsywny: telefon w pionie z zakładkami, tablet z kolumnami tablicy obok siebie.

Mój wkład

  • Przejęcie, audyt i przebudowa aplikacji: kilkanaście ekranów nowych lub przebudowanych, nowe modele danych i warstwa komunikacji z API.
  • Ponad 500 testów automatycznych (jednostkowych i widgetów) napisanych od zera.
  • Dokumentacja techniczna: kilkanaście decyzji architektonicznych (ADR), kontrakt API i rejestr ryzyk bezpieczeństwa.
  • Rozszerzenie REST API i komunikacji w czasie rzeczywistym po stronie platformy SaaS, z której korzysta aplikacja.

Technologie

  • Flutter
  • Dart
  • iOS
  • Android
  • REST API
  • WebSocket
  • Firebase Cloud Messaging
  • Laravel
  • Laravel Passport
  • QR

Masz aplikację po innym wykonawcy? Napisz, co w niej nie działa. Odpowiem w ciągu 24 godzin.

Napisz do mnie
Autopromocja

Nabyto.pl – e-booki i workbooki PDF po polsku

Konkretne materiały w PDF: pobierasz od razu po zakupie, drukujesz albo wypełniasz na ekranie. Bez DRM, bez subskrypcji i bez zakładania konta.

Odwiedź Nabyto.pl
Kontakt

Masz projekt albo problem z aplikacją? Napisz, odpowiem w ciągu 24 godzin.

Napisz do mnie
Telefon