ShogunSdz
#programowanie #android #kotlin #mobile #dev #mvvm

Hej mam do was pytanie ponieważ muszę zrobić aplikację na Androida i zastosować architekturę MVVM . Mam do Was prośbę ktoś by mógł mi wytłumaczyć o co dokładnie w tym chodzi np. na przykłądzie listy zakupów jak tym dokładnie zarządzać ? Czy do każdego fragmentu/activity musi być osobny ViewModel ?

Pozdrawiam
1
  • Najlepsze
  • Wszystkie komentarze
Zelber
Zelber
@ShogunSdz: Możesz podpiąć kilka fragmentów do jednego VM.
Jak tym zarządzasz? No w VM( ͡° ͜ʖ ͡°) A fragmenty służą tylko do wyświetlenia tego co z VM przyjdzie i przekazywania do niego danych z inputu.
2
i.....t
i.....t
@ShogunSdz: Popatrz sobie na przykład architektury aplikacji od Google (tak, mają trochę więcej rzeczy niż samo MVVM, ale można je pominąć).

https://github.com/googlesamples/android-architecture

Co do samego pytania, czy musi być osobny VM. Odpowiedź brzmi - nie, VM może być współdzielone używane przez kilka activity / fragmentów.
2
ShogunSdz
@ShogunSdz: przyjęło się, że w VM nie powinno trzymać się kontekstu aplikacji. Więcej o tym pisałem tutaj:

https://myenv.net/blog/android-architecture-components-viewmodel/ piękny blog podziwiam
2
phaxi
@mmaciejow: ale fajny blog mordo
2
Zelber
Zelber
@ShogunSdz: W sumie to oprócz sampli googlowskich podeślę jeszcze to:
https://zsmb.co/an-early-look-at-viewmodel-savedstate/
I wspomnę o tym, że ViewModel zawierający context powinien być AndroidViewModel'em ( ͡° ͜ʖ ͡°)
1
mmaciejow
@ShogunSdz: przyjęło się, że w VM nie powinno trzymać się kontekstu aplikacji. Więcej o tym pisałem tutaj:
https://myenv.net/blog/android-architecture-components-viewmodel/
1
ShogunSdz
@mmaciejow: Tak Btw chyba zrobię kilka rzeczy z Twojego blogu tylko że w Kotlinie... Jak coś śmiało możesz podbierać kod :)
1
mmaciejow
1
ShogunSdz
ShogunSdz Autor
  • adult
Treść przeznaczona dla osób powyżej 18 roku życia...
0
ShogunSdz
@Zelber: Dzięki wielkie :) Pozdrawiam
0
ShogunSdz
@ShogunSdz: W sumie to oprócz sampli googlowskich podeślę jeszcze to:

https://zsmb.co/an-early-look-at-viewmodel-savedstate/
I wspomnę o tym, że ViewModel zawierający context powinien być AndroidViewModel'em ( ͡° ͜ʖ ͡°) to co podeslales jest pięrunsko dobre... Dzięki
0
Zelber
Zelber
@mmaciejow:

przyjęło się, że w VM nie powinno trzymać się kontekstu aplikacji.

Nie miałeś na myśli aktywności? ( ͡° ͜ʖ ͡°)
0
mmaciejow
@Zelber: tak chodziło mi o aktywność. Również mamy też context aplikacji.
0
mmaciejow
@ShogunSdz: dzięki :)
0
ShogunSdz
@ShogunSdz: dzięki :)

Naprawdę lubię takie blogi... Tak jak blog mojego kumpla włodara :)
0
ShogunSdz
@mmaciejow: https://github.com/pdawiduk/MVVP_TIC_TOC_GAME co sądzisz o tym ? jeśli uważasz ze coś można by zrobić lepiej wal odrazu w komentarzach :)
PS. Walnalem byka w nazwie MIało być MVVM zamiast MVVP :)
0
mmaciejow
@ShogunSdz: powoli powstają teksty z kodem kotlina.
Co do projektu. W grach nie obracam się więc duzo nie pomogę.
A skoro lubię kółko krzyżyk to na szybko:
https://github.com/pdawiduk/MVVP_TIC_TOC_GAME/blob/master/app/src/main/java/com/example/mvvp_tic_toc_game/Models/Player.kt
nie lepiej zastosować data class?
we fragmentach możesz skorzystać z LayoutContainer od Kotlin Extensions (niedlugo bedzie o
0
ShogunSdz
@mmaciejow: http://pawelwlodarski.blogspot.com/ WIesz robiłem to z tutorialem i tak miałem trochę trudu z niektórymi rzeczami :P Np z Tablicami ... trochę w kotlinie wujowo się z nimi pracuje :P (czytaj zeby byla pusta tablica o danych wymiarach)
0
ShogunSdz
@mmaciejow: mam do Ciebie takie krótkie pytanie w jaki sposób łączysz VIewModel z Fragmentami ponieważ mam ogromny problem, a dokładniej jak ustawiam viewModel we fragmencie paczki nie pasują.....
0
mmaciejow
@ShogunSdz: co dokładnie Ci nie działa? Łączysz podobnie jak w aktywności.Tylko we fragmencie musisz podać kontekst aktywności. Na przykład:
MyViewModel viewModel = ViewModelProviders.of(getActivity()).get(MyViewModel.class);
0