Egy alkalmazás, többféle kapcsolat
A LifeWithFriends középpontjában a baráti kapcsolatok és a kommunikáció állnak. A közvetlen és csoportos beszélgetéseket képek és videók egészítik ki, a helymegosztás pedig külön, kérésre induló és időszakos funkcióként kapcsolódik hozzájuk.
A kliens Flutterrel készült. A háttérben Supabase szolgálja ki a hitelesítést, az adatbázist, a média tárolását és a realtime működést; a pushértesítésekhez Firebase Cloud Messaging kapcsolódik. Ezeket nem külön funkciólistaként érdemes nézni, hanem annak az útnak a részeként, amely a telefonon végzett művelettől a másik felhasználóig vezet.
Egy üzenet több rétegen halad át
A beszélgetés felülete a közvetlen és a csoportos chatet is összefogja. Szöveg mellett képek és videók is kapcsolódhatnak az üzenetekhez, ezért a kliensnek a beszélgetés adataival és a médiával is együtt kell dolgoznia.
A Supabase realtime része és a Firebase Cloud Messaging külön szerepet kap. A beszélgetés aktuális adatai és a telefonra érkező értesítés összetartoznak a felhasználó számára, de a fejlesztésben külön működésekként kell őket kezelni. Ez az egyik pont, ahol a felület és a backend közötti kapcsolat különösen kézzelfogható.
A helymegosztásnak saját folyamata van
A helymegosztás kérésre indul és időszakos. Nem a chat állandó, háttérben futó mellékhatásaként jelenik meg: külön műveletként és külön engedélyezési helyzetként kell gondolkodni róla.
A helyadatokhoz térképes megjelenítés is tartozik, OpenStreetMap és Nominatim használatával. Itt már nemcsak az számít, milyen adat jut el a képernyőre, hanem az is, hogyan kapcsolódik hozzá a telefon helyengedélye és a megosztás állapota. A felület feladata, hogy ezt a folyamatot követhetővé tegye.
A háttérszolgáltatás az alkalmazás része
A hitelesítés, a baráti kapcsolatok adatai, az üzenetek és a feltöltött média ugyanahhoz az alkalmazáshoz tartoznak, mégis eltérő feladatokat jelentenek. A Supabase ezeket több szolgáltatáson keresztül fogja össze, a Flutter kliens pedig a felhasználói műveleteket kapcsolja hozzájuk.
A LifeWithFriends ezért számomra nem csupán mobilfelület-fejlesztés. A chat, a helymegosztás, az engedélyek és a backend együtt alakítják a működését. Minden új funkciónál végig kell gondolni, melyik rész mit tud, és hogyan jelenik meg mindez érthetően a telefonon.
Egy közös alkalmazásban a funkcióknak egymással is együtt kell működniük. A fejlesztés érdekes része éppen ezeken a határokon van.