Zillow to popularna platforma internetowa z ofertami nieruchomości, która udostępnia konsumentom informacje, dane i kalkulatory potrzebne do kupna, wynajmu lub sprzedaży domu. Witryna łączy też użytkowników z lokalnymi agentami, dostawcami kredytów hipotecznych i projektantami domów.
Firma Zillow została założona w 2006 r., a jej siedziba mieści się w Seattle. Prowadzi ona bazę danych zawierającą informacje o ponad 110 mln domów w Stanach Zjednoczonych. Firma prowadzi też popularny pakiet ponad 20 aplikacji mobilnych związanych z nieruchomościami. W lipcu 2017 r. firma Zillow rozpoczęła gruntowną przebudowę kodu aplikacji mobilnej na Androida. Chciała ułatwić pracę programistom, zwiększając czytelność kodu i ułatwiając zrozumienie go nowym członkom zespołu.
Rozwiązanie
Firma Zillow zmodyfikowała kod, używając komponentów architektury Androida. „Sprawdzaliśmy różne rodzaje architektury” – mówi Aayush Raj, inżynier oprogramowania w firmie Zillow. „Komponenty architektury miały dodatkową zaletę w postaci świadomości cyklu życia, co znacznie ułatwiało zarządzanie kodem”.
ViewModel umożliwia przetrwanie danych podczas zmian konfiguracji (np. obracania ekranu), a LiveData to klasa z możliwością obserwacji, która przechowuje dane. Oba te wzorce były używane przez Zillow i razem stanowiły potężny szablon do implementacji wzorca Model-View-ViewModel (MVVM). „Dzięki temu nasz kod stał się łatwiejszy do testowania” – mówi Raj. Biblioteka trwałości Room ułatwiła też utworzenie lokalnej warstwy pamięci podręcznej, dzięki czemu aplikacja nie musiała tak często pobierać danych z sieci, co „zwiększyło wydajność i poprawiło komfort użytkowania”.
Wyniki
Przeniesienie dużej ilości kodu do aktualizacji danych z aktywności do ViewModeli „zdecydowanie pomogło” zwiększyć czytelność całej bazy kodu, dodaje Raj. Nie przekształcili jeszcze całej aplikacji w ViewModel, ale komponenty, które korzystają z ViewModel, nie miały żadnych błędów związanych z cyklem życia. Komunikowanie aktualizacji danych do aktywności i fragmentów również działa bardzo dobrze.
„Deweloperzy są zdecydowanie bardziej produktywni, gdy używają komponentów architektury Androida” – mówi Sumiran Pradhan, starszy inżynier ds. oprogramowania w firmie Zillow. Komponenty architektury zapewniają wskazówki, gdy zaczynasz od zera, ale są też przydatne w przypadku istniejącego kodu. „Gdy nowi deweloperzy zrozumieją, gdzie znajduje się logika w ViewModel, bardzo im się to spodoba” – dodaje Pradhan.
Rozpocznij
Składniki architektury Androida są dostępne dla wszystkich deweloperów w ramach Androida Jetpack. Pierwsze kroki z komponentami architektury Androida