MVP w Androidzie - View

Kliknij i wspomóż mnie :)

Android

Wstęp

Wzorzec MVP jest jednym z popularniejszych w Androidzie. Upraszcza on testowanie i utrzymanie kodu. W pierwszej części opisuję View czyli "najgłupszy" element.

Nie znasz MVP, albo nie widzisz różnicy pomiędzy MVP a MVC. Nie szkodzi ja też do niedawna nie widziałem. Więcej możesz poczytać tutaj:

MVC vs. MVP vs. MVVM on Android

Kod zaprezentowany w tym poście jest częścią mojej przykładowej aplikacji. Jej źródło znajdziesz tutaj:

MVPWithFirebase

Opis architektury

Wykorzystanie MVP zakłada użycie interfejsów. Dzięki nim możemy przenieść implementację np. BottomNavbar do innych klas.

O interfejsach w Kotlinie możesz poczytać więcej tutaj:

Interfejsy

Na podstawie ContentContract widać, że widok jest odpowiedzialny jedynie za wyświetlanie danych. To jest cel tej architektury - odseparować akcje i pobieranie danych od ich wyświetlania!

Każdy widok dodatkowo dziedziczy po IBaseFragment, który wygląda tak:

Skoro każde okno ma wyświetlać dymek i kółeczko ładowania to po co definiować to wiele razy skoro można raz? 😉

MainActivty

Jedną z zalet MVP oraz Fragmentów jest to, że definiujemy tylko jedno Activity. Zapobiega to tworzeniu wielu instancji Context, przez co poprawieniu zarządzania pamięcią

Jak widać MainActivity służy głównie jako uchwyt dla fragmentów oraz jako klasa w, której deklarujemy presenter.

Klasa dziedziczy po FOABaseActivity oraz implementuje BaseFragmentInteractionListener, lecz jest to temat fragmentów, którego na razie nie będę poruszać. O nich możesz więcej poczytać tutaj:

Advocating Fragment Oriented Applications in Android

Kod w View powinien zwykle ograniczać się do takiej formy:

Oczywiście i tutaj kod może być dużo bardziej skomplikowany. Ja na przykład wielokrotnie łamałem głowę czy powinienem tutaj konfigurować Toolbar czy jednak przenieść to do presentera?🤔

Lifecycle

Cykl życia to bardzo ważny aspekt aplikacji i nie może go zabraknąć. Powiązane jest to jednak z reagowaniem na zmiany czyli logiką.

Dla tego warto przenieść metody do presentera i odnosić się do nich.

Jeszcze lepiej tłumaczy to Marcin Moskala. O jego podejściu do MVP poczytasz tutaj:

Evolution of MVP Presenter implementation for Android

Zakończenie

Pamiętaj, że pokazuję własne użycie i zrozumienie MVP w Androidzie. Bardzo możliwe, iż znajdziesz wiele równie dobrych albo jeszcze lepszych poradników w internecie.

Jednak jest to mój cyrk i moje małpy i będę się chwalić moimi doświadczeniami w sposób jaki umożliwia mi to mój warsztat 🤓.

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.