În urmă cu un an, când majoritatea membrilor actualei echipe Android a început să lucreze la upday, aplicația era departe de a fi aplicația robustă și stabilă pe care ne-o doream. Am încercat să înțelegem de ce codul nostru era într-o stare atât de proastă și am găsit doi vinovați principali: schimbarea continuă a interfeței de utilizare și lipsa unei arhitecturi care să susțină flexibilitatea de care aveam nevoie. Aplicația se afla deja la a patra reproiectare în șase luni. Modelul de proiectare ales părea să fie Model-View-Controller, dar atunci era deja un „mutant”, departe de cum ar trebui să fie.
Să descoperim împreună ce este modelul Model-View-Controller; cum a fost aplicat în Android de-a lungul anilor; cum ar trebui aplicat astfel încât să poată maximiza testabilitatea; și câteva dintre avantajele și dezavantajele sale.
Într-o lume în care logica interfeței cu utilizatorul tinde să se schimbe mai des decât logica de business, dezvoltatorii desktop și web aveau nevoie de o modalitate de a separa funcționalitatea interfeței cu utilizatorul. Modelul MVC a fost soluția lor.
Model – stratul de date, responsabil pentru gestionarea logicii de afaceri și manipularea API de rețea sau de bază de date.
View – stratul de interfață utilizator – o vizualizare a datelor din Model.
Controller – stratul logic, primește notificări privind comportamentul utilizatorului și actualizează Modelul după cum este necesar.