Data Management w Flutterze, struktura w Firebase

0

Cześć, na inżynierkę piszę aplikację w Flutterze+Firebase, jest to dla mnie pierwsza styczność z programowaniem na urządzenia mobilne oraz z używaniem Firebase. Generalnie według jednej serii na yt stworzyłem autentyfikację mojej aplikacji i obecnie jestem w momencie, gdy użytkownik się zalogował/zarejestrował i wyświetla się główny ekran. Kolejnym etapem jest funkcjonalność, czyli w skrócie chcę zrobić organizer zadań dla zespołów, użytkownik po zalogowaniu widzi listę pokoi/może tworzyć własne, a w nich będą znajdować się pula zadań, z której każdy użytkownik mający dostęp do tego pokoju może zadanie wziąć lub też dołożyć własne zadania do puli. Chciałbym zrobić tak, by każdy miał podgląd, czym w danym momencie zajmują się inne osoby w zespole. No i teraz mam kilka pytań:

  1. Miałem niewielką styczność z backendem, trochę z SQL, i teraz nie mam zbytnio pomysłu jak przypisać strukturę zadań do pokoju? Ogólnie chcę, aby room miał swoje właściwości typu id, owner, usersInRoom no i tasks. No ale tasks też będą miały określoną strukturę, jakieś description, id, date, name itp.Czyli w Firestore muszę mieć kolekcję Rooms, która ma pola id, owner ,usersInRoom, a tasks w Rooms jako kolekcja? Czyli dla każdej kolekcji porobić najpierw klasy w kodzie, tak?
  2. W jaki sposób mógłbym przypisać Rooms do użytkownika? Czy po zalogowaniu wykonywałaby się metoda, że ma wyświetlić roomy, których właściwość owner to nazwa tego użytkownika lub usersInRoom zawiera jego nazwę? Czy jakoś użytkownik powinien przechowywać nazwy grup, do których należy?
  3. Ostatni mój dylemat to data management. Fluttera dopiero się uczę na tej aplikacji, więc wiem, że jest mnóstwo podejść. W kursie autentyfikacji jak i tworzeniu czatu osoba prowadząca nie korzystała ani z providerów, ani reduxów itp itd. Jedynie przy logowaniu/rejestracji w celu przechowywania danych typu nazwa użytkownika, email, czy jest zalogowany korzystała z paczki SharedPreferences. Czy w mojej aplikacji będę potrzebował providerów itp? Czy provider zawsze umieszcza się na początku aplikacji, czy na przykład dopiero po logowaniu? Obecnie zakładam, że aplikacja będzie działać tylko online, więc do offline chyba nie potrzebuję przechowywać stanów?

Przepraszam za chaotyczny opis sytuacji :)

0

I jeszcze w sumie 4 pytanie, obecnie jest to aplikacja tylko skierowana na androida, ale czy gdybym chciał potem dodać ją również na iOS, dużo trzeba byłoby zmienić?

0
  1. https://firebase.google.com/docs/firestore/quickstart#android + https://codelabs.developers.google.com/codelabs/firestore-android#5
  2. Pewnie to co wyżej
  3. + - znajdź przykład całej aplikacji. Możesz też poszukać gotowych apek na githubie np https://github.com/MarcinusX/buy_ticket_design albo https://github.com/flutter/samples. Zapytanie do googla to: awesome flutter github
  4. Tak i nie - flutter per se powinien działać na iOS od razu. Jeśli dodasz libki (firestore) których nie ma na iOSie (nie wiem jak wygląda sprawa z firestore na ios, to tylko przykład) to problem może będzie można rozwiązać w kilka godzin albo w kilka tygodni - zależy co wybierzesz. Robienie aplikacji we fluterze tylko na androida nie ma większego sensu, jeśli chcesz robić od razu na iOSa to podejmując każdą decyzję musisz się zastanowić czy to będzie działało na dwóch platformach. Flutter jest popularny - na 100% da radę zrobić taką apkę jak chcesz żeby działa na dwóch platformach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1