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
| Warstwa | Technologie |
|---|---|
| Frontend | Flutter (Dart), Material Design |
| State management | Riverpod |
| Backend / BaaS | Supabase (Auth, Database, Storage, Realtime, Edge Functions) |
| Baza danych | PostgreSQL (via Supabase) |
| Push notifications | Firebase Cloud Messaging + Flutter Local Notifications |
| Mapy i lokalizacja | flutter_map, Geolocator, OpenStreetMap, reverse geocoding |
| Obsługa obrazów | CachedNetworkImage, 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
| Wyzwanie | Rozwiązanie |
|---|---|
| Płynne animacje swipe na kartach z galerią zdjęć | Custom gesture handling z AnimationController i PageView |
| Optymalizacja ładowania obrazów w liście profili | Dedykowany ImageService z cache’em, prefetchingiem i rezisem server-side |
| Filtrowanie po odległości GPS | Integracja Geolocator z parametrami lokalizacji w zapytaniach do Supabase |
| Zgodność z wymogami App Store | Implementacja EULA, systemu blokowania/zgłaszania, pełne usuwanie konta |
| Push notifications na iOS i Android | Firebase 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.
