Chciałbym poprosić o ocenę i jakieś wskazówki odnośnie mojego kodu i jednocześnie mam kilka pytań.
https://github.com/Harkor15/ShoppingListNextGeneration
To moja apka - lista zakupów z logowaniem, danymi w firestore i opcją współdzielenie list zakupów po pokazaniu QR kodu przykładowo.
Jestem raczej początkujący w języku Kotlin więc proszę o wyrozumiałość. Wspomniane kilka pytań:
-
Kotlin umożliwia tworzenie wielu klas w jednym pliku, czy tworzenie sobie tak jak ja to sobie zrobiłem w tej aplikacji klas będących praktycznie POJO w tym samym pliku gdzie są potrzebne, dzięki czemu mogłem szybko zajrzeć do tej klasy jest w porządku? Czy raczej jednak takie klasy powinny być w oddzielnych plikach czy może w jednym pliku z takimi klasami służącymi tylko do przenoszenia danych?
-
Struktura - Nie mam w tym projekcie sortowania na jakieś package, czytałem już różne opinie na ten temat. Jak to powinno wyglądać? Czy jest sens grupowania tych plików w przypadku gdy jest ich raptem kilka? A jeśli już jakoś tego pilnować to jak? Po prostu klasy Activity razem i tak samo Adaptery itp?
-
MVVM - Próbowałem już kiedyś jakichś eksperymentów z tym wzorcem, ale czy w przypadku takiej aplikacji miał by on nie wprowadzał by tylko komplikacji? Bo w zasadzie poza jakimś generowaniem QR'ów nie ma tu jakiejś większej logiki aplikacji, więc wydaje mi się że przechodzenie z activity do ViewModelu tylko po to żeby ten wywołał metodę z klasy odpowiedzialnej za komunikacje z bazą danych i później przyjął te dane i oddał z powrotem do warstwy widoku tylko komplikuje niepotrzebnie i wymaga tworzenia jakichś interfejsów i w przypadku niewielkich aplikacji mija się z celem. Czy może po prostu ja jakoś zbytnio komplikuje sobie ten wzorzec?
-
Testy jednostkowe - Sporo czytałem dobrego słowa o testach i że w ogóle to 100% kodu powinno być testowane, a z drugiej strony trafiłem na okres próbny do działu mobile jednej firmy w której gdy spytałem o testy jednostkowe to usłyszałem coś w stylu "A komu to potrzebne" czy też coś o braku czasu (ostatecznie nie zostałem tam). Ja raczej jestem zwolennikiem pisania testów, bardzo mi pomagały gdy pisałem gierkę na szachownicy i tworzyłem opcje gry z botem. Tylko nie bardzo wiem jak w tej aplikacji która jest tematem tego posta mógłbym ich użyć?
Będę bardzo wdzięczny za feedback odnośnie mojego kodu czy też odpowiedź na choćby jedno z moich pytań lub wskazanie źródła gdzie mógłbym dowiedzieć się czegoś istotnego. Z góry wielkie dzięki.