DogMate.

Opis projektu

DogMate to cross-platformowa aplikacja mobilna (iOS & Android) stworzona we Flutterze, która pomaga właścicielom psów znaleźć idealnego towarzysza dla swojego pupila. Aplikacja działa na zasadzie znanej z Tindera — użytkownicy przeglądają profile psów w okolicy, swipują w prawo, aby wyrazić zainteresowanie, i rozpoczynają konwersację po dopasowaniu.


Kluczowe funkcjonalności

🐾 System matchowania (Dog Tinder)

Główny ekran aplikacji prezentuje karty z profilami psów, które użytkownik może przesuwać w lewo (odrzucenie) lub prawo (zainteresowanie). Interfejs oparty jest o płynne animacje swipe z użyciem gesture detection, z paginacją i automatycznym doładowywaniem kolejnych profili.

📍 Wyszukiwanie oparte na geolokalizacji

Aplikacja wykorzystuje GPS urządzenia do filtrowania psów w konfigurowalnym promieniu od lokalizacji użytkownika. Właściciele mogą ustawić lokalizację psa na interaktywnej mapie (flutter_map + OpenStreetMap) z reverse geocodingiem do wyświetlania adresów.

💬 Czat w czasie rzeczywistym

Po dopasowaniu dwóch użytkowników automatycznie tworzona jest konwersacja. System wiadomości działa w czasie rzeczywistym dzięki Supabase Realtime — nowe wiadomości pojawiają się natychmiast bez potrzeby odświeżania. Interfejs czatu zawiera grupowanie wiadomości, statusy odczytu oraz wskaźniki czasowe.

🔔 Powiadomienia push

Zintegrowany system powiadomień push (Firebase Cloud Messaging) informuje użytkowników o nowych wiadomościach i dopasowaniach, nawet gdy aplikacja jest w tle.

🐕 Zarządzanie profilami psów

Użytkownicy mogą dodawać wiele psów, każdego z własnym profilem zawierającym:

  • Galerię zdjęć (do kilku zdjęć z opcją przeglądania)
  • Informacje o rasie (z bazą ras psów)
  • Płeć i cechy charakteru
  • Lokalizację na mapie

👤 Profil użytkownika

Rozbudowany ekran konfiguracji profilu z możliwością ustawienia avatara (wybór z galerii lub aparatu), danych osobowych, oraz opcją usunięcia konta.

🛡️ Bezpieczeństwo i zgodność z App Store

Aplikacja spełnia wymogi Apple App Store w zakresie:

  • EULA — ekran akceptacji regulaminu przed korzystaniem z aplikacji
  • Blokowanie użytkowników — możliwość zablokowania niechcianych kontaktów
  • Zgłaszanie nadużyć — system raportowania nieprawidłowych treści
  • Usuwanie konta — pełna funkcjonalność usuwania konta użytkownika i powiązanych danych

🔍 Zaawansowane filtrowanie

Konfigurowalny ekran preferencji wyszukiwania, pozwalający filtrować psy po:

  • Rasie
  • Płci
  • Zasięgu geograficznym (promień w km)

Stack technologiczny

WarstwaTechnologie
FrontendFlutter (Dart), Material Design
State managementRiverpod
Backend / BaaSSupabase (Auth, Database, Storage, Realtime, Edge Functions)
Baza danychPostgreSQL (via Supabase)
Push notificationsFirebase Cloud Messaging + Flutter Local Notifications
Mapy i lokalizacjaflutter_map, Geolocator, OpenStreetMap, reverse geocoding
Obsługa obrazówCachedNetworkImage, image_picker, kompresja i cache’owanie

Architektura i wybory techniczne

  • Wzorzec serwisowy — logika biznesowa wydzielona do dedykowanych serwisów (DogProfileService, ConversationService, MessageService, UserDataService, ImageService, PushNotificationService, DogSeekerService, DogBreedsService)
  • Riverpod Providers — reaktywne zarządzanie stanem z dependency injection
  • Inteligentne cache’owanie obrazów — dedykowany ImageService z 7-dniowym cachem, limitem 100 obiektów, resize’em w memory i optymalizacją URL
  • Paginacja — lazy loading profili psów z automatycznym doładowywaniem przed końcem listy
  • Supabase Edge Functions — serverless logika backendowa (np. generowanie opisów cech charakteru psa)
  • Realtime subscriptions — nasłuchiwanie na nowe wiadomości w czasie rzeczywistym via Supabase channels

Wyzwania i rozwiązania

WyzwanieRozwiązanie
Płynne animacje swipe na kartach z galerią zdjęćCustom gesture handling z AnimationController i PageView
Optymalizacja ładowania obrazów w liście profiliDedykowany ImageService z cache’em, prefetchingiem i rezisem server-side
Filtrowanie po odległości GPSIntegracja Geolocator z parametrami lokalizacji w zapytaniach do Supabase
Zgodność z wymogami App StoreImplementacja EULA, systemu blokowania/zgłaszania, pełne usuwanie konta
Push notifications na iOS i AndroidFirebase Cloud Messaging z obsługą tokenów per-urządzenie

Platformy

Rezultat

DogMate to kompletna, produkcyjna aplikacja mobilna gotowa do publikacji w App Store i Google Play. Projekt demonstruje pełen cykl wytwarzania oprogramowania — od koncepcji, przez implementację backendu i frontendu, po dostosowanie do wymogów sklepów z aplikacjami.

Masz pomysł na aplikację? Porozmawiajmy!

Szukasz zespołu, który zamieni Twój pomysł w działającą aplikację mobilną? Tworzymy dedykowane rozwiązania mobilne na iOS i Android – od MVP po pełnowymiarowy produkt gotowy do sklepów.

Co możemy dla Ciebie zrobić:

  • 📱 Aplikacje mobilne cross-platform (Flutter) — jeden kod, dwie platformy
  • ⚡ Backend i infrastruktura chmurowa (Supabase, Firebase, AWS)
  • 🗺️ Integracje z mapami, GPS, powiadomieniami push i systemami płatności
  • 🚀 Przygotowanie i publikacja w App Store i Google Play

Niezależnie od tego, czy masz gotowy projekt, czy dopiero zarys pomysłu — chętnie pomożemy na każdym etapie.