Nowy Android Architektura Components opublikowane w Google IO 17.Android elementy architektury z MVP
Więc powinniśmy używać MVP z elementów architektonicznych i MVVM?
W próbce Google na Githubie zastosowano model MVVM. Google Sample
Nowy Android Architektura Components opublikowane w Google IO 17.Android elementy architektury z MVP
Więc powinniśmy używać MVP z elementów architektonicznych i MVVM?
W próbce Google na Githubie zastosowano model MVVM. Google Sample
O wyborze wzoru architektonicznego i jego realizacji zależy zawsze od wielu czynników, takich jak członkowie zespołu, typy aplikacji i tak dalej.
W blogu Google, że już powiedział, że części składowe Architektura to głównie
nie opinie recept.
Jednak trzy główne komponenty (Room, ViewModel, ViewData
) zostały opracowane z wykorzystaniem szerokiego zakresu, ale nie koncentrują się na żadnym konkretnym wzorze.
Na przykład
Na koniec, za pytanie.
Czy powinniśmy używać MVP z komponentami architektury?
Odpowiedź brzmi: "To dobra część systemu Android, więc dlaczego nie".
Aktualizacja:
Jeśli chcesz zobaczyć, jak projekt wzorca MVP współpracuje z nowymi elementami architektury, proszę kasy moje repository on Github. W którym ulepszam poprzedni model MVP, wykorzystując Room for local persistence i LifeCycle do tworzenia Presenter-świadomy cyklu życia.
Dlaczego nie używasz komponentu architektury ViewModel w celu zachowania prezentera do odtwarzania aktywności lub zmian konfiguracji? Imho dałoby ci to wielkie korzyści: przyjrzałem się temu repozytorium github i bardzo mi pomogło -> https://github.com/armcha/MVP-Architecture-Components –
Nie musisz używać ViewModel do tworzenia Prezentujący świadomy cyklu życia Aktywności. Po prostu wdraża LifecycleObserver, na przykład: https://github.com/quangctkm9207/mvp-android-arch-component/blob/master/app/src/main/java/com/quangnguyen/stackoverflowclient/ui/questions/QuestionsPresenter. java –
Nie mówiłem o uświadamianiu cyklu życia prezentera. Mówiłem o specyfice viewmodeli, która ma przetrwać odtwarzanie aktywności. Nie musisz więc implementować onSaveInstanceState, onRestoreInstanceState i wszystkich tych rzeczy :) –
Jestem obecnie budowania projektu szablonu, który używa MVP wzorzec wraz ze składnikami Google Architektura (pokój, LiveData) i porównać mieszać wersji Realm
i LiveData:
https://github.com/duyp/mvp-template
Myślę, że niektóre Komponenty Google Architektura są kompatybilne z MVP deseń, nie tylko dla MVVM: D
Możesz sprawdzić 2 following branches:
realm_livedata
: MVP z Realm i LiveData
room_livedata
: MVP z biblioteką utrwalania pokoju i LiveData
Jest to o wiele bardziej skomplikowane niż Google sample
projektu (użyłem Dagger 2
, RxAndroid, Modernizacja, Gson i czysta architektura) mam nadzieję, że znajdziesz lepsze rozwiązanie dla swojej pracy. Jeśli masz jakieś pytanie lub sugestię, możesz zostawić komentarze lub problemy na my github project
.
ja też stworzył projektu przy użyciu MVVM z nowych elementów architektonicznych z Google Realm, sztylet 2, dane żywo: https://github.com/duyp/mvvm-template
Szczęśliwy kodowania!
Prosta odpowiedź brzmi "to zależy" - MVVM ma wyższą krzywą uczenia się niż standardowa architektura MVC, ale oferuje korzyści pod względem testowalności. Jednak tego rodzaju pytanie nie jest tak naprawdę tematem na temat StackOverflow. Zobacz [pomoc/temat] –